{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../meta/LSCKVue/TextEditor.js","webpack:///../meta/LSCKVue/plugin.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignment.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignmentcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignmentediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/src/alignmentui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/theme/icons/align-center.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/theme/icons/align-justify.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/theme/icons/align-left.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-alignment/theme/icons/align-right.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-autoformat/src/autoformat.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-autoformat/src/blockautoformatediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-autoformat/src/inlineautoformatediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/attributecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/bold.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/bold/boldui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/italic.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/italic/italicui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/underline.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/underline/underlineediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/src/underline/underlineui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/bold.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/italic.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-basic-styles/theme/icons/underline.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-block-quote/src/blockquote.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-block-quote/src/blockquotecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-block-quote/src/blockquoteediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-block-quote/src/blockquoteui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css?fa48","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/clipboard.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/clipboardobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/datatransfer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/utils/normalizeclipboarddata.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/utils/plaintexttohtml.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-clipboard/src/utils/viewtoplaintext.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/command.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/commandcollection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/editingkeystrokehandler.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/editor.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/editorui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/utils/attachtoform.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/utils/dataapimixin.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/editor/utils/elementapimixin.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/pendingactions.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/plugin.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/src/plugincollection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/cancel.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/check.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/eraser.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/image.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/low-vision.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/object-center.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/object-full-width.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/object-left.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/object-right.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/pencil.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/quote.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-core/theme/icons/three-vertical-dots.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-editor-classic/src/classiceditor.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-editor-classic/src/classiceditorui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-editor-classic/src/classiceditoruiview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-editor-classic/theme/classiceditor.css?7229","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/controller/datacontroller.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/controller/editingcontroller.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversion.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/conversionhelpers.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcastdispatcher.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/downcasthelpers.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/mapper.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/modelconsumable.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcastdispatcher.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/upcasthelpers.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/conversion/viewconsumable.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/basichtmlwriter.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/batch.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/differ.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/document.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/documentfragment.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/documentselection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/element.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/history.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/liveposition.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/liverange.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/markercollection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/model.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/node.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/nodelist.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/attributeoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/detachoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/insertoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/markeroperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/mergeoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/moveoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/nooperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/operation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/renameoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/rootattributeoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/splitoperation.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/transform.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/operation/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/position.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/range.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/rootelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/schema.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/selection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/text.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/textproxy.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/treewalker.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/deletecontent.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/getselectedcontent.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/insertcontent.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/modifyselection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/utils/selection-post-fixer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/model/writer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/utils/bindtwostepcarettoattribute.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/attributeelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/containerelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/document.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/documentfragment.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/documentselection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/domconverter.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/downcastwriter.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/editableelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/element.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/emptyelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/filler.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/matcher.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/node.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/clickobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/compositionobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventdata.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/domeventobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/fakeselectionobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/focusobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/inputobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/keyobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mouseobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/mutationobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/observer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/observer/selectionobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/placeholder.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/position.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/range.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/renderer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/rooteditableelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/selection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/text.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/textproxy.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/treewalker.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/uielement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/upcastwriter.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/src/view/view.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css?d6d5","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-enter/src/enter.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-enter/src/entercommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-enter/src/enterobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-enter/src/shiftenter.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-enter/src/shiftentercommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-enter/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-essentials/src/essentials.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/documentcolorcollection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/font.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontbackgroundcolor/fontbackgroundcolorui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcolor/fontcolorui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilycommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilyediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/fontfamilyui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontfamily/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizeediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/fontsizeui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/fontsize/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/ui/colortableview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/ui/colorui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/fontcolor.css?5d09","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/fontsize.css?723e","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/icons/font-background.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/icons/font-color.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/icons/font-family.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/icons/font-size.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-heading/src/heading.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-heading/src/headingcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-heading/src/headingediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-heading/src/headingui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-heading/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-heading/theme/heading.css?1194","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/image.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/image/converters.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/image/imageediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/image/imageinsertcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/image/imageloadobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/image/ui/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/image/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagecaption.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagecaption/imagecaptionediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagecaption/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagestyle.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagestyle/converters.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestylecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestyleediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagestyle/imagestyleui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagestyle/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativeediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/imagetextalternativeui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagetextalternative/ui/textalternativeformview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imagetoolbar.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imageupload.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadprogress.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imageupload/imageuploadui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/src/imageupload/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/icons/image_placeholder.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/image.css?3677","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css?0c5f","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css?cd9f","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css?75d5","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css?9f72","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css?8927","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css?356b","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/findlinkrange.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/link.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/linkcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/linkediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/linkui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/ui/linkactionsview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/ui/linkformview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/unlinkcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/utils/automaticdecorators.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/src/utils/manualdecorator.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/icons/link.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/icons/unlink.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/link.css?1622","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css?9ad6","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/linkform.css?78d0","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/src/converters.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/src/indentcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/src/list.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/src/listcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/src/listediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/src/listui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/theme/icons/bulletedlist.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-list/theme/icons/numberedlist.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/automediaembed.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/converters.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembed.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembedcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembedediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/mediaembedui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/mediaregistry.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/ui/mediaformview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/icons/media-placeholder.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/icons/media.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembed.css?fd90","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembedediting.css?3a61","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaform.css?a9cf","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paragraph/src/paragraph.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paragraph/src/paragraphcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/image.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/list.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/parse.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/removeboldwrapper.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/filters/space.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/googledocsnormalizer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/normalizers/mswordnormalizer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-paste-from-office/src/pastefromoffice.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/insertcolumncommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/insertrowcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/inserttablecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/mergecellcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/removecolumncommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/removerowcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/setheadercolumncommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/setheaderrowcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/splitcellcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/commands/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/converters/downcast.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/converters/table-cell-paragraph-post-fixer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/converters/table-cell-refresh-post-fixer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/converters/table-layout-post-fixer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/converters/upcasttable.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/table.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/tableediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/tableui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/tableutils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/tablewalker.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/ui/inserttableview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/icons/table-column.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/icons/table-merge-cell.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/icons/table-row.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/icons/table.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css?47a7","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/table.css?8eae","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/tableediting.css?57de","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/delete.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/deletecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/deleteobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/input.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/inputcommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/typing.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/utils/changebuffer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/utils/getlasttextline.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/utils/injecttypingmutationshandling.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/utils/injectunsafekeystrokeshandling.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-typing/src/utils/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/bindings/clickoutsidehandler.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/bindings/preventdefault.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/bindings/submithandler.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/buttonview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/button/switchbuttonview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colorgridview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/colorgrid/colortileview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/componentfactory.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/button/dropdownbuttonview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownpanelview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/dropdownview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/dropdown/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/editableui/editableuiview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/editableui/inline/inlineeditableuiview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/editorui/boxed/boxededitoruiview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/editorui/editoruiview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/focuscycler.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/icon/iconview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/inputtext/inputtextview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/label/labelview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/labeledinput/labeledinputview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/list/listitemview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/list/listseparatorview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/list/listview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/model.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/notification/notification.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/panel/balloon/balloonpanelview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/panel/sticky/stickypanelview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/template.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/enabletoolbarkeyboardfocus.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/normalizetoolbarconfig.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarseparatorview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/toolbar/toolbarview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/tooltip/tooltipview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/view.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/src/viewcollection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css?e413","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css?0811","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css?84ed","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css?6129","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/listdropdown.css?5639","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css?f050","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/editorui.css?6eef","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css?8e78","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/inputtext/inputtext.css?50b0","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css?514a","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledinput/labeledinput.css?e7c7","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css?685f","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css?6109","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css?cabc","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css?9668","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css?e5c1","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css?4c43","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css?62ac","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/globals/globals.css?4837","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/icons/color-tile-check.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/icons/dropdown-arrow.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/icons/next-arrow.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/icons/previous-arrow.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/src/basecommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/src/redocommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/src/undo.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/src/undocommand.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/src/undoediting.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/src/undoui.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/theme/icons/redo.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-undo/theme/icons/undo.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-upload/src/filereader.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-upload/src/filerepository.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-upload/src/ui/filedialogbuttonview.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/ckeditorerror.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/collection.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/comparearrays.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/config.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/count.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/diff.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/difftochanges.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/emittermixin.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getancestors.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getborderwidths.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getcommonancestor.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getdatafromelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getpositionedancestor.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/getresizeobserver.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/global.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/indexof.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/insertat.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/isnode.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/isrange.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/istext.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/iswindow.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/position.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/rect.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/remove.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/scroll.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/setdatainelement.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/dom/tounit.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/elementreplacer.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/emittermixin.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/env.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/eventinfo.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/fastdiff.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/first.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/focustracker.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/isiterable.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/keyboard.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/keystrokehandler.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/locale.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/mix.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/objecttomap.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/observablemixin.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/priorities.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/spy.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/tomap.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/translation-service.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/uid.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/unicode.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-utils/src/version.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-widget/src/highlightstack.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-widget/src/utils.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-widget/src/widget.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-widget/src/widgettoolbarrepository.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-widget/theme/icons/drag-handle.svg","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-widget/theme/widget.css?b2ca","webpack:///../meta/LsCkeditor/node_modules/he/he.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_DataView.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_Hash.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_LazyWrapper.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_ListCache.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_LodashWrapper.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_Map.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_MapCache.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_Promise.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_Set.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_SetCache.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_Stack.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_Symbol.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_Uint8Array.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_WeakMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_apply.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayAggregator.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayEach.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayEachRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayEvery.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayFilter.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayIncludes.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayIncludesWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayLikeKeys.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayPush.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayReduce.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayReduceRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arraySample.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arraySampleSize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arrayShuffle.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_arraySome.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_asciiSize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_asciiToArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_asciiWords.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_assignMergeValue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_assignValue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_assocIndexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseAggregator.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseAssign.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseAssignIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseAssignValue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseAt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseClamp.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseClone.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseConforms.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseConformsTo.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseCreate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseDelay.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseDifference.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseEach.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseEachRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseEvery.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseExtremum.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseFill.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseFilter.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseFindIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseFindKey.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseFlatten.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseFor.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseForOwn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseForOwnRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseForRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseFunctions.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseGet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseGetAllKeys.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseGetTag.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseGt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseHas.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseHasIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseInRange.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIndexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIndexOfWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIntersection.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseInverter.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseInvoke.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsArguments.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsArrayBuffer.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsDate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsEqual.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsEqualDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsMatch.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsNaN.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsNative.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsRegExp.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIsTypedArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseIteratee.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseKeys.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseKeysIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseLodash.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseLt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseMatches.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseMatchesProperty.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseMean.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseMerge.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseMergeDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseNth.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseOrderBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_basePick.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_basePickBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseProperty.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_basePropertyDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_basePropertyOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_basePullAll.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_basePullAt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseRandom.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseRange.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseReduce.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseRepeat.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseRest.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSample.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSampleSize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSetData.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSetToString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseShuffle.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSlice.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSome.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSortBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSortedIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSortedIndexBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSortedUniq.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseSum.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseTimes.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseToNumber.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseToPairs.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseToString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseUnary.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseUniq.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseUnset.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseUpdate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseValues.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseWhile.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseWrapperValue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseXor.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_baseZipObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_cacheHas.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_castArrayLikeObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_castFunction.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_castPath.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_castRest.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_castSlice.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_charsEndIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_charsStartIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_cloneArrayBuffer.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_cloneBuffer.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_cloneDataView.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_cloneRegExp.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_cloneSymbol.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_cloneTypedArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_compareAscending.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_compareMultiple.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_composeArgs.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_composeArgsRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_copyArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_copyObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_copySymbols.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_copySymbolsIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_coreJsData.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_countHolders.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createAggregator.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createAssigner.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createBaseEach.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createBaseFor.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createBind.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createCaseFirst.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createCompounder.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createCtor.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createCurry.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createFind.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createFlow.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createHybrid.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createInverter.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createMathOperation.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createOver.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createPadding.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createPartial.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createRange.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createRecurry.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createRelationalOperation.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createRound.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createToPairs.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_createWrap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_customDefaultsAssignIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_customDefaultsMerge.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_customOmitClone.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_deburrLetter.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_defineProperty.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_equalArrays.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_equalByTag.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_equalObjects.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_escapeHtmlChar.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_escapeStringChar.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_flatRest.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_freeGlobal.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getAllKeys.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getAllKeysIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getData.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getFuncName.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getHolder.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getMapData.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getMatchData.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getNative.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getPrototype.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getRawTag.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getSymbols.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getSymbolsIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getTag.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getValue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getView.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_getWrapDetails.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hasPath.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hasUnicode.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hasUnicodeWord.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hashClear.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hashDelete.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hashGet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hashHas.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_hashSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_initCloneArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_initCloneByTag.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_initCloneObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_insertWrapDetails.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isFlattenable.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isIterateeCall.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isKey.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isKeyable.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isLaziable.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isMaskable.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isMasked.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isPrototype.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_isStrictComparable.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_iteratorToArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_lazyClone.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_lazyReverse.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_lazyValue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_listCacheClear.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_listCacheDelete.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_listCacheGet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_listCacheHas.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_listCacheSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_mapCacheClear.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_mapCacheDelete.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_mapCacheGet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_mapCacheHas.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_mapCacheSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_mapToArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_matchesStrictComparable.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_memoizeCapped.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_mergeData.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_metaMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_nativeCreate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_nativeKeys.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_nativeKeysIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_nodeUtil.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_objectToString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_overArg.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_overRest.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_parent.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_reEscape.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_reEvaluate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_reInterpolate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_realNames.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_reorder.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_replaceHolders.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_root.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_safeGet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_setCacheAdd.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_setCacheHas.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_setData.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_setToArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_setToPairs.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_setToString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_setWrapToString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_shortOut.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_shuffleSelf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stackClear.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stackDelete.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stackGet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stackHas.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stackSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_strictIndexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_strictLastIndexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stringSize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stringToArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_stringToPath.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_toKey.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_toSource.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_unescapeHtmlChar.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_unicodeSize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_unicodeToArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_unicodeWords.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_updateWrapDetails.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/_wrapperClone.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/add.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/after.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/array.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/array.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/ary.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/assign.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/assignIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/assignInWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/assignWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/at.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/attempt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/before.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/bind.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/bindAll.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/bindKey.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/camelCase.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/capitalize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/castArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/ceil.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/chain.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/chunk.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/clamp.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/clone.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/cloneDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/cloneDeepWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/cloneWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/collection.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/collection.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/commit.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/compact.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/concat.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/cond.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/conforms.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/conformsTo.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/constant.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/countBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/create.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/curry.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/curryRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/date.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/date.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/debounce.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/deburr.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/defaultTo.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/defaults.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/defaultsDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/defer.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/delay.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/difference.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/differenceBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/differenceWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/divide.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/drop.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/dropRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/dropRightWhile.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/dropWhile.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/each.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/eachRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/endsWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/entries.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/entriesIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/eq.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/escape.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/escapeRegExp.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/every.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/extend.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/extendWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/fill.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/filter.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/find.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/findIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/findKey.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/findLast.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/findLastIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/findLastKey.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/first.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flatMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flatMapDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flatMapDepth.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flatten.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flattenDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flattenDepth.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flip.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/floor.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flow.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/flowRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/forEach.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/forEachRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/forIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/forInRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/forOwn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/forOwnRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/fromPairs.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/function.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/function.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/functions.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/functionsIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/get.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/groupBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/gt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/gte.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/has.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/hasIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/head.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/identity.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/inRange.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/includes.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/indexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/initial.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/intersection.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/intersectionBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/intersectionWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/invert.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/invertBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/invoke.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/invokeMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isArguments.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isArrayBuffer.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isArrayLike.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isArrayLikeObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isBoolean.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isBuffer.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isDate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isElement.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isEmpty.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isEqual.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isEqualWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isError.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isFinite.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isFunction.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isInteger.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isLength.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isMatch.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isMatchWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isNaN.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isNative.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isNil.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isNull.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isNumber.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isObjectLike.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isPlainObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isRegExp.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isSafeInteger.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isSymbol.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isTypedArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isUndefined.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isWeakMap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/isWeakSet.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/iteratee.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/join.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/kebabCase.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/keyBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/keys.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/keysIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lang.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lang.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/last.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lastIndexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lodash.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lodash.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lowerCase.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lowerFirst.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/lte.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/map.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/mapKeys.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/mapValues.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/matches.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/matchesProperty.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/math.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/math.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/max.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/maxBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/mean.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/meanBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/memoize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/merge.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/mergeWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/method.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/methodOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/min.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/minBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/mixin.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/multiply.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/negate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/next.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/noop.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/now.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/nth.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/nthArg.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/number.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/number.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/object.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/object.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/omit.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/omitBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/once.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/orderBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/over.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/overArgs.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/overEvery.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/overSome.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pad.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/padEnd.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/padStart.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/parseInt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/partial.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/partialRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/partition.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pick.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pickBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/plant.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/property.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/propertyOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pull.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pullAll.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pullAllBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pullAllWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/pullAt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/random.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/range.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/rangeRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/rearg.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/reduce.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/reduceRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/reject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/remove.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/repeat.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/replace.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/rest.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/result.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/reverse.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/round.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sample.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sampleSize.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/seq.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/seq.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/set.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/setWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/shuffle.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/size.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/slice.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/snakeCase.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/some.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedIndexBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedIndexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedLastIndex.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedLastIndexBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedLastIndexOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedUniq.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sortedUniqBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/split.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/spread.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/startCase.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/startsWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/string.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/string.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/stubArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/stubFalse.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/stubObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/stubString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/stubTrue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/subtract.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sum.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/sumBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/tail.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/take.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/takeRight.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/takeRightWhile.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/takeWhile.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/tap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/template.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/templateSettings.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/throttle.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/thru.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/times.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toArray.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toFinite.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toInteger.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toIterator.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toJSON.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toLength.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toLower.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toNumber.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toPairs.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toPairsIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toPath.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toPlainObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toSafeInteger.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toString.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/toUpper.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/transform.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/trim.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/trimEnd.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/trimStart.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/truncate.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/unary.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/unescape.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/union.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/unionBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/unionWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/uniq.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/uniqBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/uniqWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/uniqueId.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/unset.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/unzip.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/unzipWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/update.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/updateWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/upperCase.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/upperFirst.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/util.default.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/util.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/value.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/valueOf.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/values.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/valuesIn.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/without.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/words.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/wrap.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/wrapperAt.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/wrapperChain.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/wrapperLodash.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/wrapperReverse.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/wrapperValue.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/xor.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/xorBy.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/xorWith.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/zip.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/zipObject.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/zipObjectDeep.js","webpack:///../meta/LsCkeditor/node_modules/lodash-es/zipWith.js","webpack:///../meta/LsCkeditor/node_modules/regenerator-runtime/runtime.js","webpack:///../meta/LsCkeditor/src/LsCkEditorClassic.js","webpack:///../meta/LsCkeditor/src/plugins/CustomDropdown/ListGroupSeparatorView.js","webpack:///../meta/LsCkeditor/src/plugins/CustomDropdown/PreviewButtonView.js","webpack:///../meta/LsCkeditor/src/plugins/CustomDropdown/utils.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/LSFileUploadAdapter/LSFileUploadAdapter.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/LsFileUploadPlugin.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimageselect.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimageselect/lsimageselectcommand.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimageselect/lsimageselectediting.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimageselect/lsimageselectui.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimagesize.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimagesize/lsimagesizecommand.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimagesize/lsimagesizeediting.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimagesize/lsimagesizeui.js","webpack:///../meta/LsCkeditor/src/plugins/LsImage/lsimagesize/utils.js","webpack:///../meta/LsCkeditor/src/plugins/LsReplacements/LsReplacements.js","webpack:///../meta/LsCkeditor/src/plugins/LsReplacements/LsReplacementsCommand.js","webpack:///../meta/LsCkeditor/src/plugins/LsReplacements/LsReplacementsEditing.js","webpack:///../meta/LsCkeditor/src/plugins/LsReplacements/LsReplacementsUI.js","webpack:///../meta/LsCkeditor/src/plugins/assets/LsIcon.svg","webpack:///../meta/LsCkeditor/src/plugins/assets/LsImageSizeIcon.svg","webpack:///../meta/LsCkeditor/src/plugins/assets/LsSelectFileIcon.svg","webpack:///../meta/LsCkeditor/src/plugins/assets/imageSizes.scss?d994","webpack:///../meta/LsCkeditor/src/plugins/assets/styles.scss?4046","webpack:///../meta/lib/ConsoleShim.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/array/from.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/array/is-array.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/get-iterator.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/is-iterable.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/map.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/create.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/define-property.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/get-own-property-descriptor.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/get-prototype-of.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/object/set-prototype-of.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/reflect/construct.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/reflect/get.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/symbol.js","webpack:///./node_modules/@babel/runtime-corejs2/core-js/symbol/iterator.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/arrayLikeToArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithHoles.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/arrayWithoutHoles.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/construct.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/createClass.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/defineProperty.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/get.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/inherits.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/isNativeFunction.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/isNativeReflectConstruct.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableRest.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/nonIterableSpread.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/setPrototypeOf.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/superPropBase.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/typeof.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/unsupportedIterableToArray.js","webpack:///./node_modules/@babel/runtime-corejs2/helpers/esm/wrapNativeSuper.js","webpack:///./node_modules/bootstrap-toggle/css/bootstrap-toggle.css?b550","webpack:///./node_modules/bootstrap-toggle/js/bootstrap-toggle.js","webpack:///src/App.vue","webpack:///src/components/SimpleQuestionTypeSelector.vue","webpack:///src/components/_inputtypes/buttongroup.vue","webpack:///src/components/_inputtypes/columns.vue","webpack:///src/components/_inputtypes/integer.vue","webpack:///src/components/_inputtypes/questiongroup.vue","webpack:///src/components/_inputtypes/questiontheme.vue","webpack:///src/components/_inputtypes/select.vue","webpack:///src/components/_inputtypes/stub.vue","webpack:///src/components/_inputtypes/switch.vue","webpack:///src/components/_inputtypes/text.vue","webpack:///src/components/_inputtypes/textarea.vue","webpack:///src/components/_inputtypes/textdisplay.vue","webpack:///src/components/abstracts/_abstractInputType.vue","webpack:///src/components/abstracts/_abstractSubquestionAndAnswers.vue","webpack:///src/components/advancedSettings.vue","webpack:///src/components/generalSettings.vue","webpack:///src/components/mainEditor.vue","webpack:///src/components/questionoverview.vue","webpack:///src/components/subcomponents/_answeroptions.vue","webpack:///src/components/subcomponents/_settingstab.vue","webpack:///src/components/subcomponents/_subquestions.vue","webpack:///src/helperComponents/AceEditor.vue","webpack:///src/helperComponents/Autocomplete.vue","webpack:///src/helperComponents/BootstrapToggler.vue","webpack:///src/helperComponents/LabelSets.vue","webpack:///src/helperComponents/LanguageSelector.vue","webpack:///src/helperComponents/QuestionTypeSelector.vue","webpack:///src/helperComponents/QuickEdit.vue","webpack:///src/helperComponents/SaveLabelSet.vue","webpack:///src/helperComponents/SimplePopUpEditor.vue","webpack:///src/helperComponents/TypeCounter.vue","webpack:///src/helperComponents/loader.vue","webpack:///./src/App.vue?8d51","webpack:///./src/components/SimpleQuestionTypeSelector.vue?0210","webpack:///./src/components/_inputtypes/buttongroup.vue?514f","webpack:///./src/components/_inputtypes/columns.vue?4c18","webpack:///./src/components/_inputtypes/integer.vue?19a5","webpack:///./src/components/_inputtypes/questiongroup.vue?0f29","webpack:///./src/components/_inputtypes/questiontheme.vue?3cca","webpack:///./src/components/_inputtypes/select.vue?a897","webpack:///./src/components/_inputtypes/stub.vue?3795","webpack:///./src/components/_inputtypes/switch.vue?2b21","webpack:///./src/components/_inputtypes/text.vue?a8f8","webpack:///./src/components/_inputtypes/textarea.vue?d0d0","webpack:///./src/components/_inputtypes/textdisplay.vue?506f","webpack:///./src/components/advancedSettings.vue?976f","webpack:///./src/components/generalSettings.vue?7861","webpack:///./src/components/mainEditor.vue?a6ad","webpack:///./src/components/questionoverview.vue?8ca3","webpack:///./src/components/subcomponents/_answeroptions.vue?db2e","webpack:///./src/components/subcomponents/_settingstab.vue?c6c8","webpack:///./src/components/subcomponents/_subquestions.vue?140b","webpack:///./src/helperComponents/AceEditor.vue?263a","webpack:///./src/helperComponents/Autocomplete.vue?c249","webpack:///./src/helperComponents/BootstrapToggler.vue?65a4","webpack:///./src/helperComponents/LabelSets.vue?3a64","webpack:///./src/helperComponents/LanguageSelector.vue?c754","webpack:///./src/helperComponents/QuestionTypeSelector.vue?c025","webpack:///./src/helperComponents/QuickEdit.vue?6b16","webpack:///./src/helperComponents/SaveLabelSet.vue?bd62","webpack:///./src/helperComponents/SimplePopUpEditor.vue?b2fc","webpack:///./src/helperComponents/TypeCounter.vue?dcac","webpack:///./src/helperComponents/loader.vue?ad3e","webpack:///./node_modules/circular-json/build/circular-json.node.js","webpack:///./node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/core-js/library/fn/array/is-array.js","webpack:///./node_modules/core-js/library/fn/get-iterator.js","webpack:///./node_modules/core-js/library/fn/is-iterable.js","webpack:///./node_modules/core-js/library/fn/map.js","webpack:///./node_modules/core-js/library/fn/object/create.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/fn/object/get-prototype-of.js","webpack:///./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/fn/reflect/construct.js","webpack:///./node_modules/core-js/library/fn/reflect/get.js","webpack:///./node_modules/core-js/library/fn/symbol/index.js","webpack:///./node_modules/core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/library/modules/_an-instance.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_array-from-iterable.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_array-methods.js","webpack:///./node_modules/core-js/library/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/library/modules/_array-species-create.js","webpack:///./node_modules/core-js/library/modules/_bind.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_collection-strong.js","webpack:///./node_modules/core-js/library/modules/_collection-to-json.js","webpack:///./node_modules/core-js/library/modules/_collection.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/core-js/library/modules/_create-property.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_for-of.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_invoke.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/library/modules/_object-gopd.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_redefine-all.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/core-js/library/modules/_set-collection-from.js","webpack:///./node_modules/core-js/library/modules/_set-collection-of.js","webpack:///./node_modules/core-js/library/modules/_set-proto.js","webpack:///./node_modules/core-js/library/modules/_set-species.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/library/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_validate-collection.js","webpack:///./node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator.js","webpack:///./node_modules/core-js/library/modules/core.is-iterable.js","webpack:///./node_modules/core-js/library/modules/es6.array.from.js","webpack:///./node_modules/core-js/library/modules/es6.array.is-array.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/es6.map.js","webpack:///./node_modules/core-js/library/modules/es6.object.create.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/library/modules/es6.reflect.get.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/core-js/library/modules/es7.map.from.js","webpack:///./node_modules/core-js/library/modules/es7.map.of.js","webpack:///./node_modules/core-js/library/modules/es7.map.to-json.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/modules/_a-function.js","webpack:///./node_modules/core-js/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/modules/_advance-string-index.js","webpack:///./node_modules/core-js/modules/_an-instance.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_array-fill.js","webpack:///./node_modules/core-js/modules/_array-includes.js","webpack:///./node_modules/core-js/modules/_array-methods.js","webpack:///./node_modules/core-js/modules/_array-species-constructor.js","webpack:///./node_modules/core-js/modules/_array-species-create.js","webpack:///./node_modules/core-js/modules/_bind.js","webpack:///./node_modules/core-js/modules/_classof.js","webpack:///./node_modules/core-js/modules/_cof.js","webpack:///./node_modules/core-js/modules/_collection-strong.js","webpack:///./node_modules/core-js/modules/_collection-weak.js","webpack:///./node_modules/core-js/modules/_collection.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_create-property.js","webpack:///./node_modules/core-js/modules/_ctx.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/modules/_enum-keys.js","webpack:///./node_modules/core-js/modules/_export.js","webpack:///./node_modules/core-js/modules/_fails-is-regexp.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_flags.js","webpack:///./node_modules/core-js/modules/_for-of.js","webpack:///./node_modules/core-js/modules/_function-to-string.js","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_html.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_inherit-if-required.js","webpack:///./node_modules/core-js/modules/_invoke.js","webpack:///./node_modules/core-js/modules/_iobject.js","webpack:///./node_modules/core-js/modules/_is-array-iter.js","webpack:///./node_modules/core-js/modules/_is-array.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_is-regexp.js","webpack:///./node_modules/core-js/modules/_iter-call.js","webpack:///./node_modules/core-js/modules/_iter-create.js","webpack:///./node_modules/core-js/modules/_iter-define.js","webpack:///./node_modules/core-js/modules/_iter-detect.js","webpack:///./node_modules/core-js/modules/_iter-step.js","webpack:///./node_modules/core-js/modules/_iterators.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/_meta.js","webpack:///./node_modules/core-js/modules/_microtask.js","webpack:///./node_modules/core-js/modules/_new-promise-capability.js","webpack:///./node_modules/core-js/modules/_object-assign.js","webpack:///./node_modules/core-js/modules/_object-create.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_object-dps.js","webpack:///./node_modules/core-js/modules/_object-gopd.js","webpack:///./node_modules/core-js/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/modules/_object-gopn.js","webpack:///./node_modules/core-js/modules/_object-gops.js","webpack:///./node_modules/core-js/modules/_object-gpo.js","webpack:///./node_modules/core-js/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/modules/_object-keys.js","webpack:///./node_modules/core-js/modules/_object-pie.js","webpack:///./node_modules/core-js/modules/_object-sap.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./node_modules/core-js/modules/_parse-int.js","webpack:///./node_modules/core-js/modules/_perform.js","webpack:///./node_modules/core-js/modules/_promise-resolve.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_redefine-all.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_regexp-exec-abstract.js","webpack:///./node_modules/core-js/modules/_regexp-exec.js","webpack:///./node_modules/core-js/modules/_same-value.js","webpack:///./node_modules/core-js/modules/_set-proto.js","webpack:///./node_modules/core-js/modules/_set-species.js","webpack:///./node_modules/core-js/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/modules/_shared-key.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_species-constructor.js","webpack:///./node_modules/core-js/modules/_strict-method.js","webpack:///./node_modules/core-js/modules/_string-at.js","webpack:///./node_modules/core-js/modules/_string-context.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./node_modules/core-js/modules/_string-pad.js","webpack:///./node_modules/core-js/modules/_string-repeat.js","webpack:///./node_modules/core-js/modules/_string-trim.js","webpack:///./node_modules/core-js/modules/_string-ws.js","webpack:///./node_modules/core-js/modules/_task.js","webpack:///./node_modules/core-js/modules/_to-absolute-index.js","webpack:///./node_modules/core-js/modules/_to-integer.js","webpack:///./node_modules/core-js/modules/_to-iobject.js","webpack:///./node_modules/core-js/modules/_to-length.js","webpack:///./node_modules/core-js/modules/_to-object.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_user-agent.js","webpack:///./node_modules/core-js/modules/_validate-collection.js","webpack:///./node_modules/core-js/modules/_wks-define.js","webpack:///./node_modules/core-js/modules/_wks-ext.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/modules/es6.array.fill.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./node_modules/core-js/modules/es6.array.find.js","webpack:///./node_modules/core-js/modules/es6.array.from.js","webpack:///./node_modules/core-js/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/modules/es6.array.sort.js","webpack:///./node_modules/core-js/modules/es6.function.name.js","webpack:///./node_modules/core-js/modules/es6.map.js","webpack:///./node_modules/core-js/modules/es6.number.constructor.js","webpack:///./node_modules/core-js/modules/es6.number.parse-int.js","webpack:///./node_modules/core-js/modules/es6.object.assign.js","webpack:///./node_modules/core-js/modules/es6.object.keys.js","webpack:///./node_modules/core-js/modules/es6.promise.js","webpack:///./node_modules/core-js/modules/es6.reflect.construct.js","webpack:///./node_modules/core-js/modules/es6.regexp.constructor.js","webpack:///./node_modules/core-js/modules/es6.regexp.exec.js","webpack:///./node_modules/core-js/modules/es6.regexp.flags.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./node_modules/core-js/modules/es6.regexp.replace.js","webpack:///./node_modules/core-js/modules/es6.regexp.search.js","webpack:///./node_modules/core-js/modules/es6.regexp.split.js","webpack:///./node_modules/core-js/modules/es6.regexp.to-string.js","webpack:///./node_modules/core-js/modules/es6.set.js","webpack:///./node_modules/core-js/modules/es6.string.anchor.js","webpack:///./node_modules/core-js/modules/es6.string.ends-with.js","webpack:///./node_modules/core-js/modules/es6.string.includes.js","webpack:///./node_modules/core-js/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/modules/es6.string.repeat.js","webpack:///./node_modules/core-js/modules/es6.string.starts-with.js","webpack:///./node_modules/core-js/modules/es6.symbol.js","webpack:///./node_modules/core-js/modules/es6.weak-map.js","webpack:///./node_modules/core-js/modules/es6.weak-set.js","webpack:///./node_modules/core-js/modules/es7.array.includes.js","webpack:///./node_modules/core-js/modules/es7.object.entries.js","webpack:///./node_modules/core-js/modules/es7.object.values.js","webpack:///./node_modules/core-js/modules/es7.promise.finally.js","webpack:///./node_modules/core-js/modules/es7.string.pad-start.js","webpack:///./node_modules/core-js/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/modules/web.dom.iterable.js","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-block-quote/theme/blockquote.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-editor-classic/theme/classiceditor.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-engine/theme/placeholder.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/fontcolor.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-font/theme/fontsize.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-heading/theme/heading.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/image.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imagecaption.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imagestyle.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imageuploadicon.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imageuploadloader.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/imageuploadprogress.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-image/theme/textalternativeform.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/link.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/linkactions.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-link/theme/linkform.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembed.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaembedediting.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-media-embed/theme/mediaform.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/inserttable.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/table.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-table/theme/tableediting.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/button/button.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/button/switchbutton.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/colorgrid/colorgrid.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/dropdown.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/listdropdown.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/dropdown/toolbardropdown.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/editorui/editorui.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/icon/icon.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/inputtext/inputtext.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/label/label.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/labeledinput/labeledinput.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/list/list.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonpanel.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/balloonrotator.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/fakepanel.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/panel/stickypanel.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/toolbar/toolbar.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/components/tooltip/tooltip.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-ui/theme/globals/globals.css","webpack:///../meta/LsCkeditor/node_modules/@ckeditor/ckeditor5-widget/theme/widget.css","webpack:///../meta/LsCkeditor/src/plugins/assets/imageSizes.scss","webpack:///../meta/LsCkeditor/src/plugins/assets/styles.scss","webpack:///./scss/questioneditmain.scss","webpack:///./node_modules/bootstrap-toggle/css/bootstrap-toggle.css","webpack:///./src/components/questionoverview.vue?76a8","webpack:///./src/helperComponents/LabelSets.vue?d007","webpack:///./src/helperComponents/LanguageSelector.vue?809f","webpack:///./src/helperComponents/loader.vue?bf6a","webpack:///./src/App.vue?3ed5","webpack:///./src/components/SimpleQuestionTypeSelector.vue?3429","webpack:///./src/components/_inputtypes/switch.vue?4509","webpack:///./src/components/advancedSettings.vue?26c4","webpack:///./src/components/generalSettings.vue?7ef9","webpack:///./src/components/mainEditor.vue?a5c0","webpack:///./src/components/subcomponents/_answeroptions.vue?ef13","webpack:///./src/components/subcomponents/_settingstab.vue?271c","webpack:///./src/components/subcomponents/_subquestions.vue?5339","webpack:///./src/helperComponents/AceEditor.vue?185b","webpack:///./src/helperComponents/Autocomplete.vue?a528","webpack:///./src/helperComponents/QuestionTypeSelector.vue?25ec","webpack:///./src/helperComponents/QuickEdit.vue?9926","webpack:///./src/helperComponents/SimplePopUpEditor.vue?57e5","webpack:///./src/helperComponents/TypeCounter.vue?5918","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/he/he.js","webpack:///./node_modules/lodash.merge/index.js","webpack:///./node_modules/lodash/_DataView.js","webpack:///./node_modules/lodash/_Hash.js","webpack:///./node_modules/lodash/_ListCache.js","webpack:///./node_modules/lodash/_Map.js","webpack:///./node_modules/lodash/_MapCache.js","webpack:///./node_modules/lodash/_Promise.js","webpack:///./node_modules/lodash/_Set.js","webpack:///./node_modules/lodash/_SetCache.js","webpack:///./node_modules/lodash/_Stack.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_Uint8Array.js","webpack:///./node_modules/lodash/_WeakMap.js","webpack:///./node_modules/lodash/_apply.js","webpack:///./node_modules/lodash/_arrayEach.js","webpack:///./node_modules/lodash/_arrayEvery.js","webpack:///./node_modules/lodash/_arrayFilter.js","webpack:///./node_modules/lodash/_arrayIncludes.js","webpack:///./node_modules/lodash/_arrayIncludesWith.js","webpack:///./node_modules/lodash/_arrayLikeKeys.js","webpack:///./node_modules/lodash/_arrayMap.js","webpack:///./node_modules/lodash/_arrayPush.js","webpack:///./node_modules/lodash/_arrayReduce.js","webpack:///./node_modules/lodash/_arraySome.js","webpack:///./node_modules/lodash/_asciiSize.js","webpack:///./node_modules/lodash/_assignMergeValue.js","webpack:///./node_modules/lodash/_assignValue.js","webpack:///./node_modules/lodash/_assocIndexOf.js","webpack:///./node_modules/lodash/_baseAssign.js","webpack:///./node_modules/lodash/_baseAssignIn.js","webpack:///./node_modules/lodash/_baseAssignValue.js","webpack:///./node_modules/lodash/_baseClone.js","webpack:///./node_modules/lodash/_baseCreate.js","webpack:///./node_modules/lodash/_baseEach.js","webpack:///./node_modules/lodash/_baseEvery.js","webpack:///./node_modules/lodash/_baseExtremum.js","webpack:///./node_modules/lodash/_baseFilter.js","webpack:///./node_modules/lodash/_baseFindIndex.js","webpack:///./node_modules/lodash/_baseFlatten.js","webpack:///./node_modules/lodash/_baseFor.js","webpack:///./node_modules/lodash/_baseForOwn.js","webpack:///./node_modules/lodash/_baseGet.js","webpack:///./node_modules/lodash/_baseGetAllKeys.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_baseGt.js","webpack:///./node_modules/lodash/_baseHasIn.js","webpack:///./node_modules/lodash/_baseIndexOf.js","webpack:///./node_modules/lodash/_baseIsArguments.js","webpack:///./node_modules/lodash/_baseIsEqual.js","webpack:///./node_modules/lodash/_baseIsEqualDeep.js","webpack:///./node_modules/lodash/_baseIsMap.js","webpack:///./node_modules/lodash/_baseIsMatch.js","webpack:///./node_modules/lodash/_baseIsNaN.js","webpack:///./node_modules/lodash/_baseIsNative.js","webpack:///./node_modules/lodash/_baseIsSet.js","webpack:///./node_modules/lodash/_baseIsTypedArray.js","webpack:///./node_modules/lodash/_baseIteratee.js","webpack:///./node_modules/lodash/_baseKeys.js","webpack:///./node_modules/lodash/_baseKeysIn.js","webpack:///./node_modules/lodash/_baseMap.js","webpack:///./node_modules/lodash/_baseMatches.js","webpack:///./node_modules/lodash/_baseMatchesProperty.js","webpack:///./node_modules/lodash/_baseMerge.js","webpack:///./node_modules/lodash/_baseMergeDeep.js","webpack:///./node_modules/lodash/_baseOrderBy.js","webpack:///./node_modules/lodash/_basePick.js","webpack:///./node_modules/lodash/_basePickBy.js","webpack:///./node_modules/lodash/_baseProperty.js","webpack:///./node_modules/lodash/_basePropertyDeep.js","webpack:///./node_modules/lodash/_basePullAt.js","webpack:///./node_modules/lodash/_baseReduce.js","webpack:///./node_modules/lodash/_baseRest.js","webpack:///./node_modules/lodash/_baseSet.js","webpack:///./node_modules/lodash/_baseSetToString.js","webpack:///./node_modules/lodash/_baseSlice.js","webpack:///./node_modules/lodash/_baseSortBy.js","webpack:///./node_modules/lodash/_baseTimes.js","webpack:///./node_modules/lodash/_baseToString.js","webpack:///./node_modules/lodash/_baseUnary.js","webpack:///./node_modules/lodash/_baseUniq.js","webpack:///./node_modules/lodash/_baseUnset.js","webpack:///./node_modules/lodash/_cacheHas.js","webpack:///./node_modules/lodash/_castFunction.js","webpack:///./node_modules/lodash/_castPath.js","webpack:///./node_modules/lodash/_cloneArrayBuffer.js","webpack:///./node_modules/lodash/_cloneBuffer.js","webpack:///./node_modules/lodash/_cloneDataView.js","webpack:///./node_modules/lodash/_cloneRegExp.js","webpack:///./node_modules/lodash/_cloneSymbol.js","webpack:///./node_modules/lodash/_cloneTypedArray.js","webpack:///./node_modules/lodash/_compareAscending.js","webpack:///./node_modules/lodash/_compareMultiple.js","webpack:///./node_modules/lodash/_copyArray.js","webpack:///./node_modules/lodash/_copyObject.js","webpack:///./node_modules/lodash/_copySymbols.js","webpack:///./node_modules/lodash/_copySymbolsIn.js","webpack:///./node_modules/lodash/_coreJsData.js","webpack:///./node_modules/lodash/_createAssigner.js","webpack:///./node_modules/lodash/_createBaseEach.js","webpack:///./node_modules/lodash/_createBaseFor.js","webpack:///./node_modules/lodash/_createFind.js","webpack:///./node_modules/lodash/_createSet.js","webpack:///./node_modules/lodash/_defineProperty.js","webpack:///./node_modules/lodash/_equalArrays.js","webpack:///./node_modules/lodash/_equalByTag.js","webpack:///./node_modules/lodash/_equalObjects.js","webpack:///./node_modules/lodash/_flatRest.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_getAllKeys.js","webpack:///./node_modules/lodash/_getAllKeysIn.js","webpack:///./node_modules/lodash/_getMapData.js","webpack:///./node_modules/lodash/_getMatchData.js","webpack:///./node_modules/lodash/_getNative.js","webpack:///./node_modules/lodash/_getPrototype.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_getSymbols.js","webpack:///./node_modules/lodash/_getSymbolsIn.js","webpack:///./node_modules/lodash/_getTag.js","webpack:///./node_modules/lodash/_getValue.js","webpack:///./node_modules/lodash/_hasPath.js","webpack:///./node_modules/lodash/_hasUnicode.js","webpack:///./node_modules/lodash/_hashClear.js","webpack:///./node_modules/lodash/_hashDelete.js","webpack:///./node_modules/lodash/_hashGet.js","webpack:///./node_modules/lodash/_hashHas.js","webpack:///./node_modules/lodash/_hashSet.js","webpack:///./node_modules/lodash/_initCloneArray.js","webpack:///./node_modules/lodash/_initCloneByTag.js","webpack:///./node_modules/lodash/_initCloneObject.js","webpack:///./node_modules/lodash/_isFlattenable.js","webpack:///./node_modules/lodash/_isIndex.js","webpack:///./node_modules/lodash/_isIterateeCall.js","webpack:///./node_modules/lodash/_isKey.js","webpack:///./node_modules/lodash/_isKeyable.js","webpack:///./node_modules/lodash/_isMasked.js","webpack:///./node_modules/lodash/_isPrototype.js","webpack:///./node_modules/lodash/_isStrictComparable.js","webpack:///./node_modules/lodash/_listCacheClear.js","webpack:///./node_modules/lodash/_listCacheDelete.js","webpack:///./node_modules/lodash/_listCacheGet.js","webpack:///./node_modules/lodash/_listCacheHas.js","webpack:///./node_modules/lodash/_listCacheSet.js","webpack:///./node_modules/lodash/_mapCacheClear.js","webpack:///./node_modules/lodash/_mapCacheDelete.js","webpack:///./node_modules/lodash/_mapCacheGet.js","webpack:///./node_modules/lodash/_mapCacheHas.js","webpack:///./node_modules/lodash/_mapCacheSet.js","webpack:///./node_modules/lodash/_mapToArray.js","webpack:///./node_modules/lodash/_matchesStrictComparable.js","webpack:///./node_modules/lodash/_memoizeCapped.js","webpack:///./node_modules/lodash/_nativeCreate.js","webpack:///./node_modules/lodash/_nativeKeys.js","webpack:///./node_modules/lodash/_nativeKeysIn.js","webpack:///./node_modules/lodash/_nodeUtil.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/_overArg.js","webpack:///./node_modules/lodash/_overRest.js","webpack:///./node_modules/lodash/_parent.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/lodash/_safeGet.js","webpack:///./node_modules/lodash/_setCacheAdd.js","webpack:///./node_modules/lodash/_setCacheHas.js","webpack:///./node_modules/lodash/_setToArray.js","webpack:///./node_modules/lodash/_setToString.js","webpack:///./node_modules/lodash/_shortOut.js","webpack:///./node_modules/lodash/_stackClear.js","webpack:///./node_modules/lodash/_stackDelete.js","webpack:///./node_modules/lodash/_stackGet.js","webpack:///./node_modules/lodash/_stackHas.js","webpack:///./node_modules/lodash/_stackSet.js","webpack:///./node_modules/lodash/_strictIndexOf.js","webpack:///./node_modules/lodash/_stringSize.js","webpack:///./node_modules/lodash/_stringToPath.js","webpack:///./node_modules/lodash/_toKey.js","webpack:///./node_modules/lodash/_toSource.js","webpack:///./node_modules/lodash/_unicodeSize.js","webpack:///./node_modules/lodash/cloneDeep.js","webpack:///./node_modules/lodash/constant.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/eq.js","webpack:///./node_modules/lodash/every.js","webpack:///./node_modules/lodash/filter.js","webpack:///./node_modules/lodash/find.js","webpack:///./node_modules/lodash/findIndex.js","webpack:///./node_modules/lodash/first.js","webpack:///./node_modules/lodash/flatten.js","webpack:///./node_modules/lodash/forEach.js","webpack:///./node_modules/lodash/get.js","webpack:///./node_modules/lodash/hasIn.js","webpack:///./node_modules/lodash/head.js","webpack:///./node_modules/lodash/identity.js","webpack:///./node_modules/lodash/indexOf.js","webpack:///./node_modules/lodash/isArguments.js","webpack:///./node_modules/lodash/isArray.js","webpack:///./node_modules/lodash/isArrayLike.js","webpack:///./node_modules/lodash/isArrayLikeObject.js","webpack:///./node_modules/lodash/isBuffer.js","webpack:///./node_modules/lodash/isEmpty.js","webpack:///./node_modules/lodash/isEqual.js","webpack:///./node_modules/lodash/isFunction.js","webpack:///./node_modules/lodash/isLength.js","webpack:///./node_modules/lodash/isMap.js","webpack:///./node_modules/lodash/isObject.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/isPlainObject.js","webpack:///./node_modules/lodash/isSet.js","webpack:///./node_modules/lodash/isString.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/isTypedArray.js","webpack:///./node_modules/lodash/keys.js","webpack:///./node_modules/lodash/keysIn.js","webpack:///./node_modules/lodash/last.js","webpack:///./node_modules/lodash/map.js","webpack:///./node_modules/lodash/max.js","webpack:///./node_modules/lodash/memoize.js","webpack:///./node_modules/lodash/merge.js","webpack:///./node_modules/lodash/noop.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/pick.js","webpack:///./node_modules/lodash/property.js","webpack:///./node_modules/lodash/reduce.js","webpack:///./node_modules/lodash/remove.js","webpack:///./node_modules/lodash/size.js","webpack:///./node_modules/lodash/slice.js","webpack:///./node_modules/lodash/sortBy.js","webpack:///./node_modules/lodash/stubArray.js","webpack:///./node_modules/lodash/stubFalse.js","webpack:///./node_modules/lodash/toFinite.js","webpack:///./node_modules/lodash/toInteger.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/toPlainObject.js","webpack:///./node_modules/lodash/toString.js","webpack:///./node_modules/lodash/uniqBy.js","webpack:///./node_modules/mousetrap/mousetrap.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/vue-bootstrap-toggle/dist/index.js","webpack:///./node_modules/vue-hot-reload-api/dist/index.js","webpack:///./node_modules/vue-js-modal/dist/index.js","webpack:///./node_modules/vue-loader/lib/runtime/componentNormalizer.js","webpack:///./node_modules/vue-localstorage/dist/vue-local-storage.js","webpack:///./node_modules/bootstrap-toggle/css/bootstrap-toggle.css?6415","webpack:///./src/components/questionoverview.vue?ec66","webpack:///./src/helperComponents/LabelSets.vue?d606","webpack:///./src/helperComponents/LanguageSelector.vue?f3a1","webpack:///./src/helperComponents/loader.vue?ac21","webpack:///./src/App.vue?7983","webpack:///./src/components/SimpleQuestionTypeSelector.vue?361f","webpack:///./src/components/_inputtypes/switch.vue?17f6","webpack:///./src/components/advancedSettings.vue?e497","webpack:///./src/components/generalSettings.vue?a3c4","webpack:///./src/components/mainEditor.vue?678b","webpack:///./src/components/subcomponents/_answeroptions.vue?ba89","webpack:///./src/components/subcomponents/_settingstab.vue?bd6a","webpack:///./src/components/subcomponents/_subquestions.vue?bc92","webpack:///./src/helperComponents/AceEditor.vue?92d9","webpack:///./src/helperComponents/Autocomplete.vue?af6a","webpack:///./src/helperComponents/QuestionTypeSelector.vue?03ec","webpack:///./src/helperComponents/QuickEdit.vue?449b","webpack:///./src/helperComponents/SimplePopUpEditor.vue?1e04","webpack:///./src/helperComponents/TypeCounter.vue?c521","webpack:///./node_modules/vue-style-loader/lib/addStylesClient.js","webpack:///./node_modules/vue-style-loader/lib/listToStyles.js","webpack:///./node_modules/vue/dist/vue.esm.js","webpack:///./node_modules/vuex-persist/dist/esm/index.js","webpack:///./node_modules/vuex/dist/vuex.esm.js","webpack:///(webpack)/buildin/global.js","webpack:///(webpack)/buildin/harmony-module.js","webpack:///(webpack)/buildin/module.js","webpack:///./scss/questioneditmain.scss?f36e","webpack:///./src/App.vue","webpack:///./src/App.vue?f5eb","webpack:///./src/App.vue?7e9c","webpack:///./src/App.vue?1cac","webpack:///./src/components/SimpleQuestionTypeSelector.vue","webpack:///./src/components/SimpleQuestionTypeSelector.vue?07f8","webpack:///./src/components/SimpleQuestionTypeSelector.vue?1d62","webpack:///./src/components/SimpleQuestionTypeSelector.vue?4038","webpack:///./src/components/_inputtypes/buttongroup.vue","webpack:///./src/components/_inputtypes/buttongroup.vue?e0a5","webpack:///./src/components/_inputtypes/buttongroup.vue?0e03","webpack:///./src/components/_inputtypes/columns.vue","webpack:///./src/components/_inputtypes/columns.vue?f1ce","webpack:///./src/components/_inputtypes/columns.vue?fe6e","webpack:///./src/components/_inputtypes/integer.vue","webpack:///./src/components/_inputtypes/integer.vue?3f33","webpack:///./src/components/_inputtypes/integer.vue?e7b8","webpack:///./src/components/_inputtypes/questiongroup.vue","webpack:///./src/components/_inputtypes/questiongroup.vue?fce9","webpack:///./src/components/_inputtypes/questiongroup.vue?bde7","webpack:///./src/components/_inputtypes/questiontheme.vue","webpack:///./src/components/_inputtypes/questiontheme.vue?9beb","webpack:///./src/components/_inputtypes/questiontheme.vue?683c","webpack:///./src/components/_inputtypes/select.vue","webpack:///./src/components/_inputtypes/select.vue?2ef2","webpack:///./src/components/_inputtypes/select.vue?291d","webpack:///./src/components/_inputtypes/stub.vue","webpack:///./src/components/_inputtypes/stub.vue?f496","webpack:///./src/components/_inputtypes/stub.vue?089f","webpack:///./src/components/_inputtypes/switch.vue","webpack:///./src/components/_inputtypes/switch.vue?44f4","webpack:///./src/components/_inputtypes/switch.vue?4c5f","webpack:///./src/components/_inputtypes/switch.vue?ce46","webpack:///./src/components/_inputtypes/text.vue","webpack:///./src/components/_inputtypes/text.vue?7830","webpack:///./src/components/_inputtypes/text.vue?82ad","webpack:///./src/components/_inputtypes/textarea.vue","webpack:///./src/components/_inputtypes/textarea.vue?ac4a","webpack:///./src/components/_inputtypes/textarea.vue?7b19","webpack:///./src/components/_inputtypes/textdisplay.vue","webpack:///./src/components/_inputtypes/textdisplay.vue?c2bf","webpack:///./src/components/_inputtypes/textdisplay.vue?f08d","webpack:///./src/components/abstracts/_abstractInputType.vue","webpack:///./src/components/abstracts/_abstractInputType.vue?b2fb","webpack:///./src/components/abstracts/_abstractSubquestionAndAnswers.vue","webpack:///./src/components/abstracts/_abstractSubquestionAndAnswers.vue?adc5","webpack:///./src/components/advancedSettings.vue","webpack:///./src/components/advancedSettings.vue?8946","webpack:///./src/components/advancedSettings.vue?15fa","webpack:///./src/components/advancedSettings.vue?d949","webpack:///./src/components/generalSettings.vue","webpack:///./src/components/generalSettings.vue?11e3","webpack:///./src/components/generalSettings.vue?e2e2","webpack:///./src/components/generalSettings.vue?f67b","webpack:///./src/components/mainEditor.vue","webpack:///./src/components/mainEditor.vue?b010","webpack:///./src/components/mainEditor.vue?abc5","webpack:///./src/components/mainEditor.vue?d449","webpack:///./src/components/questionoverview.vue","webpack:///./src/components/questionoverview.vue?c494","webpack:///./src/components/questionoverview.vue?6836","webpack:///./src/components/questionoverview.vue?1ec5","webpack:///./src/components/subcomponents/_answeroptions.vue","webpack:///./src/components/subcomponents/_answeroptions.vue?44c4","webpack:///./src/components/subcomponents/_answeroptions.vue?79b5","webpack:///./src/components/subcomponents/_answeroptions.vue?176e","webpack:///./src/components/subcomponents/_settingstab.vue","webpack:///./src/components/subcomponents/_settingstab.vue?2ca9","webpack:///./src/components/subcomponents/_settingstab.vue?e141","webpack:///./src/components/subcomponents/_settingstab.vue?188a","webpack:///./src/components/subcomponents/_subquestions.vue","webpack:///./src/components/subcomponents/_subquestions.vue?16ef","webpack:///./src/components/subcomponents/_subquestions.vue?3096","webpack:///./src/components/subcomponents/_subquestions.vue?fc10","webpack:///./src/helperComponents/AceEditor.vue","webpack:///./src/helperComponents/AceEditor.vue?b0af","webpack:///./src/helperComponents/AceEditor.vue?d00c","webpack:///./src/helperComponents/AceEditor.vue?9349","webpack:///./src/helperComponents/Autocomplete.vue","webpack:///./src/helperComponents/Autocomplete.vue?af0c","webpack:///./src/helperComponents/Autocomplete.vue?94ea","webpack:///./src/helperComponents/Autocomplete.vue?5452","webpack:///./src/helperComponents/BootstrapToggler.vue","webpack:///./src/helperComponents/BootstrapToggler.vue?481d","webpack:///./src/helperComponents/BootstrapToggler.vue?68e8","webpack:///./src/helperComponents/LabelSets.vue","webpack:///./src/helperComponents/LabelSets.vue?05af","webpack:///./src/helperComponents/LabelSets.vue?fb30","webpack:///./src/helperComponents/LabelSets.vue?afe8","webpack:///./src/helperComponents/LanguageSelector.vue","webpack:///./src/helperComponents/LanguageSelector.vue?8c24","webpack:///./src/helperComponents/LanguageSelector.vue?5eae","webpack:///./src/helperComponents/LanguageSelector.vue?9bac","webpack:///./src/helperComponents/QuestionTypeSelector.vue","webpack:///./src/helperComponents/QuestionTypeSelector.vue?57aa","webpack:///./src/helperComponents/QuestionTypeSelector.vue?948b","webpack:///./src/helperComponents/QuestionTypeSelector.vue?e9e8","webpack:///./src/helperComponents/QuickEdit.vue","webpack:///./src/helperComponents/QuickEdit.vue?d2f2","webpack:///./src/helperComponents/QuickEdit.vue?c0ff","webpack:///./src/helperComponents/QuickEdit.vue?f58a","webpack:///./src/helperComponents/SaveLabelSet.vue","webpack:///./src/helperComponents/SaveLabelSet.vue?8fb4","webpack:///./src/helperComponents/SaveLabelSet.vue?dcbd","webpack:///./src/helperComponents/SimplePopUpEditor.vue","webpack:///./src/helperComponents/SimplePopUpEditor.vue?ba27","webpack:///./src/helperComponents/SimplePopUpEditor.vue?08e7","webpack:///./src/helperComponents/SimplePopUpEditor.vue?ab8e","webpack:///./src/helperComponents/TypeCounter.vue","webpack:///./src/helperComponents/TypeCounter.vue?a639","webpack:///./src/helperComponents/TypeCounter.vue?2a41","webpack:///./src/helperComponents/TypeCounter.vue?6b8f","webpack:///./src/helperComponents/loader.vue","webpack:///./src/helperComponents/loader.vue?c2d8","webpack:///./src/helperComponents/loader.vue?d539","webpack:///./src/helperComponents/loader.vue?311c","webpack:///./src/mixins/eventChild.js","webpack:///./src/mixins/eventRoot.js","webpack:///./src/mixins/logSystem.js","webpack:///./src/mixins/runAjax.js","webpack:///./src/questioneditmain.js","webpack:///./src/storage/actions.js","webpack:///./src/storage/getters.js","webpack:///./src/storage/mutations.js","webpack:///./src/storage/state.js","webpack:///./src/storage/store.js"],"names":["INPUT_EVENT_DEBOUNCE_WAIT","name","render","createElement","tagName","props","editor","type","Function","default","editorType","String","onError","value","config","Object","extraData","disabled","Boolean","watch","applyToEditor","newFunction","instance","newConfig","oldConfig","LS","ld","forEach","key","data","$_lastEditorData","created","window","CKEDITOR_VERSION","mounted","debug","cks","assign","initialData","create","$el","merge","defaultConfig","then","isReadOnly","set","$_setUpEditorEvents","$emit","push","catch","error","console","$","document","on","destroy","beforeDestroy","newValue","oldValue","setData","val","emitInputEvent","evt","getData","model","debounce","editing","view","scrollToTheSelection","element","LSCKEditor","install","Vue","component","LSCKEditorComponent","LsCkEditor","ClassicEditorBase","builtinPlugins","EssentialsPlugin","FontPlugin","PasteFromOfficePlugin","HeadingPlugin","BoldPlugin","ItalicPlugin","UnderlinePlugin","BlockQuotePlugin","AutoformatPlugin","Alignment","LinkPlugin","ListPlugin","TablePlugin","ParagraphPlugin","MediaEmbed","ImagePlugin","ImageCaptionPlugin","ImageStylePlugin","ImageToolbarPlugin","ImageUploadPlugin","LsReplacements","LsFileUploadPlugin","LsImageSelectPlugin","LsImageSizePlugin","toolbar","items","image","language","ListGroupSeparatorView","locale","ariaLabelUid","uid","children","createCollection","labelView","_createLabelView","setTemplate","tag","attributes","class","add","View","bind","bindTemplate","id","text","to","ListSeparatorView","ImageView","src","hash","focus","PreviewButtonView","imageView","_createImageView","ButtonView","addListToDropdown","dropdownView","extraClasses","listView","ListView","extendTemplate","bindTo","using","listGroupSeperatorView","keys","listItemView","ListItemView","buttonView","SwitchButtonView","delegate","panelView","LSFileUploadAdapter","loader","file","Promise","resolve","reject","formData","FormData","presetAjaxOptions","get","ajaxOptions","csrfTokenData","append","option","ajax","url","createUrl","xhr","myXhr","ajaxSettings","upload","addEventListener","_progressHandling","success","cache","contentType","processData","timeout","event","log","plugins","createUploadAdapter","Plugin","ImageSelect","ImageSelectUI","ImageSelectEditing","LsImageSelectCommand","isEnabled","isImageAllowed","eventData","change","writer","insertImage","Command","LSImageSelectEditing","doc","schema","conversion","extend","allowAttributes","commands","for","attributeToAttribute","t","ui","componentFactory","createDropdown","getImages","_parseSelectables","panelPosition","label","icon","selectImageIcon","tooltip","listenTo","execute","source","imageSrc","imageHash","itemDefinitions","Collection","content","grouptitle","separatorDefinition","Model","withText","object","definition","shortName","LsImageSize","LsImageSizeUI","LsImageSizeEditing","LsImageSizeCommand","sizes","defaultSize","selection","getSelectedElement","isImage","hasAttribute","attributeValue","getAttribute","indexOf","options","size","imageElement","setAttribute","define","getImageSizes","modelToViewConverter","modelToViewSizeAttribute","downcastDispatcher","upcastDispatcher","viewToModelSizeAttribute","priority","configuredSizes","allSizes","imageSizeIcon","conversionApi","consumable","consume","item","newStyle","_parseClassName","attributeNewValue","oldStyle","attributeOldValue","viewElement","mapper","toViewElement","removeClass","addClass","modelRange","viewFigureElement","viewItem","modelImageElement","first","getItems","checkAttribute","classes","LsReplacementsEditing","LsReplacementsUI","LsReplacementsCommand","oExpression","insertContent","setSelection","checkChild","parent","_defineSchema","_defineConverters","viewToModelPositionOutsideModelElement","is","register","allowWhere","isInline","isObject","elementToElement","modelWriter","getChild","slice","modelItem","viewWriter","widgetElement","_createExpressionView","toWidget","expressionView","createContainerElement","insert","createPositionAt","createText","Widget","getReplacements","lsIcon","commandParam","typeDef","clear","fieldtype","contentData","he","decode","ConsoleShim","param","silencer","collector","currentGroupDescription","activeGroups","timeHolder","methods","silent","group","groupEnd","trace","time","timeEnd","err","warn","Error","rawArgs","args","unshift","Array","from","arguments","_insertParamToArguments","apply","description","shift","repeat","artificialError","_generateError","stack","callee","undefined","Date","diff","Math","floor","newEvent","oldEvent","affected","isArray","target","$options","method","e","$log","chain","eventSet","triggerEvent","LOG","PluginLog","debugState","backend","prototype","ls","__runAjax","uri","dataType","csrfObject","sendData","response","status","transferStatus","responseData","responseJSON","responseText","$_post","$_get","$_load","$_delete","$_put","devtools","ignoredElements","use","VModal","dynamic","Loader","mixin","translate","QuestionEditData","i10N","filters","AppState","getAppState","qid","questionEditor","el","store","components","App","updateObjects","context","newObjectBlock","commit","question","cloneDeep","questionI10N","scaledSubquestions","scaledAnswerOptions","generalSettings","advancedSettings","questiongroup","loadQuestion","all","postUrl","sid","getters","surveyid","iQuestionId","gid","startType","result","i10n","subquestions","answerOptions","surveyInfo","languages","mainLanguage","getQuestionGeneralSettings","questionTheme","parameters","sQuestionType","state","currentQuestion","question_template","currentQuestionGeneralSettings","formElementValue","getQuestionAdvancedSettings","questionTypeDefinition","getQuestionTypes","reloadQuestion","saveQuestionData","inTransfer","message","transferObject","questionData","currentQuestionSubquestions","currentQuestionAnswerOptions","currentQuestionI10N","currentQuestionAdvancedSettings","initCopy","questionCopy","copySettings","copySubquestions","copyAnswerOptions","copyDefaultAnswers","copyAdvancedOptions","saveAsLabelSet","payload","labelSet","questionTypeChange","settingName","dispatch","finally","fullyLoaded","isEmpty","currentLanguageQuestionI10N","returner","currentQuestionI10","activeLanguage","surveyObject","reparsedParameters","combined","hasTitleSet","isNotEmpty","title","onlyLettersAndNumbersAndStartingWithALetter","test","hasIndividualSubquestionTitles","reduce","coll","scaleArray","scaleId","unique","uniqBy","length","notEmpty","sum","curr","hasIndividualAnsweroptionCodes","values","code","canSubmit","setCurrentQuestion","setCurrentQuestionGroupInfo","currentQuestionGroupInfo","setCurrentQuestionI10N","setCurrentQuestionPermissions","currentQuestionPermissions","setCurrentQuestionGeneralSettings","setCurrentQuestionAdvancedSettings","setCurrentQuestionAdvancedSettingsCategory","currentQuestionAdvancedSettingsCategory","setCurrentQuestionSubquestions","setCurrentQuestionAnswerOptions","setQuestionTypeDefinition","valueObject","updateCurrentQuestion","typeInformation","updateCurrentQuestionGeneralSettings","updateCurrentQuestionAdvancedSettings","updateCurrentQuestionSubquestions","updateCurrentQuestionAnswerOptions","unsetQuestionImmutable","questionImmutable","setQuestionImmutable","unsetQuestionImmutableI10N","questionImmutableI10N","setQuestionImmutableI10N","unsetImmutableQuestionGeneralSettings","questionAttributesImmutable","setImmutableQuestionGeneralSettings","unsetImmutableQuestionAdvancedSettings","questionGeneralSettingsImmutable","setImmutableQuestionAdvancedSettings","unsetQuestionSubquestionsImmutable","questionSubquestionsImmutable","setQuestionSubquestionsImmutable","unsetQuestionAnswerOptionsImmutable","questionAnswerOptionsImmutable","setQuestionAnswerOptionsImmutable","updateCurrentQuestionType","setQuestionGeneralSetting","setQuestionAdvancedSetting","questionAdvancedSettingsCategory","updateFullQuestionI10NValue","setObject","newCurrentQuestionI10N","lng","updateCurrentQuestionI10NValue","updateCurrentQuestionTitle","setQuestionAdvancedSettingsCategory","setCollapsedGeneralSettings","collapsedGeneralSettings","setActiveLanguage","setLanguages","nextLanguage","keyList","currentIndex","previousLanguage","setSurveyInfo","setQuestionTypeList","questionTypes","toggleDebugMode","debugMode","setInTransfer","transferState","setStoredEvent","storedEvent","setInitCopy","nV","setCopySubquestions","setCopyAnswerOptions","setCopyDefaultAnswers","setCopyAdvancedOptions","questionAdvancedSettingsImmutable","aQuestionTypes","alerts","VueLocalStorage","Vuex","questionId","vuexLocal","VuexPersistence","storage","localStorage","Store","statePreset","plugin","mutations","actions"],"mappings":";QAAA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,GAAG;;QAEH;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA,MAAM;QACN;QACA;QACA,MAAM;QACN;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA,6BAA6B;QAC7B,6BAA6B;QAC7B;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,qBAAqB,gBAAgB;QACrC;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,qBAAqB,gBAAgB;QACrC;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,KAAK;;QAEL;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA,kBAAkB,8BAA8B;QAChD;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,IAAI;QACJ;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA,IAAI;QACJ;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,oBAAoB,2BAA2B;QAC/C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,OAAO;QACP;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA,mBAAmB,cAAc;QACjC;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,gBAAgB,KAAK;QACrB;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA,gBAAgB,YAAY;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,cAAc,4BAA4B;QAC1C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA,IAAI;;QAEJ;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA,eAAe,4BAA4B;QAC3C;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA,eAAe,4BAA4B;QAC3C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,iBAAiB,uCAAuC;QACxD;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,iBAAiB,uCAAuC;QACxD;QACA;QACA;QACA;QACA;QACA;QACA;QACA,iBAAiB,sBAAsB;QACvC;QACA;QACA;QACA,QAAQ;QACR;QACA;QACA;QACA;QACA;QACA;QACA,UAAU;QACV;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA,cAAc,wCAAwC;QACtD;QACA;QACA;QACA;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,OAAO;QACP;QACA;QACA;QACA;QACA;QACA;QACA,SAAS;QACT;QACA;QACA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA;QACA;QACA;QACA;QACA,QAAQ;QACR;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA,MAAM;QACN;QACA,KAAK;QACL;;QAEA;QACA;QACA;QACA,IAAI;QACJ;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,eAAe;QACf;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,sCAAsC,uBAAuB;;;QAG7D;QACA;;;;;;;;;;;;;;;;;;;;;;ACv1BA,IAAMA,yBAAyB,GAAG,GAAlC;AACA;AACCC,MAAI,EAAE,YADP;AAGCC,QAHD,kBAGSC,aAHT,EAGyB;AACvB,WAAOA,aAAa,CAAE,KAAKC,OAAP,CAApB;AACA,GALF;AAOCC,OAAK,EAAE;AACAC,UAAM,EAAE;AACJC,UAAI,EAAEC,QADF;AAEbC,aAAO,EAA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AoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AAInB;AACb;AACoB;AACE;AACE;AACE;AAChE;AACA;AACA;AACA,QAAQ,oEAAa;AACrB;AACA;AACA;AACA,QAAQ,qEAAc;AACtB;AACA;AACA;AACA,QAAQ,sEAAe;AACvB;AACA;AACA;AACA,QAAQ,uEAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,mDAAW;AAC1C;AACA,iBAAiB;AACjB;AACA,uCAAuC,iGAAc;AACrD;AACA;AACA;AACA,qBAAqB;AACrB,oBAAoB,uGAAoB;AACxC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,iDAAiD,cAAc,iCAAiC,EAAE;AAClG;AACA,kFAAkF,qEAAc,GAAG,oEAAa;AAChH;AACA;AACA,gGAAgG,aAAa;AAC7G;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,oGAAoG,eAAe;AACnH;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,qFAAU;AACnD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qDAAqD,gBAAgB;AACrE;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ACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,wCAAwC,kBAAkB,SAAS;;AAEnE,cAAc,gEAAsB;AACpC;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA,uCAAuC,+CAA+C;AACtF;AACA;AACA,qBAAqB;AACrB;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,YAAY,gEAAsB;AAClC;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM,EAAE;AACV;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,aAAa;;;AAGoB;;AAEjC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA,OAAO;AACP;;AAEA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACrPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACE;AACL;AAC8G;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD;AACA;;AAEA;AACA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA,8BAA8B,eAAe;AAC7C,UAAU;AACV,UAAU;AACV;AACA,eAAe,iCAAiC;AAChD,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B;AACA,UAAU,OAAO;AACjB;;AAEA,GAAG;;AAEH;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA,wBAAwB,sFAAS;AACjC;AACA;AACA,SAAS,EAAE;;AAEX;AACA;AACA;;AAEA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,CAAC;;;;;;;;;;;;;;ACrID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACU;AACH;AACE;AACL;AACQ;AACsG;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD;AACA;;AAEA;AACA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qDAAqD,uCAAuC;AAC5F;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA,GAAG;;AAEH;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA,iDAAiD;;AAEjD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM;;;AAGN;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,SAAS;AACT;;AAEA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,+CAA+C;;AAE/C;AACA;AACA;;AAEA;AACA,6BAA6B;;AAE7B;AACA;AACA;;AAEA;AACA;;AAEA,6BAA6B,qGAAe;AAC5C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,gEAAgE;;AAEhE;AACA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA;AACA,CAAC,GAAG;AACJ;AACA;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,cAAc;AACzB,WAAW,gCAAgC;;;AAGG;;AAE9C;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,C;;;;;;;;;;;;ACpQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2D;AAC3D;AACA,6BAA6B,kCAAkC;AAC/D;AACA;AACA,4BAA4B;AAC5B;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,aAAa,iCAAiC;AAC9C,aAAa,OAAO;AACpB;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,QAAQ,uFAAuF;AAC/F;AACA,8CAA8C;AAC9C,0CAA0C;AAC1C;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA,4BAA4B,aAAa,MAAM,iBAAiB;AAChE;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA,uDAAuD,sDAAsD;AAC7G;AACA;AACA,2DAA2D,+CAA+C;AAC1G;AACA,QAAQ,sDAAsD;AAC9D;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA,+BAA+B,+BAA+B;AAC9D;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6EAAO;;;;;;;;;;;;;;ACrNT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACZ;AACV;AACnC;AACA;AACA;AACA,sCAAsC;AACtC,YAAY,qCAAqC;AACjD;AACA,4CAA4C;AAC5C,QAAQ,6DAA6D;AACrE;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,yDAAW,EAAE,oDAAM;AACjC;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACnER;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACC;AACsG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACN;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;;;AAGX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,EAAE;;AAET,oCAAoC,yDAAgB,gBAAgB;;AAEpE;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACjGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AACpB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oFAAU;AAC7C;AACA;AACA,8BAA8B,6DAAQ;AACtC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;ACzFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACN;AACV;AACzC;AACA;AACA;AACA,sCAAsC;AACtC,YAAY,qCAAqC;AACjD;AACA,4CAA4C,6DAA6D;AACzG,IAAI,mDAAmD;AACvD;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,6DAAa,EAAE,wDAAQ;AACrC;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACnER;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACN;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,EAAE;;AAET,sCAAsC,yDAAgB,kBAAkB;;AAExE;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACrFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AAChB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oFAAU;AAC7C;AACA;AACA,8BAA8B,+DAAU;AACxC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;ACzFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACG;AACV;AAClD;AACA;AACA;AACA,sCAAsC;AACtC,YAAY,qCAAqC;AACjD;AACA,4CAA4C,sEAAsE;AAClH,IAAI,4DAA4D;AAChE;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,mEAAgB,EAAE,8DAAW;AAC3C;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACnER;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACN;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,+BAA+B;;AAE/B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET,yCAAyC,yDAAgB,qBAAqB;;AAE9E;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACrFR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AACV;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oFAAU;AAC7C;AACA;AACA,8BAA8B,kEAAa;AAC3C;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;ACzFR;AAAe,0yB;;;;;;;;;;;;ACAf;AAAe,8f;;;;;;;;;;;;ACAf;AAAe,oU;;;;;;;;;;;;ACAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACL;AACV;AAC1C;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA,4CAA4C;AAC5C,QAAQ,0EAA0E;AAClF;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,0DAAiB,EAAE,qDAAY;AAC7C;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;AClER;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACG;AACC;AACL;AACA;AACG;AACL;AAC8G;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2D;AACH;AACxD;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA,OAAO;AACP;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA,uBAAuB,oFAAK,gCAAgC;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,oFAAK;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD,eAAe,4CAA4C;AAC3D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD,eAAe,4CAA4C;AAC3D;;AAEA,GAAG;AACH;AACA;AACA,6BAA6B;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,OAAO,EAAE;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6EAAO;;AAE+B;;AAExC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,WAAW,4CAA4C;AACvD,aAAa;;;AAGb;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACtQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACM;AACC;AACJ;AACG;AACwG;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACL;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2DAAiB;AAC7D;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,+BAA+B;AAC5D;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA;;AAEA;AACA,sCAAsC,iCAAiC;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;;AC7LR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AACC;AACtC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oFAAU;AACnD;AACA;AACA,8BAA8B,sFAAS;AACvC;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;AC1FR;;AAEA;AACA,cAAc,mBAAO,CAAC,6VAAoM;AAC1N,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,6VAAoM;AACzN,sBAAsB,mBAAO,CAAC,6VAAoM;AAClO,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACJ;AAC2G;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACL;AACE;AACc;AACX;AACsC;AAC/F;AACA;AACA;AACA;AACA;AACA,iDAAiD,kEAAkE;AACnH;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,gEAAgE;AAClF;;AAEA,oCAAoC,uGAAiB;AACrD,uBAAuB,0DAAiB,EAAE;AAC1C;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,oBAAoB,8EAAsB;AAC1C,SAAS;AACT,oBAAoB,uEAAe;AACnC;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,yCAAyC;AACzC;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,kDAAkD,0EAAe;AACjE;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;AACR;AACA;AACA;AACA;AACA;AACA,wBAAwB,sFAAsF;AAC9G;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qDAAqD;AAChE;AACA,IAAI,kEAAkE;AACtE,WAAW,2CAA2C;AACtD;;AAEA;AACA,aAAa,sDAAsD,MAAM;AACzE;AACA;AACA,wBAAwB,wFAAwF;AAChH;AACA;AACA;AACA;AACA,WAAW,oDAAoD;AAC/D;;AAEA;AACA,qBAAqB,iEAAiE;AACtF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,2CAA2C;AACvD;;AAEA;AACA;AACA,+CAA+C,kEAAkE;AACjH;AACA,YAAY,qDAAqD;AACjE;;AAEA;AACA;AACA;AACA,YAAY,aAAa;AACzB;;;;;;;;;;;;;;;AChOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACF;AACL;AAC8G;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAA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;AACf;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC3EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACG;AACZ;AACqH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC4E;AACxB;AACpD;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAA8C;AACtD;AACA,2DAA2D,kEAAkE;AAC7H,oDAAoD,kEAAkE;AACtH;AACA,2DAA2D,4DAA4D;AACvH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,2BAA2B;AACxG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6EAA6E,2BAA2B;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sBAAsB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA,8BAA8B,qBAAqB;AACnD;AACA,cAAc;AACd;AACA;;AAEA;AACA,6BAA6B;;AAE7B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK,EAAE;;AAEP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,2DAA2D,iBAAiB,MAAM,aAAa;AAC/F;AACA;AACA;AACA,MAAM,iGAAiG;AACvG;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,wCAAwC;AAC7G,4DAA4D,0CAA0C;AACtG;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B;AAC1B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B;AACA;AACA,qDAAqD,0BAA0B;AAC/E;AACA,eAAe,OAAO,2DAA2D,wCAAwC;AACzH;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,qDAAqD,0BAA0B,OAAO,0BAA0B;AAChH;AACA,eAAe,OAAO,mDAAmD,qBAAqB;AAC9F;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE;AACA;AACA,sFAAsF,iBAAiB;AACvG,wEAAwE,qBAAqB;AAC7F;AACA,wEAAwE,iBAAiB;AACzF;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2BAA2B,eAAe;AAC1C;AACA;AACA,YAAY,4DAA4D;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAE6B;AAC9B,iFAAG,UAAU,qFAAe,EAAE;;AAE9B;AACA;AACA;AACA,C;;;;;;;;;;;;ACvQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACG;AACG;AACK;AACf;AACC;AACK;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwE;AACxE;AACA,yDAAyD,kEAAkE;AAC3H;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,4BAA4B;AACzC;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA,4FAA4F,aAAa;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;;;;ACtLD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC8E;AAC9E;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C,UAAU,2CAA2C;AACrD,aAAa,gBAAgB;AAC7B,MAAM,iEAAiE;AACvE;AACA,MAAM,0EAA0E;AAChF;AACA,aAAa,OAAO,YAAY;AAChC,aAAa,8CAA8C;AAC3D;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,0JAAI,CAAC,qKAAe;AAC1B;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,sFAAgB;;;;;;;;;;;;;;ACvGlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0D;AACkC;AACzC;AACE;AACK;AAC4B;AACR;AACf;AACE;AACW;AACxB;AACoB;AACxE;AACA;AACA;AACA;AACA;AACA,qCAAqC,wDAAwD;AAC7F,IAAI,qDAAqD;AACzD;AACA;AACA;AACA,uDAAuD,uCAAuC;AAC9F;AACA;AACA;AACA;AACA,4CAA4C,mDAAmD;AAC/F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uDAAuD,yDAAyD;AAChH;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,sBAAsB,4EAAM;AAC5B;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,gBAAgB;AAChB;;AAEA,uBAAuB,yDAAgB;AACvC;AACA;AACA;AACA,0BAA0B,kCAAkC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,wBAAwB,0DAAiB;AACzC;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,sBAAsB,4EAAM;AAC5B;AACA;AACA,KAAK;AACL;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,gEAAgE;AACpI;AACA,sDAAsD;AACtD;AACA,iCAAiC,kCAAkC;AACnE;AACA;AACA,gBAAgB,mCAAmC;AACnD;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,qCAAqC,yBAAyB;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,qBAAqB,kFAAK;AAC1B;AACA,YAAY,6EAA6E;AACzF;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,oBAAoB,gGAAc;AAClC;AACA,YAAY,sFAAsF;AAClG;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,uBAAuB,mGAAiB;AACxC;AACA;AACA;AACA;AACA,YAAY,qDAAqD;AACjE;AACA;AACA,gBAAgB;AAChB;;AAEA,0BAA0B,4FAAU;AACpC;AACA;AACA;AACA,wBAAwB,kEAAkE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,QAAQ,iEAAiE;AACzE;AACA;AACA,gBAAgB;AAChB;;AAEA,0BAA0B,iEAAuB;AACjD;AACA;AACA;AACA;AACA;AACA,eAAe,2CAA2C;AAC1D;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kCAAkC;AAC3D;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP,QAAQ,oFAAa;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAE4B;AAC7B,kFAAG,SAAS,sFAAe;AAC3B;AACA,eAAe,8EAA8E;AAC7F;AACA;AACA;AACA;AACA,IAAI,gEAAgE;AACpE;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4BAA4B;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAA4D;AACrE;AACA,KAAK,gFAAgF;AACrF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,sCAAsC;AACtC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,sCAAsC;AACtC,qCAAqC;AACrC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,sCAAsC;AACtC,qCAAqC;AACrC,MAAM;AACN;AACA,aAAa,qDAAqD;AAClE;AACA;AACA,YAAY,iBAAiB;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC,iCAAiC;AACjC,MAAM;AACN;AACA;AACA;AACA,8BAA8B,SAAS;AACvC;AACA,iCAAiC;AACjC,iCAAiC;AACjC,MAAM;AACN;AACA,aAAa,sDAAsD;AACnE;AACA;AACA,YAAY,OAAO;AACnB,G;;;;;;;;;;;;AC7bA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACI;AACG;AACG;AACJ;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AAC2E;AACL;AACA;AAClB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA,2BAA2B,kDAAkD;AAC7E;AACA;AACA;AACA,gBAAgB,4CAA4C;AAC5D;;AAEA,gCAAgC,oFAAgB;AAChD;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;;AAEA,4BAA4B,mFAAY;AACxC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,0CAA0C;;AAE1C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,sBAAsB,wDAAwD;AAC9E,qDAAqD;AACrD;AACA,MAAM,8DAA8D;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA,kBAAkB,iEAAiE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,kCAAkC;;AAElC;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,cAAc,0FAA0F;AACxG,wEAAwE,iDAAiD;AACzH,UAAU,iDAAiD;AAC3D;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,qBAAqB,yEAAyE;AAC9F;AACA;AACA;;AAEA;AACA;AACA;AACA,iDAAiD,+DAA+D;AAChH,8CAA8C,kDAAkD;AAChG;AACA;AACA;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAE8B;AAC/B,kFAAG,WAAW,mFAAY,E;;;;;;;;;;;;AC9O1B;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACuC;AACiC;AACxE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,+EAA+E;AAC5G;AACA,WAAW,iCAAiC;AAC5C;;AAEe;AACf,OAAO,4DAAU;AACjB;AACA;AACA,QAAQ,0DAA0D;AAClE;AACA;AACA;AACA,cAAc,mFAAa;AAC3B;;AAEA,2CAA2C;;AAE3C;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;;;AAGA,QAAQ,4DAAU;AAClB;;AAEA;AACA;AACA;AACA;AACA,KAAK;;;AAGL,8CAA8C;AAC9C;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,C;;;;;;;;;;;;AC/DA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,oDAAoD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACe,2EAAY,EAAC;AAC5B;AACA;AACA,cAAc,0DAA0D;AACxE;AACA,wCAAwC,uCAAuC;AAC/E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,YAAY,yCAAyC;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,sFAAsF;AACtF,aAAa,OAAO;AACpB,G;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACwE;AACU;AAClF;AACA;AACA;;AAEA;AACA,0BAA0B,0DAA0D;AACpF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,8DAA8D;AAC5E;AACA;AACA;AACA;AACA,gBAAgB,mFAAa;AAC7B;;AAEA,IAAI,kGAAgB;AACpB;AACA;AACe,8EAAe,EAAC;AAC/B;AACA;AACA;AACA;AACA,IAAI,gIAAgI;AACpI;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,YAAY;AACxB;;AAEA;AACA,gBAAgB,2CAA2C;AAC3D;AACA;AACA,G;;;;;;;;;;;;AC1DA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACL;AACS;AACf;AACkH;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC8B;AAC8C;AACV;AACM;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,kCAAkC;AAClC;AACA,yCAAyC,kDAAkD;AAC3F,yBAAyB,wCAAwC;AACjE,2CAA2C,qEAAqE;AAChH;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,0BAA0B,iFAAU;AACpC;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,cAAc;AACjE;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA,iCAAiC,sFAAe;AAChD;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,gDAAM;;;;;;;;;;;;;;ACtMR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC4E;AACxB;AACpD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA,6CAA6C,mDAAmD;AAChG,oBAAoB,uCAAuC;AAC3D,0EAA0E;AAC1E;AACA;AACA;AACA,iDAAiD,uCAAuC;AACxF,4CAA4C,uCAAuC;AACnF,aAAa,mDAAmD;AAChE;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAE4B;AAC7B,iFAAG,SAAS,qFAAe;AAC3B;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,gCAAgC;AAC7F,IAAI,mDAAmD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,gDAAgD,uDAAuD;AACvG,IAAI,6DAA6D;AACjE;AACA;AACA;AACA,2CAA2C,kEAAkE;AAC7G,mEAAmE,uDAAuD;AAC1H,IAAI,iEAAiE;AACrE,+CAA+C;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,YAAY,MAAM,iBAAiB;AAChD;AACA,8CAA8C,+DAA+D;AAC7G,IAAI,YAAY,MAAM,iBAAiB;AACvC;AACA,2EAA2E,YAAY;AACvF;AACA,IAAI,iBAAiB;AACrB,gCAAgC,qEAAqE;AACrG;AACA;AACA,WAAW,iCAAiC;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;;AAEA;AACA;AACA,IAAI,wDAAwD;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,wFAAwF;AAC5F;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;;AAEA;AACA,mCAAmC,mBAAmB;AACtD;AACA;AACA,mDAAmD,+DAA+D;AAClH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,kEAAkE,mBAAmB,MAAM,YAAY;AACvG;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,aAAa,2CAA2C;AACxD,G;;;;;;;;;;;;ACpMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACsG;AAC5G;AACI;AACC;AACZ;AACU;AACN;AACc;AACf;AACM;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACuG;AACjC;AAClB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C,aAAa,iBAAiB;AAC9B,WAAW,yDAAyD;AACpE;AACA;AACA;AACA;AACA;;AAEA,IAAI,sKAAe;;AAEnB;AACA;AACA,gBAAgB,iCAAiC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,+BAA+B;AAC/C;;AAEA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;;AAEA;;AAEA;AACA;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,6EAA6E,gCAAgC;AAC7G;AACA;AACA,eAAe,gBAAgB,gCAAgC,yDAAyD;AACxH,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,mCAAmC,6EAA6E;AAChH;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gBAAgB,gCAAgC,yDAAyD;AACxH,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wBAAwB,sBAAsB;AAC7D,WAAW,iEAAiE;AAC5E,8CAA8C,mBAAmB;AACjE,eAAe,wBAAwB;AACvC;AACA,iBAAiB,2CAA2C;AAC5D;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qEAAqE;AACrE;AACA;AACA,4DAA4D,sCAAsC;AAClG;AACA;AACA,4BAA4B,6DAA6D;AACzF;AACA;AACA;AACA;AACA;AACA,YAAY,uGAAuG;AACnH;AACA;AACA,mBAAmB,eAAe;AAClC;AACA,oHAAoH;;AAEpH,sBAAsB,8GAAyB;AAC/C;AACA,SAAS;AACT,kCAAkC,oFAAa;AAC/C;AACA,SAAS;AACT;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;;AAEP;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB;AAChB;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA,wBAAwB,8GAAyB;AACjD;AACA,WAAW;AACX;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS;AACpC,2BAA2B,SAAS;AACpC;AACA,0BAA0B,oFAAa;AACvC;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA,aAAa;AACb;;AAEA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,oBAAoB,oKAAc;AAClC;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sCAAsC,oDAAoD;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ,4BAA4B,8EAA8E;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,uEAAuE;AACnG;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,SAAS;AAC5B,mBAAmB,SAAS;AAC5B;AACA,kBAAkB,oFAAa;AAC/B;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAEsC;AACvC,kFAAG,mBAAmB,mFAAY,E;;;;;;;;;;;;AC7flC;AAAe,4V;;;;;;;;;;;;ACAf;AAAe,kT;;;;;;;;;;;;ACAf;AAAe,4Z;;;;;;;;;;;;ACAf;AAAe,+b;;;;;;;;;;;;ACAf;AAAe,kqD;;;;;;;;;;;;ACAf;AAAe,0U;;;;;;;;;;;;ACAf;AAAe,+U;;;;;;;;;;;;ACAf;AAAe,2d;;;;;;;;;;;;ACAf;AAAe,6X;;;;;;;;;;;;ACAf;AAAe,sjB;;;;;;;;;;;;ACAf;AAAe,ud;;;;;;;;;;;;ACAf;AAAe,sQ;;;;;;;;;;;;ACAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACoB;AACpC;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACgE;AACkB;AACM;AACN;AACa;AAC/C;AACQ;AAC8B;AAClC;AACd;AACkC;AACxE;AACA,QAAQ,4DAA4D;AACpE;AACA,YAAY,2CAA2C;AACvD;AACA;AACA,IAAI,wFAAwF;AAC5F;AACA;AACA;AACA;AACA;AACA,oCAAoC,2DAA2D;AAC/F;AACA,IAAI,qCAAqC;AACzC;AACA,iBAAiB,4EAA4E;AAC7F;AACA;AACA;AACA,IAAI,wFAAwF;AAC5F;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA,MAAM,wFAAwF;AAC9F;AACA;AACA,aAAa,mBAAmB;AAChC;AACA,MAAM,wFAAwF;AAC9F,aAAa,6CAA6C;AAC1D;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;;AAEA,QAAQ,4DAAS;AACjB;AACA;;AAEA,+BAA+B,uGAAiB;;AAEhD;;AAEA,mBAAmB,yDAAe,CAAC,4KAAsB,aAAa,6DAAmB;AACzF,IAAI,uGAAY,CAAC,4KAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa,0JAAI,CAAC,qKAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sFAAsF;AACtG;AACA;AACA;AACA;AACA;AACA,QAAQ,2CAA2C;AACnD;AACA;AACA;AACA,QAAQ,qFAAqF;AAC7F,QAAQ,yEAAyE;AACjF,sBAAsB,uEAAuE;AAC7F;AACA,eAAe,mBAAmB;AAClC;AACA;AACA;AACA,gBAAgB,mFAAmF;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wFAAwF;AAC1H;AACA,eAAe,6CAA6C;AAC5D,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,4DAAS;AACzC,SAAS;AACT,eAAe,4DAAS;AACxB;AACA,sBAAsB,oFAAa;AACnC;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,kFAAM;;AAE4B;AACpC,kFAAG,gBAAgB,+FAAY;AAC/B,kFAAG,gBAAgB,kGAAe;;AAElC;AACA,SAAS,4DAAS,wBAAwB,qGAAkB;AAC5D,C;;;;;;;;;;;;ACtPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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8B;;AAE9B;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa;AACb,gEAAgE;AAChE;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,oFAAoF;AAC5F;AACA;AACA,YAAY,+EAA+E;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,UAAU,qGAAqG;AAC/G,UAAU,yGAAyG;AACnH,UAAU,6GAA6G;AACvH,UAAU,mGAAmG;AAC7G,UAAU,uGAAuG;AACjH;AACA;AACA;AACA,UAAU,iGAAiG;AAC3G,UAAU,qGAAqG;AAC/G,UAAU,yGAAyG;AACnH,UAAU,+FAA+F;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV,SAAS;AACT;AACA,sCAAsC;AACtC,YAAY,qEAAqE;AACjF;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,gCAAgC;AAC7E;AACA;AACA,6CAA6C,6DAA6D;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,YAAY,8DAA8D;AAC1E;AACA,eAAe,wDAAwD;AACvE;;AAEA,GAAG;AACH;AACA;AACA;AACA,wDAAwD;;AAExD;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,gCAAgC;AAC/E;AACA;AACA,+CAA+C,sDAAsD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sHAAsH,aAAa;AACnI;AACA,YAAY,8DAA8D;AAC1E;AACA,eAAe,wDAAwD;AACvE;;AAEA,GAAG;AACH;AACA;AACA;AACA,0DAA0D;;AAE1D;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,wDAAwD;AACpH,mCAAmC;AACnC;AACA;AACA;AACA,iDAAiD,+BAA+B;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,qBAAqB,4BAA4B,qDAAqD,wBAAwB;AAC9H;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,uBAAuB,qDAAqD,uBAAuB;AACxH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA,WAAW,gDAAgD,gBAAgB,gDAAgD;AAC3H;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B,eAAe,cAAc;AAC7B,eAAe,4FAA4F;AAC3G;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,4DAA4D;;AAE5D;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe;AACf,mEAAmE;AACnE,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA,qCAAqC,yDAAe,oBAAoB,uDAAa;;AAErF;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,cAAc,EAAE;AAChB;AACA,cAAc,8DAA8D;AAC5E;AACA;AACA,cAAc,4FAA4F;AAC1G;AACA,yEAAyE,gDAAgD;AACzH;AACA,cAAc,uCAAuC;AACrD;AACA;AACA;AACA;AACA,WAAW,wDAAwD;AACnE,aAAa,MAAM;;;AAGc;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACx0BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACwG;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iEAAiE;AACjE;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,+CAA+C,0EAA0E;AACzH;AACA;AACA,aAAa,SAAS;AACtB,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;;;;ACzED;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACU;AACD;AACL;AACG;AAC2G;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2C;AACR;AACmC;AAClB;AACjB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,+CAA+C;AACvG;AACA;AACA;AACA,iFAAiF,6CAA6C;AAC9H;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,QAAQ;AACR,QAAQ,+FAA+F;AACvG,mCAAmC,2EAA2E;AAC9G;AACA;AACA;AACA;AACA,wDAAwD,yDAAyD;AACjH;AACA,MAAM,qFAAqF;AAC3F,MAAM,wFAAwF;AAC9F;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,IAAI,gFAAgF;AACpF;AACA;AACA,IAAI,gFAAgF;AACpF;AACA;AACA;AACA,IAAI,4EAA4E;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA,gBAAgB;AAChB;AACA,yBAAyB,yDAAM;AAC/B;AACA,KAAK;AACL;AACA;AACA,YAAY,qDAAqD;AACjE;AACA,aAAa,kCAAkC;AAC/C,aAAa,sDAAsD;AACnE,aAAa,iDAAiD;AAC9D;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA,+BAA+B,qDAAK;AACpC,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,0CAA0C;AAC9E,QAAQ,gDAAgD;AACxD;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA,yCAAyC;;AAEzC,0EAA0E;;AAE1E;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;;AAEA,0BAA0B,qDAAK;;AAE/B;AACA;AACA;AACA;;AAEA,4CAA4C;AAC5C;AACA;;;AAGA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,iCAAiC;AAC1F;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,4CAA4C,uCAAuC;AACnF;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA,yCAAyC;;AAEzC,sGAAsG;;AAEtG;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;;AAEA,0BAA0B,qDAAK;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+BAA+B,wDAAwD;AACvF;AACA;AACA;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,sDAAsD;AACrE,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;;AAEA,gEAAgE,iCAAiC;AACjG;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;;AAEZ;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,iCAAiC;AACtE;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,gCAAgC;AAC/C,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,yCAAyC;;AAEzC,gDAAgD;AAChD;AACA;;AAEA,2BAA2B,wDAAU;AACrC;AACA;AACA;AACA;AACA;AACA,OAAO,sBAAsB;AAC7B;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qDAAK;AACxB;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF;AACA;AACA,eAAe,OAAO;AACtB,eAAe,gCAAgC;AAC/C,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,gBAAgB,+DAA+D;AAC/E;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,yDAAyD;AAC1E;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B,wDAAU;;AAErC;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;;AAEA;AACA;;AAEA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,+DAA+D;AAC/E;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB,iBAAiB,yDAAyD;AAC1E;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B,wDAAU;;AAErC;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,+DAA+D;AAC/E;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,uDAAuD;AACtE,iBAAiB,yDAAyD;AAC1E;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B,wDAAU;AACrC;;AAEA;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,gDAAgD;AACxG,WAAW,oDAAoD;AAC/D;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,8BAA8B;AAC7C,eAAe,gCAAgC;AAC/C,eAAe,kEAAkE;AACjF;AACA;;AAEA;AACA;AACA;AACA;AACA,wDAAwD,gDAAgD;AACxG,eAAe,oDAAoD;AACnE;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,eAAe,kEAAkE;AACjF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gDAAgD;AACpG,eAAe,oDAAoD;AACnE;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sFAAsF;AACrG;AACA,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,EAAE;AACjB,eAAe,kEAAkE;AACjF;AACA;;AAEA;AACA,kBAAkB,wDAAwD;AAC1E;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,kEAAkE;AACjF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sEAAsE;AACrF;AACA,eAAe,gCAAgC;AAC/C;AACA,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB,eAAe,kEAAkE;AACjF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB,eAAe,kEAAkE;AACjF;AACA;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAEwC;AACzC,kFAAG,qBAAqB,mFAAY,EAAE;AACtC;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,4CAA4C;AACvD,WAAW,uCAAuC;AAClD,aAAa;;AAEb;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,sDAAsD;AACtD,4CAA4C;AAC5C;AACA;AACA;AACA;;AAEA;AACA,QAAQ,qEAAqE;AAC7E;AACA,YAAY,+DAA+D;AAC3E;;AAEA;AACA;AACA,0DAA0D,gFAAgF;AAC1I;AACA,YAAY,yDAAyD;AACrE;;AAEA;AACA,QAAQ,6CAA6C;AACrD;AACA,YAAY,uCAAuC;AACnD;;AAEA;AACA,QAAQ,uDAAuD;AAC/D;AACA,YAAY,iDAAiD;AAC7D,G;;;;;;;;;;;;ACp1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACS;AACL;AAC8F;AAC5F;AACD;AACE;AACG;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA,qDAAqD,qEAAqE;AAC1H;AACA;AACA;AACwC;AACQ;AACJ;AACgB;AACD;AACP;AACd;AACkC;AACxE;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,sKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gEAAgE;AAC/E,yCAAyC;AACzC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc,8DAA8D,cAAc;AACzG;AACA,eAAe,uEAAuE;AACtF,iDAAiD;AACjD;AACA;AACA,eAAe,uCAAuC;AACtD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,yCAAyC,uDAAuD;AAChG,SAAS;AACT;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc,8DAA8D,wBAAwB;AACnH;AACA,eAAe,uBAAuB,0CAA0C,aAAa;AAC7F,iDAAiD,aAAa;AAC9D;AACA;AACA,SAAS,aAAa;AACtB,eAAe,uCAAuC;AACtD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,6DAA6D;AACrE,QAAQ,wFAAwF;AAChG,QAAQ,qFAAqF;AAC7F;AACA;AACA;AACA;AACA;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,gEAAgE;AAC/E;AACA,eAAe,uCAAuC;AACtD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mEAAmE;AAC3E;AACA,mCAAmC,2DAA2D;AAC9F;AACA;AACA;AACA,QAAQ,2DAA2D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,0BAA0B,qBAAqB,EAAE;AACjH;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,QAAQ,wFAAwF;AAChG,qDAAqD,qFAAqF;AAC1I;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,sEAAsE;AACrF;AACA,eAAe,uCAAuC;AACtD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2DAAiB;AACnB;AACA;AACA;AACA;AACA,IAAI,qEAAqE;AACzE;AACA;AACA;AACA,aAAa,SAAS;AACtB;;;AAGsC;AAC/B;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,yEAAyE;;AAEzE,sEAAsE;AACtE;;AAEA;AACA;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uBAAuB,kFAAkF;AACzG,oBAAoB,wFAAwF;AAC5G;AACA;AACA,WAAW,6DAA6D;AACxE,aAAa;AACb;;AAEO;AACP,wBAAwB,+DAAoB;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6EAA6E;AAC7E,SAAS,4EAA4E;AACrF;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,yEAAyE,8DAA8D;AACvI,MAAM,4EAA4E;AAClF;AACA,IAAI,8EAA8E;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,+DAA+D;AAC5E;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,8DAA8D;AAClE,IAAI,mFAAmF;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,WAAW;AACtB,WAAW,WAAW;AACtB;AACA;AACA;AACA,IAAI,uGAAuG;AAC3G,gDAAgD,yCAAyC;AACzF;AACA;AACA;AACA;AACA,IAAI,qEAAqE;AACzE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA,sFAAsF;;AAEtF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,6BAA6B,yDAAc,yBAAyB,iEAAiB;AACrF;AACA;AACA,KAAK;AACL;AACA,mEAAmE;;AAEnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,iGAAiG;AACrG,gDAAgD,yCAAyC;AACzF;AACA;AACA;AACA,IAAI,qEAAqE;AACzE;AACA;AACA;AACA;AACA;AACA,0DAA0D,qDAAqD;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6DAA6D;AACjE;AACA,4FAA4F,qBAAqB;AACjH;AACA;AACA;AACA,wEAAwE,iEAAiE;AACzI;AACA;AACA,WAAW,gDAAgD;AAC3D;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC;AACvC;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA,0CAA0C;;AAE1C;AACA,gFAAgF;;AAEhF;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC,+EAA+E;AAChF;AACA;AACA;AACA;AACA,aAAa,SAAS;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qEAAqE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK;AACL;AACA,WAAW,SAAS;AACpB,mEAAmE,sDAAsD;AACzH;AACA,aAAa,SAAS;;;AAGtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;AACA;AACA,mCAAmC,0DAA0D;AAC7F,aAAa,6GAA6G;AAC1H;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,sCAAsC,0BAA0B;AAChE,WAAW;AACX;AACA,gEAAgE;AAChE,cAAc,qDAAqD;AACnE,UAAU;AACV,sBAAsB,sDAAsD;AAC5E;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,2DAA2D,0BAA0B;AACrF,YAAY;AACZ;AACA,WAAW;AACX;AACA;AACA;AACA,gBAAgB,oFAAa;AAC7B,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;;AAEA,sCAAsC,mBAAmB;AACzD;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;;AAGL;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;;AAEA,0CAA0C,qBAAqB;AAC/D;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC;AACD,IAAI,2DAA2D;AAC/D,QAAQ,uFAAuF;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,6EAA6E;AAClH,cAAc,iEAAiE;AAC/E;AACA,WAAW,sEAAsE;AACjF,aAAa;;;AAGb;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,yDAAc,yBAAyB,iEAAiB;AACvF;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,6BAA6B,yDAAc,yBAAyB,iEAAiB;AACrF;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA,+EAA+E;AAC/E;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,IAAI,4EAA4E;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,8EAA8E;AAC/G,QAAQ,iEAAiE;AACzE;AACA,WAAW,sEAAsE;AACjF,aAAa;;;AAGb;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,uDAAY;AAC3C;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,4DAA4D;;AAE5D,kDAAkD,qDAAU;AAC5D;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,uCAAuC,6EAA6E;AACpH,uCAAuC,kEAAkE;AACzG;AACA;AACA,IAAI,4EAA4E;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sEAAsE;AACjF,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;;;AAGL,oFAAoF;;AAEpF;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,QAAQ,8EAA8E;AACtF;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,gEAAgE;AAC3E,qCAAqC;AACrC;AACA,aAAa,SAAS;;;AAGtB;AACA,WAAW,4DAAS;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,QAAQ,kFAAkF;AAC1F;AACA,WAAW,OAAO;AAClB,WAAW,cAAc,8DAA8D,cAAc;AACrG;AACA,WAAW,uEAAuE;AAClF,6CAA6C;AAC7C;AACA;AACA,WAAW,uCAAuC;AAClD,aAAa,SAAS;;;AAGtB;AACA,WAAW,4DAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,QAAQ,sFAAsF;AAC9F;AACA,WAAW,OAAO;AAClB,WAAW,cAAc,8DAA8D,wBAAwB;AAC/G;AACA,WAAW,uBAAuB,0CAA0C,aAAa;AACzF,6CAA6C,aAAa;AAC1D;AACA;AACA,KAAK,aAAa;AAClB,WAAW,uCAAuC;AAClD,aAAa,SAAS;;;AAGtB;AACA,WAAW,4DAAS;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,mCAAmC;AAC9D;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,QAAQ,4EAA4E;AACpF;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,gEAAgE;AAC3E;AACA,WAAW,uCAAuC;AAClD,aAAa,SAAS;;;AAGtB;AACA,WAAW,4DAAS;AACpB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA,QAAQ,4EAA4E;AACpF;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,sEAAsE;AACjF;AACA,WAAW,uCAAuC;AAClD,aAAa,SAAS;;;AAGtB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,CAAC,0CAA0C,6DAA6D;AACxG;AACA;AACA,WAAW,gEAAgE;AAC3E,WAAW,6BAA6B;AACxC,aAAa,SAAS;;;AAGtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,uDAAuD,6DAA6D;AACrH;AACA,WAAW,uDAAuD;AAClE,WAAW,iDAAiD;AAC5D,WAAW,6BAA6B;AACxC,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mCAAmC;;AAEnC;AACA;AACA,GAAG;AACH;AACA,kDAAkD,+DAAoB;AACtE;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,oCAAoC,qBAAqB;AACzD;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,OAAO;;;AAGlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU,6JAAO;AACpB,QAAQ;AACR;AACA;AACA;AACA;AACA,KAAK,KAAK;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;;AAGD;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kFAAkF;AACtF;AACA;AACA,uBAAuB,6EAA6E;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,cAAc,sBAAsB;AACpC,cAAc,6EAA6E;AAC3F;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;AACrB,OAAO,6EAA6E;AACpF,IAAI,6EAA6E;AACjF;AACA;AACA,cAAc,OAAO;AACrB,OAAO,6EAA6E;AACpF;AACA;AACA,G;;;;;;;;;;;;ACz/CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACU;AACH;AACH;AACP;AACA;AACS;AACG;AACP;AACgH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC8C;AACN;AACI;AACN;AACF;AACkC;AAClB;AACpD;AACA,iDAAiD,oDAAoD;AACrG,IAAI,0CAA0C;AAC9C;AACA;AACA,IAAI,kGAAkG;AACtG;AACA;AACA,iCAAiC,gEAAgE;AACjG;AACA;AACA,IAAI,iGAAiG;AACrG,IAAI,iGAAiG;AACrG;AACA,8BAA8B;AAC9B,QAAQ,6EAA6E;AACrF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,wDAAwD,uDAAuD;AAC/G;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,yCAAyC;;AAEzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA,KAAK,EAAE;;AAEP;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,2BAA2B,wDAAa;AACxC,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,UAAU,2EAA2E;AACrF,MAAM,yEAAyE;AAC/E;AACA;AACA,aAAa,oCAAoC;AACjD,aAAa,mCAAmC;AAChD;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,sDAAsD;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,+BAA+B;AAC5D;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,sBAAsB,wDAAwD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sDAAsD;AACjG;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA,eAAe,mCAAmC;AAClD,iBAAiB,8CAA8C;AAC/D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB,6CAA6C;AAC9D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C,iBAAiB,gCAAgC;AACjD;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,qDAAU;AAC3B;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,+BAA+B;AAChD;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,oDAAS;AAC1B;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,8CAA8C;AAC/D;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC,iCAAiC;AACnE;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,OAAO;AACP;;;AAGA;AACA;AACA,OAAO;;;AAGP;;AAEA,qBAAqB,gBAAgB;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAyD;AACtE;AACA,sBAAsB,6CAA6C;AACnE,QAAQ,6CAA6C;AACrD,sBAAsB,wDAAwD;AAC9E,6BAA6B,iDAAiD;AAC9E,iCAAiC,iDAAiD;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,OAAO;AACtB,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;AACA,mBAAmB;;AAEnB;AACA;AACA,yBAAyB;;AAEzB;AACA,mBAAmB,uDAAY;AAC/B,OAAO;AACP;;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA,oDAAoD,uDAAY;AAChE,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C,uCAAuC;AACvC;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC,mDAAQ;AACxC,mBAAmB,uDAAY;AAC/B,OAAO,+BAA+B,mDAAQ;AAC9C,mBAAmB,uDAAY;AAC/B,OAAO;;;AAGP;AACA;AACA;AACA;AACA,oDAAoD,2DAA2D;AAC/G,kBAAkB,yDAAyD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,4DAA4D,yDAAyD;AACrH,eAAe,uCAAuC;AACtD;;AAEA;AACA,mEAAmE,uEAAuE;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,6DAA6D,2DAA2D;AACxH,eAAe,uCAAuC;AACtD;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAE4B;AAC7B,kFAAG,SAAS,mFAAY,E;;;;;;;;;;;;AClyBxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACM;AACG;AACZ;AACqH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2C;AAC3C;AACA,4CAA4C,gDAAgD;AAC5F;AACA;AACA;AACA;AACA,iCAAiC,qEAAqE;AACtG,aAAa,yDAAyD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,IAAI,8EAA8E;AAClF;AACA,IAAI,gFAAgF;AACpF,QAAQ,2EAA2E;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,+DAA+D;AAC/D,kEAAkE;AAClE,yDAAyD;AACzD,iDAAiD;AACjD;AACA,aAAa,sGAAsG;AACnH;AACA,aAAa,OAAO;AACpB;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA,0BAA0B,wDAAS;AACnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D,qEAAqE;AACrE,wEAAwE;AACxE,+DAA+D;AAC/D,uDAAuD;AACvD;AACA,eAAe,sGAAsG;AACrH;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,0BAA0B,wDAAS;AACnC;AACA;;AAEA;AACA;;AAE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CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG,kBAAkB;AAC5B;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,yCAAyC,iBAAiB;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,wFAAwF;AACrG;AACA,aAAa,kCAAkC;AAC/C,aAAa,mDAAmD;AAChE,eAAe,sDAAsD;AACrE;AACA,MAAM,uFAAuF;AAC7F;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA,yCAAyC;AACzC;;AAEA,6DAA6D;AAC7D;;AAEA,yCAAyC;;AAEzC,sCAAsC,wDAAc,sBAAsB;;AAE1E,oCAAoC;;AAEpC;AACA,qDAAqD;;;AAGrD,6DAA6D;;AAE7D;AACA;AACA,oCAAoC;;;AAGpC,0FAA0F,yBAAyB;AACnH;AACA;AACA,SAAS;;;AAGT;AACA,OAAO;;;AAGP,+BAA+B;;AAE/B,+BAA+B;;;AAG/B;AACA,sCAAsC;;AAEtC;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;;;AAGP,0DAA0D,qDAAU;AACpE;AACA;AACA;AACA,YAAY,kDAAkD;AAC9D;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B,qDAAU;AACrC;;AAEA,0EAA0E,2BAA2B;AACrG;;AAEA;;AAEA,yCAAyC,qDAAU;AACnD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,yFAAyF;;AAEzF;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,sBAAsB,MAAM,4BAA4B;AACnG;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,oCAAoC;AACnD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;AACA,mBAAmB,yCAAyC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA,eAAe,6BAA6B;AAC5C,eAAe,sCAAsC;AACrD;AACA,eAAe,gCAAgC;AAC/C;AACA,eAAe,8DAA8D;AAC7E;;AAEA;AACA,mBAAmB,mCAAmC;AACtD;AACA;AACA;AACA;;AA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AuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;AACsC;AACE;AACY;AACd;AACU;AAChD;AACA,aAAa,mCAAmC,KAAK,sCAAsC;AAC3F,IAAI,iEAAiE;AACrE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,sKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAA+C;AAC1D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,yDAAyD,kDAAkD;AAC3G;AACA,UAAU;AACV;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,0CAA0C;AACzD;AACA,eAAe,oDAAoD;AACnE;AACA,eAAe,uCAAuC;AACtD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,oDAAoD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gFAAgF;AACxF;AACA,6EAA6E,+CAA+C;AAC5H;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,0CAA0C;AACzD,eAAe,cAAc;AAC7B;AACA;AACA,eAAe,uCAAuC;AACtD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8EAA8E;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,+CAA+C;AAC5H;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA,SAAS;AACT;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA;AACA,eAAe,uCAAuC;AACtD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qEAAqE;AAC7E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA,SAAS;AACT;AACA,YAAY,4EAA4E;AACxF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,0CAA0C;AACzD,eAAe,gBAAgB;AAC/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Ae,kFAAkF;AACjG;AACA,eAAe,uDAAuD;AACtE;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA,uCAAuC,6DAA6D;AACpG,+DAA+D,yCAAyC;AACxG;AACA;AACA;;;AAGqC;;AAErC;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sDAAsD;AACzF;AACA;AACA;AACA,wBAAwB,aAAa;AACrC;AACA;AACA;AACA,wBAAwB,uDAAuD;AAC/E,wBAAwB;AACxB;AACA,aAAa,6DAA6D;AAC1E;AACA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,sBAAsB;AACnC,aAAa,sBAAsB;AACnC,aAAa,sBAAsB;AACnC;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6CAA6C;AAC3E;AACA;AACA;AACA,2BAA2B,aAAa;AACxC;AACA;AACA;AACA,2BAA2B,uDAAuD;AAClF,2BAA2B;AAC3B;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC,iBAAiB,aAAa;AAC9B;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,0BAA0B,sDAAsD;AAChF;AACA;AACA;AACA,8BAA8B,aAAa;AAC3C;AACA;AACA;AACA,8BAA8B,uDAAuD;AACrF,8BAA8B;AAC9B;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,sDAAsD;AAC/F;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA;AACA,6BAA6B,uDAAuD;AACpF,6BAA6B;AAC7B;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAA6D;AAC5E;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sBAAsB;AACrC;;AAEA,GAAG;AACH;AACA;AACA,kBAAkB,0DAAO;AACzB;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA,gBAAgB,wFAAwF;AACxG;AACA;AACA;AACA,kCAAkC,mCAAmC;AACrE;AACA;AACA;AACA,kCAAkC,+CAA+C;AACjF;AACA;AACA;AACA,sBAAsB,oFAAa;AACnC;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sBAAsB;AACrC,iBAAiB,aAAa;AAC9B;AACA;;AAEA,GAAG;AACH;AACA;AACA,kBAAkB,0DAAO;AACzB;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA,wEAAwE;;AAExE,mDAAmD,wKAAkB;;AAErE;AACA;AACA;AACA,WAAW;AACX,+CAA+C;;;AAG/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sBAAsB;AACrC;;AAEA,GAAG;AACH;AACA;AACA,kBAAkB,0DAAO;AACzB;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA,wEAAwE;;AAExE,0CAA0C,wKAAkB;AAC5D,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sBAAsB;AACrC;;AAEA,GAAG;AACH;AACA;AACA,kBAAkB,0DAAO;AACzB;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA,wEAAwE;;AAExE,yCAAyC,wKAAkB;AAC3D,WAAW;AACX;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,G;;;;;;;;;;;;ACruBD;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;AACnB;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;;;;AC3CD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACgD;AACA;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,6BAA6B,0DAAY;AACzC;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,2BAA2B,wDAAe;AAC1C;AACA;AACA,0BAA0B;AAC1B,2BAA2B;AAC3B;AACA,aAAa,qDAAqD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CA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,6FAA6F,kBAAkB;AAC/G,+FAA+F,kBAAkB;AACjH;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,iGAAiG,kBAAkB;AACnH,mGAAmG,kBAAkB;AACrH;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,kBAAkB,+CAAK;;AAEvB;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA,kCAAkC,iCAAiC;AACnE;;AAEA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,wBAAwB,+CAAK;;AAE7B;AACA;;AAEA;AACA,kCAAkC,iCAAiC;AACnE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA,aAAa;;;AAGb;AACA;AACA,aAAa;;;AAGb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;;;AAGb;;AAEA,qFAAqF;;;AAGrF;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qCAAqC;AACpD;AACA,eAAe,qCAAqC;AACpD,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;;AAEA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,4HAA4H;AAC5H;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;;;AAGP,uBAAuB;;AAEvB;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,WAAW,EAAE;;;AAGb,qEAAqE;;;AAGrE,4EAA4E;;;AAG5E;;AAEA,sBAAsB;;AAEtB,oBAAoB;AACpB;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,+CAAK,CAAC,kDAAQ,0BAA0B,kDAAQ;AAC9E,iBAAiB;AACjB;AACA,8BAA8B,+CAAK,CAAC,kDAAQ,0BAA0B,kDAAQ;AAC9E,iBAAiB;AACjB;;;AAGA,4CAA4C,wKAAkB;AAC9D;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,SAAS;;;AAGT;AACA,OAAO,EAAE;;AAET,qBAAqB,oBAAoB;AACzC;AACA,kCAAkC;;AAElC,qMAAqM;;AAErM,oRAAoR;;AAEpR;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP,0CAA0C,sBAAsB;AAChE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B;;AAE5B;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA,iCAAiC;;;AAGjC,uDAAuD;;;AAGvD,8CAA8C;;;AAG9C,+BAA+B;AAC/B;;AAEA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,eAAe;AAC9B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,wBAAwB,QAAQ,wBAAwB;AAC3G,8CAA8C,0CAA0C;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,kBAAkB,kDAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,kBAAkB,kDAAQ;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,IAAI;AACnB,eAAe,IAAI;AACnB,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;AACA,qBAAqB;;AAErB,6CAA6C;;AAE7C;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE,8BAA8B,oKAAc;AAC5C;AACA;;AAEA;AACA,gFAAgF;;AAEhF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;;;AAGX;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE,8BAA8B,oKAAc;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,+BAA+B,mCAAmC;AAClE;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA,sBAAsB,+CAAK,CAAC,kDAAQ,4BAA4B,kDAAQ;;AAExE;AACA;AACA,OAAO;AACP;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;AACJ;;;AAG6B;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;;AAEA;AACA,uBAAuB,uBAAuB;AAC9C;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;A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CA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK,EAAE;;AAEP;AACA;AACA,KAAK,EAAE;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB,iBAAiB,4CAA4C;AAC7D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sCAAsC;AACzD,mBAAmB,OAAO;AAC1B;AACA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA,qBAAqB,qDAAW;AAChC;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,iDAAiD;AAClE;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,iBAAiB;AAC/E;AACA,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sEAAsE;AACzF;AACA;AACA;AACA,yDAAyD,+CAA+C;AACxG;AACA,QAAQ,4CAA4C;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,wDAAK,OAAO;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD;;AAEA,GAAG;AACH;AACA;AACA;AACA,qCAAqC;;;AAGrC;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ;AACR,WAAW,8DAA8D;AACzE;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kBAAkB,SAAS,gCAAgC;AACnE;AACA;AACA,iBAAiB,4CAA4C;AAC7D;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,sDAAsD,oCAAoC;AAC1F;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,gCAAgC;;AAEhC;AACA,mEAAmE;;AAEnE;AACA;AACA;AACA,+BAA+B,4CAA4C;AAC3E,YAAY,sCAAsC;AAClD;AACA;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,yBAAyB,4EAA4E;AACrG,QAAQ,8DAA8D;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,0EAA0E;AAClF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,gCAAgC;AAC/C;;AAEA;AACA,wCAAwC,oBAAoB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,gEAAgE;AACxE;AACA;AACA,eAAe,gCAAgC;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAE8B;AAC/B,kFAAG,WAAW,mFAAY,EAAE;AAC5B;;AAEA;AACA;;AAEA;AACA;AACA;AACA,YAAY,oGAAqB,mBAAmB,qGAAsB;AAC1E;;AAEA;AACA,C;;;;;;;;;;;;AC1iBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACM;AACH;AACQ;AACf;AACM;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkC;AACF;AACN;AACU;AAC8B;AAClE;AACA;AACA;AACA;AACA,6BAA6B,4DAA4D;AACzF,uBAAuB,4DAA4D;AACnF,IAAI,+CAA+C;AACnD;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,+DAA+D;AAC7E;AACA;AACA,aAAa,uEAAuE;AACpF;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA,yEAAyE;AACzE,wCAAwC;AACxC;AACA;AACA;AACA,gBAAgB,4CAA4C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA,yBAAyB,kDAAQ;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC,+CAA+C;AAC/C;AACA,8CAA8C;AAC9C,gCAAgC;AAChC,6BAA6B;AAC7B;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,mCAAmC;AACpD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,YAAY;AAC7B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAA4D;AACpE;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,YAAY;AAC7B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC,uCAAuC;AACvC;AACA,eAAe,eAAe;AAC9B,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,sBAAsB;;AAEtB;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA,oCAAoC;AACpC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC,mCAAmC;AACnC;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,sDAAsD;AACvE;;AAEA,GAAG;AACH;;AAEA;AACA,QAAQ,4BAA4B;AACpC;AACA;AACA,eAAe,uEAAuE;AACtF;AACA;AACA;AACA;AACA;AACA,8DAA8D,kDAAkD;AAChH;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,uEAAuE;AACtF;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,kDAAkD;AACnE;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,eAAe,4DAA4D;AAC3E;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA,0BAA0B,iDAAO;AACjC,WAAW;AACX;AACA,0BAA0B,8CAAI;AAC9B;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;AACJ;AACA,WAAW;AACX,aAAa;;;AAG0B;;AAEvC;AACA;AACA;AACA,gBAAgB,8CAAI;AACpB;;AAEA,OAAO,yFAAU;AACjB;AACA,GAAG;;;AAGH;AACA;AACA,iBAAiB,8CAAI;AACrB;;AAEA,wBAAwB,mDAAS;AACjC,iBAAiB,8CAAI;AACrB;;AAEA;AACA,GAAG;AACH,C;;;;;;;;;;;;AChdA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACO;AACG;AACC;AACqG;AACxG;AACJ;AACH;AACJ;AACS;AACG;AACZ;AACmI;AACpC;AACU;AACkC;AACtB;AACtG;AACL;AAC2G;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACoD;AACkB;AAClC;AACA;AACV;AACU;AACoB;AACU;AACM;AACpB;AACpD;AACA;AACA;AACA,IAAI,2EAA2E;AAC/E;AACA;AACA,wDAAwD,wCAAwC;AAChG,eAAe,wDAAwD;AACvE;AACA,qEAAqE;AACrE;AACA;AACA,wBAAwB,8CAA8C;AACtE;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,wBAAwB;AACxB,iCAAiC;AACjC,oBAAoB,8EAA8E;AAClG;AACA,QAAQ,8DAA8D;AACtE;AACA;AACA;;AAEA;AACA;AACA,gDAAgD,4CAA4C;AAC5F;AACA,aAAa,sCAAsC;AACnD;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,kDAAkD;AACvF,QAAQ,+DAA+D;AACvE;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,8CAA8C;AAClF,QAAQ,6DAA6D;AACrE;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sCAAsC,kDAAkD;AACxF;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,gEAAgE;AACtF;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,4CAA4C;AAC5C,0CAA0C;AAC1C,kDAAkD;AAClD;AACA,yCAAyC;AACzC,kCAAkC;AAClC,+BAA+B;AAC/B;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,cAAc,oEAAoE;AAClF,uCAAuC,0DAA0D;AACjG;AACA;AACA,QAAQ,mFAAmF;AAC3F;AACA;AACA;AACA,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,6BAA6B,+CAA+C;AAC5E;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAA0D;AAClE,uCAAuC,qDAAqD;AAC5F;AACA;AACA;AACA,eAAe,yCAAyC;AACxD,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,8DAA8D;AACrG;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA,uCAAuC,iEAAiE;AACxG;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,qBAAqB,6DAA6D;AAClF;AACA;AACA,QAAQ,0CAA0C;AAClD;AACA;AACA;AACA;AACA,eAAe,OAAO,gCAAgC,wBAAwB;AAC9E;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,6DAA6D,kDAAkD;AAC/G,QAAQ,8CAA8C;AACtD;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sFAAsF;AAC9F;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,iBAAiB,cAAc;AAC/B;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D,iEAAiE;AAC5H;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,4CAA4C,sDAAsD;AAClG;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAEuC;AACxC,kFAAG,oBAAoB,mFAAY;AACnC;AACA;AACA;AACA;AACA,WAAW,QAAQ,0BAA0B,8CAA8C;AAC3F;AACA,QAAQ,8DAA8D;AACtE,qCAAqC,+CAA+C;AACpF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ,0BAA0B,8CAA8C;AAC3F;AACA,QAAQ,8DAA8D;AACtE,sCAAsC,+CAA+C;AACrF;AACA;AACA;AACA,WAAW,eAAe;AAC1B;AACA,0CAA0C,8DAA8D;AACxG;AACA,gEAAgE;AAChE;AACA;AACA,wBAAwB,8CAA8C;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA,gDAAgD,4CAA4C;AAC5F,aAAa,sCAAsC;AACnD;AACA;;AAEA,IAAI,sKAAe;;AAEnB,8BAA8B;AAC9B;AACA;AACA,cAAc;;AAEd,wBAAwB,iFAAU;AAClC;AACA,KAAK,EAAE;AACP;AACA;AACA,gBAAgB;;AAEhB,6BAA6B;AAC7B;AACA;AACA,gBAAgB;;AAEhB,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;;AAEpB,yCAAyC;AACzC;AACA,gBAAgB,MAAM;;AAEtB,uCAAuC;AACvC;AACA,gBAAgB,MAAM;;AAEtB,mCAAmC;AACnC;AACA;AACA;AACA;AACA,cAAc;;AAEd,iDAAiD;;AAEjD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA,KAAK,EAAE;;;AAGP;AACA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,uBAAuB,gCAAgC;AACvD;AACA,sBAAsB,oFAAa,2GAA2G,6KAAsB;AACpK;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK,EAAE;;;AAGP;AACA;AACA,KAAK,EAAE;;;AAGP;AACA;AACA,KAAK;;AAEL;AACA;;AAEA,EAAE,mKAAY;AACd;AACA;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4CAA4C,2JAAI,CAAC,sKAAe;;AAEhE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;AACH;AACA;AACA,aAAa,2JAAI,CAAC,sKAAe;AACjC;AACA,GAAG;AACH;AACA;AACA,aAAa,2JAAI,CAAC,sKAAe;AACjC;AACA,GAAG;AACH;AACA;AACA,MAAM,2JAAI,CAAC,sKAAe;;AAE1B;AACA;AACA,GAAG;AACH;AACA;AACA,MAAM,2JAAI,CAAC,sKAAe;;AAE1B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA;AACA,wBAAwB,kFAAG,GAAG;AAC9B;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAkC,iEAAiE;AACnG;AACA;AACA,mBAAmB,OAAO;AAC1B,YAAY,+EAA+E;AAC3F;AACA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA,kDAAkD;;;AAGlD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,gDAAgD;;;AAGhD;AACA;AACA;AACA,KAAK;AACL,uBAAuB;AACvB;AACA;AACA;AACA,eAAe,gCAAgC;;AAE/C,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,sBAAsB,mDAAS;AAC/B;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,0CAA0C,sBAAsB;AAChE;;AAEA;AACA;AACA;AACA;;AAEA,+DAA+D,0BAA0B;AACzF;;AAEA;AACA;AACA;AACA;AACA,KAAK,uEAAuE,2DAA2D;AACvI;AACA;AACA,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA,0BAA0B,oFAAK;AAC/B,0BAA0B,oFAAK;;AAE/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D,+BAA+B,oKAAc;AAC7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA,2CAA2C;;;AAG3C,uBAAuB;AACvB;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;;AAEA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;AACA,iBAAiB,QAAQ;;AAEzB,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,qBAAqB,2JAAI,CAAC,sKAAe,iEAAiE;;;AAG1G;AACA;AACA;;AAEA,kCAAkC;;;AAGlC;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP,iDAAiD;;;AAGjD,WAAW,2JAAI,CAAC,sKAAe;AAC/B;AACA;;AAEA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,eAAe;AAC9B,iBAAiB,aAAa;;AAE9B,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA,WAAW;;;AAGX;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,iBAAiB;;AAEjB,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,iBAAiB,aAAa;;AAE9B,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yCAAyC;;AAEzC;AACA;;AAEA;AACA,+BAA+B,mCAAmC;AAClE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,mFAAmF;;AAEnF;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,SAAS;AACT;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,sCAAsC;;AAErD,GAAG;AACH;AACA;AACA;AACA;AACA,wDAAwD;;AAExD,0FAA0F;AAC1F;;;AAGA;;AAEA;;AAEA,yBAAyB;;AAEzB;AACA;AACA,0DAA0D;;;AAG1D;AACA,OAAO;;AAEP;AACA,GAAG;AACH;AACA;AACA;AACA,4EAA4E,2JAAI,CAAC,sKAAe;AAChG;AACA,GAAG;AACH;AACA;AACA,aAAa,2JAAI,CAAC,sKAAe;AACjC;AACA,GAAG;AACH;AACA;AACA,aAAa,2JAAI,CAAC,sKAAe;AACjC;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL,QAAQ,sFAAsF;AAC9F;AACA;AACA,cAAc;;AAEd,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,cAAc;;AAEd,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,mDAAS,EAAE,yBAAyB,wEAAwE;AAC9G;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,aAAa;;;AAGb;AACA,sBAAsB,mDAAS,oBAAoB,8CAAI;AACvD;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,gCAAgC;AAC3C,WAAW,gCAAgC;;;AAG3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;;AAEA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;;AAEA,yBAAyB,mCAAmC;AAC5D;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;ACl/CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACF;AACL;AACW;AACf;AACM;AACC;AACC;AAC0G;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0B;AACQ;AACR;AACU;AAC8B;AAClE;AACA,2BAA2B,yCAAyC,aAAa,oDAAoD;AACrI,IAAI,kEAAkE;AACtE;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA,cAAc,sDAAsD;AACpE;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO,oCAAoC,+BAA+B;AACvF,aAAa,uEAAuE;AACpF;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA,0BAA0B,kDAAQ;;AAElC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B;AAC7B,sCAAsC;AACtC,mCAAmC;AACnC;AACA,qCAAqC;AACrC,0CAA0C;AAC1C;AACA;AACA,QAAQ,oDAAoD;AAC5D;AACA,8BAA8B;AAC9B,yCAAyC;AACzC,2BAA2B;AAC3B;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,+DAA+D,2JAAI,CAAC,sKAAe;AACnF,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,8BAA8B;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAA4D;AACpE;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+EAA+E;AACzG;AACA;AACA;AACA;AACA,uCAAuC;AACvC,sCAAsC;AACtC,sCAAsC;AACtC,sCAAsC;AACtC,sCAAsC;AACtC,sCAAsC;AACtC;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,oCAAoC;AACpC,uCAAuC;AACvC;AACA,eAAe,eAAe;AAC9B,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,sBAAsB;;AAEtB;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,2JAAI,CAAC,sKAAe;;AAErC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ,+DAA+D;AACvE;AACA;AACA;AACA,eAAe,uEAAuE;AACtF;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,8DAA8D,kDAAkD;AAChH;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,uEAAuE;AACtF;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,kDAAkD;AAC1D;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,oCAAoC;AACrD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,eAAe,4DAA4D;AAC3E;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,4BAA4B,8CAAI;AAChC;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,8CAAI,EAAE;AACR;AACA,WAAW;AACX,aAAa;;;AAGiB;;AAE9B;AACA;AACA;AACA,gBAAgB,8CAAI;AACpB;;AAEA,OAAO,yFAAU;AACjB;AACA,GAAG;;;AAGH;AACA;AACA,iBAAiB,8CAAI;AACrB;;AAEA,wBAAwB,mDAAS;AACjC,iBAAiB,8CAAI;AACrB;;AAEA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACleA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACJ;AACC;AACZ;AACS;AACG;AACZ;AACqH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mEAAmE,qDAAqD;AACxH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB,0DAA0D;AAC1E;AACA;AACA;AACA,mCAAmC,kEAAkE;AACrG,QAAQ,kEAAkE;AAC1E;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,wDAAwD;AACxE;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,kDAAkD;AAC/D;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB,6DAA6D;AAC9E;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,uDAAuD;AACxE;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,eAAe,kDAAkD;AACjE;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,iBAAiB,4DAA4D;AAC7E;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;;;;ACnKD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACoB;AACpC;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkC;AACoC;AAClB;AACoB;AACxE;AACA,gCAAgC;AAChC,2BAA2B;AAC3B;AACA;AACA,0BAA0B,4CAA4C;AACtE,IAAI,kDAAkD;AACtD,OAAO,4DAA4D;AACnE;AACA;AACA;AACA,QAAQ,2DAA2D;AACnE;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA,aAAa,4CAA4C;AACzD,aAAa,eAAe;AAC5B,aAAa,gDAAgD;AAC7D;AACA;AACA;;AAEA;;AAEA,IAAI,qKAAe;;AAEnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oFAAa;AAC7B;;AAEA,0BAA0B,4KAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,4CAA4C;AAC5C,0CAA0C;AAC1C,gDAAgD;AAChD;AACA,2CAA2C;AAC3C,+CAA+C;AAC/C;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,uEAAuE,0JAAI,CAAC,qKAAe;AAC3F;AACA;AACA,kBAAkB,8DAA8D;AAChF;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,iDAAQ;AACzB;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,gDAAgD;AAC/D,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,gDAAgD;AAC/D,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,gDAAgD;AAC/D,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,eAAe,gDAAgD;AAC/D,iBAAiB;AACjB;;AAEA;AACA,wEAAwE,4CAA4C;AACpH;AACA;AACA,eAAe,sCAAsC;AACrD;;AAEA,GAAG;;AAEH;AACA,CAAC,CAAC,iDAAQ,EAAE,sCAAsC,qDAAqD;AACvG,oBAAoB,sDAAsD;AAC1E;AACA;;;AAGmC;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA,WAAW,kDAAkD;;;AAG7D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kFAAG,eAAe,mFAAY,E;;;;;;;;;;;;ACtN9B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACoB;AACpC;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC4B;AAC0C;AAClB;AACpD;AACA,6BAA6B;AAC7B,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,4DAA4D;AACxF;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA,0BAA0B,4KAAsB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,sCAAsC;AACtC,oCAAoC;AACpC,0CAA0C;AAC1C;AACA,qCAAqC;AACrC,4CAA4C;AAC5C;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iEAAiE,0JAAI,CAAC,qKAAe;AACrF;AACA;AACA,kBAAkB,qDAAqD;AACvE;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,8CAAK;AACtB;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA;AACA;AACA,QAAQ,qDAAqD;AAC7D;AACA;AACA,eAAe,gCAAgC;AAC/C;AACA,eAAe,OAAO;AACtB,eAAe,2CAA2C;AAC1D;AACA;;AAEA;AACA,sFAAsF;AACtF;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C;AACA,eAAe,OAAO;AACtB,eAAe,KAAK;AACpB,mCAAmC,iEAAiE;AACpG;;AAEA,GAAG;;AAEH;AACA,CAAC,CAAC,8CAAK,EAAE,mCAAmC;AAC5C,2BAA2B,gDAAgD;AAC3E;AACA;;;AAGgC;;AAEhC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA,WAAW,kDAAkD;;;AAG7D;AACA;AACA;;AAEA,eAAe,8CAAK;;AAEpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA,WAAW,gCAAgC;AAC3C,WAAW,kDAAkD;AAC7D,aAAa;;;AAGb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kFAAG,YAAY,mFAAY,E;;;;;;;;;;;;AC9P3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACM;AACE;AACX;AACM;AACQ;AACf;AACM;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACoC;AACkC;AACE;AACpB;AACpD;AACA,0BAA0B,0DAA0D;AACpF,gBAAgB,oEAAoE;AACpF,IAAI,yEAAyE;AAC7E;AACA,2CAA2C,uDAAuD;AAClG,IAAI,kDAAkD,KAAK,qDAAqD;AAChH;AACA;AACA;AACA,2DAA2D,6DAA6D;AACxH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA,eAAe,sBAAsB;AACrC;AACA;AACA,gBAAgB,IAAI;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,sBAAsB;AAC9C;AACA,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA,eAAe,OAAO;AACtB,iBAAiB,iDAAiD;AAClE;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD,QAAQ,4CAA4C;AACpD;AACA,uEAAuE,qBAAqB;AAC5F,kCAAkC,yEAAyE;AAC3G,wDAAwD;AACxD;AACA;AACA;AACA;AACA,eAAe,mDAAmD;AAClE,eAAe,gCAAgC;AAC/C,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,iBAAiB,4CAA4C;AAC7D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,mDAAS;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,sBAAsB,mDAAS;AAC/B;;AAEA;;AAEA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,yEAAyE,sBAAsB;AAChH,wDAAwD;AACxD,kBAAkB;AAClB;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA,oFAAoF,qDAAqD;AACzI;AACA,eAAe,sCAAsC;AACrD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,qFAAqF,4CAA4C;AACjI;AACA,eAAe,gCAAgC;AAC/C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,+DAA+D;AAC/D;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,eAAe,4CAA4C;AAC3D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4CAA4C;AAC3D,eAAe,qCAAqC;AACpD;AACA,eAAe,qCAAqC;AACpD;AACA;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAEsC;AACvC,kFAAG,mBAAmB,mFAAY;AAClC;AACA;AACA,2CAA2C,0CAA0C;AACrF;AACA,IAAI,wEAAwE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,yDAAyD;AAC7D;AACA;AACA;AACA;AACA,IAAI,yEAAyE;AAC7E,2DAA2D;AAC3D;AACA;AACA;AACA,sFAAsF;AACtF,WAAW,4DAA4D;AACvE;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA,mDAAmD;AACnD,mBAAmB,qDAAqD;AACxE;AACA;AACA,8CAA8C,8BAA8B;AAC5E;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,QAAQ,wCAAwC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,qFAAqF;AACrH,IAAI,wFAAwF;AAC5F,QAAQ,mEAAmE;AAC3E,QAAQ,2EAA2E;AACnF,0DAA0D,+DAA+D;AACzH,iCAAiC,+EAA+E;AAChH;AACA,yDAAyD,yCAAyC;AAClG;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,wCAAwC;AACrD,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,UAAU,uCAAuC;AACjD,UAAU,kDAAkD;AAC5D;AACA,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,4CAA4C;AAC1F,QAAQ,wDAAwD;AAChE,sGAAsG;AACtG,uCAAuC,6EAA6E;AACpH;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,oCAAoC;AACpC;AACA,oCAAoC;AACpC,yCAAyC;AACzC;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAwC;AACvD,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,uBAAuB,sCAAsC,+BAA+B,4CAA4C;AACxI,4BAA4B,8FAA8F;AAC1H;AACA,oCAAoC,6EAA6E;AACjH;AACA,QAAQ,uGAAuG;AAC/G;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB;;AAEA;AACA,iCAAiC,4CAA4C,iBAAiB,sCAAsC;AACpI,4BAA4B,kGAAkG;AAC9H;AACA,oCAAoC,6EAA6E;AACjH;AACA,QAAQ,uGAAuG;AAC/G;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,kFAAG,SAAS,mFAAY;AACxB;AACA,iBAAiB,qFAAqF;AACtG;AACA;AACA,G;;;;;;;;;;;;ACjwBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACS;AACL;AACM;AACH;AACA;AACD;AAC4G;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC4B;AACE;AACA;AACI;AACgB;AAC0B;AACxB;AACf;AACJ;AACM;AACE;AACU;AACA;AACI;AACM;AACW;AACA;AACxE;AACA;AACA,IAAI,8EAA8E;AAClF;AACA;AACA;;AAEA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,uBAAuB,0DAAgB;AACvC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,wBAAwB,kDAAQ;AAChC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,sBAAsB,gDAAM;AAC5B;AACA,+BAA+B,6CAA6C;AAC5E,QAAQ,oDAAoD;AAC5D;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,KAAK,EAAE;AACP;;AAEA;AACA;;AAEA;AACA,KAAK;AACL;AACA,KAAK,EAAE;;AAEP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK,EAAE;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,IAAI,6FAAwB;AAC5B;AACA;AACA;AACA,8DAA8D,8DAA8D;AAC5H,UAAU,2EAA2E;AACrF,MAAM,4DAA4D;AAClE;AACA;AACA;AACA,OAAO;AACP;AACA,uDAAuD,sCAAsC;AAC7F;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA,qDAAqD;AACrD,QAAQ;AACR;AACA,qDAAqD;AACrD,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,aAAa,SAAS;AACtB,eAAe,EAAE;AACjB;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,+CAAK;AAC5B;AACA,WAAW;;AAEX;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP,QAAQ,oFAAa;AACrB;AACA;AACA;AACA,kEAAkE,gCAAgC;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,GAAG;AACZ;AACA,uCAAuC,sCAAsC;AAC7E;AACA,6BAA6B,wCAAwC;AACrE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,gDAAgD,yDAAyD;AACzG;AACA,eAAe,wDAAwD;AACvE;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,4BAA4B,+CAAK;AACjC,SAAS;AACT;AACA,4BAA4B,+CAAK;AACjC;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA,OAAO;AACP,QAAQ,oFAAa;AACrB;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E,QAAQ,mEAAmE;AAC3E;AACA;AACA,4DAA4D,iDAAiD;AAC7G,iBAAiB,0FAA0F;AAC3G,eAAe,yEAAyE;AACxF;AACA,eAAe,kDAAkD;AACjE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,qBAAqB;AACvE;AACA;AACA,4FAA4F;AAC5F;AACA;AACA,oCAAoC,iDAAiD;AACrF;AACA,4BAA4B,iDAAiD;AAC7E,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0EAA0E;AAClF,sCAAsC,kEAAkE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,0BAA0B,8CAA8C;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,oFAAoF;AACnG,eAAe,yCAAyC;AACxD;AACA,eAAe,wCAAwC;AACvD;AACA,iBAAiB,gCAAgC;AACjD;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,aAAa,qEAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gGAAgG;AAC/G;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,wDAAwD,MAAM;AAC5E;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,MAAM,qEAAc;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gGAAgG;AAC/G;AACA,eAAe,OAAO;AACtB,eAAe,qBAAqB;AACpC,eAAe,+BAA+B;AAC9C;;AAEA,GAAG;AACH;AACA;AACA,MAAM,uEAAgB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gGAAgG;AAC/G;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,0EAAmB;AAChC;AACA;AACA,iCAAiC,4CAA4C;AAC7E,QAAQ,kDAAkD;AAC1D;AACA;AACA;AACA;AACA;AACA,iBAAiB,gEAAgE;AACjF,iBAAiB,yDAAyD;AAC1E,QAAQ,4EAA4E;AACpF;AACA;AACA;AACA;AACA;AACA,eAAe,oEAAoE;AACnF,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,4CAA4C,iDAAY,GAAG,+CAAU;;AAErE;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,8BAA8B;AAC9B;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iGAAiG;AACzG;AACA,eAAe,0FAA0F;AACzG,eAAe,eAAe,0BAA0B,iDAAiD;AACzG,eAAe,gDAAgD;AAC/D,YAAY,sDAAsD;AAClE,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,kDAAa;AAC9B;AACA;AACA;AACA;AACA,YAAY,qDAAqD;AACjE;AACA;AACA,YAAY,+CAA+C;AAC3D;AACA;AACA;AACA;AACA,UAAU,oFAAoF;AAC9F,UAAU,kFAAkF;AAC5F;AACA;AACA,QAAQ,qFAAqF;AAC7F;AACA,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,6BAA6B,+CAA+C;AAC5E;;AAEA,GAAG;AACH;AACA;AACA,aAAa,kDAAa;AAC1B;AACA;AACA,+CAA+C,+CAA+C;AAC9F;AACA;AACA,QAAQ,2FAA2F;AACnG;AACA,eAAe,8BAA8B;AAC7C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,kDAAa;AAC1B;AACA;AACA,gDAAgD,+CAA+C;AAC/F;AACA;AACA,QAAQ,6FAA6F;AACrG;AACA,eAAe,8BAA8B;AAC7C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,kDAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAA2E;AACnF;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,sCAAsC;AACrD,eAAe,sCAAsC;AACrD;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,+CAAU;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+EAA+E;AACvF;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,+CAAU;AACvB;AACA;AACA,qDAAqD,+CAA+C;AACpG;AACA;AACA,QAAQ,+EAA+E;AACvF;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,8BAA8B;AAC7C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,+CAAU;AACvB;AACA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA,QAAQ,mFAAmF;AAC3F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,kDAAkD;AACxF;AACA;AACA;AACA,kCAAkC,yCAAyC;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA,eAAe,yCAAyC;AACxD,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,mDAAc;AAC/B;AACA;AACA,kBAAkB,sCAAsC;AACxD;AACA;AACA;AACA,UAAU,yBAAyB;AACnC,UAAU,uCAAuC;AACjD;AACA,eAAe,wBAAwB;AACvC,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,+CAAK;AACtB;AACA;AACA,wEAAwE,4CAA4C;AACpH;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAA6C,MAAM;AAC1E;AACA;AACA;AACA,iBAAiB,UAAU;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,gDAAM,qBAAqB;;AAE7D;;AAEA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,0CAA0C,oDAAoD;AAC9F,QAAQ,6CAA6C;AACrD;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,oDAAoD;AAC7F,QAAQ,6CAA6C;AACrD;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,kEAAkE;AAC/F,cAAc,sBAAsB;AACpC;AACA;AACA,wDAAwD,yDAAyD;AACjH;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,4CAA4C;AAC9E,8BAA8B,oDAAoD,MAAM;AACxF;AACA;AACA;AACA,eAAe,MAAM;AACrB,QAAQ,kEAAkE;AAC1E;;AAEA;AACA,yBAAyB,qBAAqB;AAC9C;AACA,YAAY,mDAAmD;AAC/D;AACA;AACA,oDAAoD,qBAAqB;AACzE;AACA;AACA;AACA,eAAe,MAAM;AACrB;;AAEA;AACA,yBAAyB,qBAAqB;AAC9C;AACA,YAAY,mDAAmD;AAC/D;AACA;AACA;AACA,eAAe,MAAM;AACrB;;AAEA;AACA,yBAAyB,uBAAuB;AAChD;AACA,YAAY,qDAAqD;AACjE;AACA;AACA;AACA,eAAe,MAAM;AACrB;;AAEA;AACA,yBAAyB,0BAA0B;AACnD;AACA,YAAY,wDAAwD;AACpE;AACA;AACA;AACA,eAAe,MAAM;AACrB;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAE2B;AAC5B,kFAAG,QAAQ,sFAAe,E;;;;;;;;;;;;ACp6B1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACL;AACE;AAC4G;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwD;AACgB;AACA;;AAEzB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mDAAmD;AACvD;AACA,yCAAyC,oEAAoE;AAC7G,IAAI;AACJ,oBAAoB;AACpB,uEAAuE,qDAAqD;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,yDAAyD;AAChE;AACA,wBAAwB,qEAAqE;AAC7F;AACA;AACA,eAAe,uDAAuD;AACtE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO,iCAAiC,+BAA+B;AACpF;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA,yCAAyC;AACzC,WAAW,4DAA4D;AACvE;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;;AAEA,kBAAkB,mFAAK;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA,uBAAuB,8CAA8C;AACrE,eAAe,qDAAqD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,qBAAqB;AACrB,sBAAsB;AACtB;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,0CAA0C,KAAK;AACjE;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,4DAA4D;AACjF;AACA,eAAe,8BAA8B;AAC7C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,2FAAa;;AAEhC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAA4D;AACjF;AACA,eAAe,8BAA8B;AAC7C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA,oBAAoB;AACpB,uBAAuB,0BAA0B;;AAEjD;AACA;AACA;AACA;AACA,SAAS,IAAI;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,4DAA4D,OAAO;AACxF;AACA;AACA,mCAAmC;AACnC,gCAAgC;AAChC,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,0CAA0C;AAC1C;AACA;AACA;AACA,mCAAmC;AACnC,8CAA8C;AAC9C,oDAAoD;AACpD;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO,iCAAiC,+BAA+B;AACtF;;AAEA,GAAG;AACH;AACA;AACA,oBAAoB,mFAAK;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,mFAAa;AAC/B;;AAEA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kBAAkB,mFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,qDAAqD;AACjF;AACA,8BAA8B,8CAA8C;AAC5E;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAA6D,MAAM,8BAA8B;AACzG;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAA4D;AACvE;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,qDAAqD;AAC7D,UAAU,6EAA6E;AACvF;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;AC/jBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACL;AACG;AACG;AAC8G;AAClH;AACS;AACf;AACkH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8J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AAC/E,aAAa,OAAO;AACpB;AACA,aAAa,sCAAsC;AACnD,aAAa,YAAY,uBAAuB,oDAAoD;AACpG;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA,kCAAkC,+CAA+C;AACjF;AACA,gBAAgB,sCAAsC;AACtD;;AAEA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,iBAAiB,0DAA0D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,+EAA+E;AACvF,mCAAmC;AACnC,iBAAiB,8FAA8F;AAC/G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,YAAY,8FAA8F;AAC1G;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B,OAAO;AACP,YAAY,4FAAa;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oFAAa;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,MAAM,qDAAK,CAAC,+CAAK;AACjB;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,0JAAI,CAAC,qKAAe;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sCAAsC;AACrD,i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ACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,iBAAiB,4DAA4D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8FAA8F;AAC1G;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,kCAAkC,kDAAQ;AAC1C,iBAAiB,wDAAc;AAC/B;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,6CAA6C;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,QAAQ,qDAAK,CAAC,+CAAK;AACnB,OAAO;AACP;;AAEA,QAAQ,uDAAO;AACf;;AAEA,4BAA4B,+CAAK,CAAC,kDAAQ,qDAAqD,kDAAQ;;AAEvG,MAAM,qDAAK;AACX;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,0JAAI,CAAC,qKAAe;;AAErC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB,kDAAQ;AACzB;AACA;AACA;AACA,4BAA4B,sBAAsB;AAClD;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA,iBAAiB,+CAAK;AACtB;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB,kDAAQ;AACzB;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,sCAAsC;AACrD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,0BAA0B,kDAAQ;AAClC,8BAA8B,kDAAQ;AACtC,uDAAuD,kDAAQ;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,kDAAS;;;;;;;;;;;;;;ACjSX;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACI;AACM;AACH;AAC2G;AACN;AACY;AACtH;AACI;AACG;AACZ;;AAEjC,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;AACgD;AACM;AACN;AACA;AACJ;AACkB;AAChB;AACA;AACN;AACX;AACM;AACqC;AACxE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8EAA8E;AACpF;AACA;AACA;AACA,IAAI,kEAAkE;AACtE;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kDAAkD;AAC7D,aAAa;AACb;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kDAAkD;AAC7D,WAAW,kDAAkD;AAC7D,WAAW,8DAA8D;AACzE,aAAa,0DAA0D;AACvE;;;AAGO;AACP;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,qEAAqE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0DAA0D;AACrE,WAAW,0DAA0D;AACrE,WAAW,OAAO;AAClB,WAAW,2CAA2C;AACtD,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ,kDAAkD,4DAA4D;AACjI;AACA;AACA,aAAa,OAAO;AACpB,aAAa,0DAA0D;AACvE,aAAa,0DAA0D;AACvE,aAAa,IAAI;AACjB;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,yCAAyC;;AAEzC;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA,KAAK;;AAEL,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,YAAY;;AAEZ;AACA;;AAEA;AACA,6BAA6B;;AAE7B,6CAA6C;;AAE7C;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA,kFAAkF;AAClF;;AAEA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA,0EAA0E,wKAAkB;;AAE5F,+EAA+E,wKAAkB;AACjG;;AAEA;AACA;AACA;AACA,oFAAoF;AACpF;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;;AAEA;AACA;AACA;AACA,aAAa,sCAAsC;AACnD,aAAa,QAAQ;AACrB;AACA,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC,qCAAqC;;AAErC;AACA,8CAA8C;AAC9C;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,0DAA0D;AACvE,aAAa,uDAAuD;;;AAGpE,EAAE,kKAAY;AACd;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,eAAe,kDAAkD;;AAEjE,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uDAAa;AAC1B;AACA;AACA,mBAAmB,wDAAc;AACjC;AACA;AACA;AACA,mBAAmB;AACnB;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;;AAEA,mBAAmB,uDAAa;AAChC;AACA;AACA;AACA,mBAAmB;AACnB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,wDAAc;AAC3B;AACA;AACA,mBAAmB,wDAAc;AACjC;AACA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,uDAAa;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,wDAAc;AAC3B;AACA;AACA,mBAAmB,wDAAc;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,mBAAmB,wDAAc;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,yDAAe;AAC5B;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB,uDAAa;AAChC;AACA,mCAAmC,+CAAK;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;;AAEA,mBAAmB,wDAAc;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA,eAAe,kDAAkD;AACjE,eAAe,kDAAkD;AACjE,iBAAiB;;AAEjB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,iBAAiB;;AAEjB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uDAAuD;;AAEvD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,eAAe,kDAAkD;AACjE,iBAAiB;;AAEjB,GAAG;AACH;AACA;AACA;AACA;;AAEA,4DAA4D;;;AAG5D;AACA;AACA;;AAEA;;AAEA,kDAAkD;;;AAGlD;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,eAAe,kDAAkD;AACjE,eAAe,kDAAkD;AACjE,eAAe,OAAO;;AAEtB,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,YAAY;AAC1B;;AAEA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,0DAA0D;AACrE,WAAW,OAAO;AAClB;;;AAGA;AACA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,gCAAgC,4DAA4D;AAC5F;AACA;AACA,WAAW,0DAA0D;AACrE,WAAW,OAAO;AAClB;;;AAGA;AACA,iBAAiB,aAAa;AAC9B,wBAAwB,qDAAW;AACnC;AACA,CAAC;;;AAGD,kBAAkB,4DAAkB,EAAE,4DAAkB;AACxD;AACA;AACA;AACA;AACA,iBAAiB,4DAAkB;AACnC,KAAK,EAAE;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4DAAkB;AAC9C;AACA;;AAEA;AACA,kBAAkB,qDAAW;AAC7B;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD,kBAAkB,4DAAkB,EAAE,yDAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,4DAAkB;AACnC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB,0CAA0C;AACnF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;;AAGL;AACA,GAAG;;;AAGH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8DAA8D;AACzE,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa;AACb;;AAEA;AACA,oCAAoC;;AAEpC;;AAEA;AACA;AACA;;AAEA,kBAAkB,+CAAK;AACvB,aAAa,4DAAkB;AAC/B;;AAEA,kBAAkB,4DAAkB,EAAE,wDAAc;AACpD,kBAAkB;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,+CAAK;AACvB;AACA;;AAEA,yDAAyD;;;AAGzD;AACA;AACA,GAAG;;;AAGH;AACA,eAAe,4DAAkB;AACjC,GAAG;AACH,CAAC;AACD,kBAAkB,4DAAkB,EAAE,uDAAa;AACnD,sDAAsD;;;AAGtD;AACA,eAAe,4DAAkB;AACjC,GAAG;AACH,CAAC,EAAE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,WAAW,0DAA0D;AACrE,aAAa;;AAEb;AACA,kBAAkB,+CAAK,oEAAoE;AAC3F;;;AAGA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,mFAAmF;;AAEnF,uDAAuD;;AAEvD,8DAA8D;;AAE9D;AACA,gCAAgC,wKAAkB;AAClD,KAAK;AACL;;AAEA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,4DAAkB,EAAE,wDAAc;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,2BAA2B,+CAAK;AAChC;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,4DAAkB;AACrD,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,yDAAe;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,uDAAa;AAChD;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,wDAAc;AACjD;AACA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,wDAAc;AACjD;AACA;AACA,CAAC,EAAE;;AAEH,kBAAkB,yDAAe,EAAE,yDAAe;AAClD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,yDAAe;AAClD;AACA;AACA;AACA,KAAK;AACL,kBAAkB,qDAAW;AAC7B;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,wDAAc;AACjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,uDAAa;AAChD;AACA,iBAAiB,+CAAK;AACtB;;AAEA;AACA;AACA,sBAAsB,+CAAK;;AAE3B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,+CAAK;AACtB;;AAEA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,wDAAc;AACjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,2BAA2B,kDAAQ;AACnC,OAAO;AACP,2BAA2B,kDAAQ;AACnC;;AAEA;AACA,yBAAyB,kDAAQ;AACjC,OAAO;AACP,yBAAyB,kDAAQ;AACjC,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,EAAE;;AAEH,kBAAkB,wDAAc,EAAE,yDAAe;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD,kBAAkB,wDAAc,EAAE,wDAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAW;AAC7B,KAAK;AACL;AACA;AACA,6BAA6B,kDAAQ;AACrC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,sEAAsE;;AAEtE,gDAAgD;;AAEhD,gDAAgD;;AAEhD;;AAEA;AACA;;AAEA;;AAEA,kBAAkB,uDAAa;AAC/B,KAAK;AACL,kBAAkB,qDAAW;AAC7B;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA,yEAAyE;AACzE;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,wDAAc,EAAE,uDAAa;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,+CAAK;;AAE1B;AACA;AACA,kBAAkB,qDAAW;AAC7B;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wEAAwE;AACxE;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,wDAAc,EAAE,wDAAc;AAChD;AACA;AACA;AACA,gGAAgG;AAChG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC,EAAE;;AAEH,kBAAkB,uDAAa,EAAE,yDAAe;AAChD,kBAAkB,+CAAK;;AAEvB;;AAEA;AACA,gEAAgE;AAChE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,uDAAa,EAAE,uDAAa;AAC9C;AACA;AACA;AACA;AACA,eAAe,+CAAK;;AAEpB,eAAe,+CAAK,0DAA0D;AAC9E;;;AAGA,oCAAoC;AACpC;;AAEA,wCAAwC;;AAExC;AACA;AACA,GAAG;AACH;AACA,GAAG;;;AAGH;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA,8DAA8D;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,eAAe,4FAAa;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;;;AAGA,kBAAkB;AAClB;;AAEA;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,mFAAmF;;AAEnF,yBAAyB,4FAAa;;AAEtC;;AAEA,gCAAgC,wKAAkB;AAClD,KAAK;;AAEL,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,qDAAW;AAC3B;;AAEA;AACA,CAAC;AACD,kBAAkB,uDAAa,EAAE,wDAAc;AAC/C,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA,kBAAkB,+CAAK;;AAEvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,yBAAyB,+CAAK;AAC9B;AACA,uBAAuB,+CAAK;AAC5B;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,GAAG;AACH;;;AAGA;;AAEA,6BAA6B;AAC7B;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,+CAAK;AACvB;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,uDAAa,EAAE,wDAAc;AAC/C,mBAAmB,+CAAK;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,2BAA2B,uDAAa;AACxC;AACA;AACA;;AAEA;;AAEA,yBAAyB,uDAAa;AACtC;AACA;AACA,uCAAuC,kDAAQ;AAC/C;AACA,iCAAiC,uDAAa;AAC9C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qDAAW;AACjC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA,kBAAkB,+CAAK;;AAEvB;;AAEA;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH,kBAAkB,yDAAe,EAAE,yDAAe;AAClD;AACA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,wDAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,uDAAa;AAChD;AACA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,yDAAe;AAClD;AACA;AACA;AACA,KAAK;AACL,kBAAkB,qDAAW;AAC7B;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,yDAAe,EAAE,wDAAc;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,4FAAa;AACnB,0BAA0B,yDAAe;AACzC;AACA,GAAG;AACH;;;AAGA;AACA;AACA,CAAC,EAAE;;AAEH,kBAAkB,gEAAsB,EAAE,gEAAsB;AAChE;AACA;AACA,kBAAkB,qDAAW;AAC7B,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC,EAAE;;AAEH,kBAAkB,wDAAc,EAAE,yDAAe;AACjD;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,wDAAc;AACtC;AACA,CAAC;AACD,kBAAkB,wDAAc,EAAE,wDAAc;AAChD;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,kDAAQ;AACpC,4BAA4B,wDAAc,0BAA0B,kDAAQ;AAC5E,8BAA8B,wDAAc;AAC5C;AACA;AACA,0BAA0B,wDAAc;AACxC;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,wDAAc;;AAEtC;AACA;AACA;;AAEA;AACA,CAAC;AACD,kBAAkB,wDAAc,EAAE,uDAAa;AAC/C,oBAAoB,+CAAK;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,kCAAkC,kDAAQ;AAC1C,uBAAuB,uDAAa;AACpC;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,wDAAc;AACxC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA,0BAA0B,wDAAc;AACxC;AACA,GAAG;AACH;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,0BAA0B,wDAAc;AACxC;;AAEA;AACA,CAAC;AACD,kBAAkB,wDAAc,EAAE,wDAAc;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,qDAAW;AAC7B;;AAEA;AACA,kBAAkB,qDAAW;AAC7B,KAAK;AACL;;;AAGA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA,qEAAqE;;AAErE,gDAAgD;;AAEhD,gDAAgD;;AAEhD;;AAEA;AACA,sBAAsB;AACtB;;AAEA;AACA,wBAAwB,uDAAa;AACrC,OAAO;AACP;;;AAGA;AACA,wBAAwB,uDAAa;AACrC;;AAEA;AACA,KAAK;AACL,kBAAkB,qDAAW;AAC7B;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;;AAGA;AACA;AACA;AACA,0BAA0B,kDAAQ;AAClC,qBAAqB,uDAAa;AAClC;AACA,GAAG;AACH;;;AAGA;AACA;AACA;;AAEA;AACA,wBAAwB,wDAAc;AACtC;AACA,CAAC,EAAE;AACH;AACA;AACA,WAAW,0DAA0D;AACrE,WAAW,0DAA0D;AACrE,aAAa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,wCAAwC;AACnD,WAAW,sCAAsC;AACjD,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;AAEtB,iBAAiB,mBAAmB;AACpC;AACA;AACA,iBAAiB,uDAAa;AAC9B,wBAAwB;;AAExB,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACpxEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA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xF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B;;AAEA;AACA;AACA,iCAAiC,sDAAsD;AACvF;AACA,gBAAgB,gDAAgD;AAChE;;AAEA;AACA;AACA;AACA,sDAAsD,0DAA0D;AAChH,mCAAmC,sDAAsD;AACzF;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,2FAAa;;AAEhC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2DAA2D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,wBAAwB;AAC1F;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS,+BAA+B,qDAAqD;AAC5G;AACA,eAAe,OAAO,iDAAiD,gDAAgD;AACvH;AACA,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,2BAA2B,mDAAU;AACrC;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,0CAA0C,kBAAkB,0BAA0B;AACtF;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;;;AAGP,gBAAgB,2FAAa,2BAA2B;;AAExD;AACA;AACA;AACA;AACA,mBAAmB,0CAA0C,KAAK;AAClE,0DAA0D,kBAAkB;AAC5E;AACA,eAAe,sCAAsC;AACrD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D,qBAAqB;AACjF;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,wCAAwC;AACxC;AACA,uCAAuC;AACvC,2CAA2C;AAC3C;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,2FAAa;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,uBAAuB;AACjH;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAA8D;AAC7E,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAA0D;AACzE,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAA4D;AAC3E,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAA4D;AAC3E,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,iBAAiB,2CAA2C;AAC5D;;AAEA,GAAG;AACH;AACA;AACA,iDAAiD;;;AAGjD;AACA;AACA;;AAEA,UAAU,2FAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO,UAAU,2FAAa;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA,iDAAiD;;;AAGjD;AACA;AACA;;AAEA,UAAU,2FAAa;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU,2FAAa;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,sCAAsC;AACrD,iBAAiB,sCAAsC;AACvD;;AAEA,GAAG;AACH;AACA;AACA,qCAAqC;;AAErC;;AAEA,4CAA4C;AAC5C;;AAEA,uEAAuE;AACvE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qDAAqD;AACjE;AACA;AACA,UAAU,+CAA+C;AACzD;AACA;AACA;AACA,UAAU,0DAA0D;AACpE,UAAU,yDAAyD;AACnE;AACA,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,6BAA6B,+CAA+C;AAC5E,eAAe,gDAAgD;AAC/D,6BAA6B,+CAA+C;AAC5E;AACA;;AAEA,GAAG;AACH;AACA;AACA,aAAa,sDAAI;AACjB;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,qBAAqB,0BAA0B;AAC/C;;AAEA;AACA,oBAAoB,mFAAa;AACjC;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,qEAAqE;AACjF,mCAAmC,iEAAiE;AACpG;AACA;AACA;AACA,gBAAgB,0GAA0G;AAC1H;AACA;AACA,mBAAmB,sCAAsC;AACzD;AACA,kBAAkB,mFAAa;AAC/B;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,iBAAiB,0DAA0D;AAC3E,qBAAqB,gDAAgD;AACrE;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAA8C;AAC9D;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA,6BAA6B,6CAAI;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yDAAyD,0DAA0D;AACnH;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,mDAAmD,0DAA0D;AAC7G;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,oBAAoB,mFAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,mFAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,+CAA+C;AAC3F;AACA,eAAe,8BAA8B;AAC7C,eAAe,gDAAgD;AAC/D,iBAAiB;AACjB;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD;AACA,kBAAkB,mFAAa;AAC/B;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,iDAAiD,+CAA+C;AAChG;AACA,eAAe,8BAA8B;AAC7C,eAAe,gDAAgD;AAC/D,iBAA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EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sCAAsC,aAAa,MAAM,WAAW;AACpE;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uCAAuC,mBAAmB,yBAAyB,mBAAmB;AACtG,iDAAiD,oBAAoB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,mBAAmB,YAAY,mBAAmB;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,0DAA0D;AAC1D;AACA,eAAe,gCAAgC;AAC/C,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,iDAAiD,mBAAmB;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kDAAkD;AAC1E;AACA;AACA;AACA;AACA;AACA,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA,gBAAgB,kDAAQ;;AAExB,iCAAiC;;AAEjC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,2DAA2D;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO,iDAAiD,gDAAgD;AACvH,eAAe,sCAAsC;AACrD,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB,oDAAU;AAC3B;AACA;AACA,mDAAmD,0CAA0C;AAC7F;AACA;AACA,yBAAyB,gDAAgD;AACzE,+CAA+C,gDAAgD;AAC/F,YAAY,qDAAqD;AACjE;AACA,oEAAoE,gDAAgD;AACpH;AACA;AACA;AACA,eAAe,OAAO,iDAAiD,gDAAgD;AACvH,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAU;AACzC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,mDAAmD,sDAAsD;AACzG;AACA;AACA,yBAAyB,gDAAgD;AACzE,QAAQ,sDAAsD,OAAO,qDAAqD;AAC1H;AACA,oEAAoE,gDAAgD;AACpH;AACA;AACA,eAAe,OAAO,iDAAiD,gDAAgD;AACvH,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAU;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAA6D;AAC5E,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA,0BAA0B,oBAAoB;AAC9C;;AAEA,uDAAuD,wKAAkB;AACzE;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,qBAAqB,mBAAmB;AACxC;;AAEA,2BAA2B,mBAAmB;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,0CAA0C,KAAK;AAClE;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAA8D;AAC7E,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,0DAA0D;AACzE,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAA4D;AAC3E,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAA4D;AAC3E,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,gBAAgB,UAAU;AAC1B;AACA,eAAe,UAAU;AACzB,cAAc,SAAS;AACvB,cAAc,KAAK;AACnB,eAAe;AACf;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,UAAU;AAClC,wBAAwB,YAAY;AACpC,uBAAuB,EAAE;AACzB;AACA;AACA;AACA;AACA,6BAA6B,cAAc;AAC3C,0BAA0B,MAAM;AAChC,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,KAAK;AAClC,0BAA0B,MAAM;AAChC,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA,kBAAkB,kDAAQ;AAC1B;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;;;AAGX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,oBAAoB;AACnE,QAAQ,mBAAmB,wDAAwD,oBAAoB;AACvG,kDAAkD,mBAAmB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,eAAe,QAAQ,wCAAwC,aAAa;AAC5E;AACA,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,oBAAoB;AACxD,QAAQ,mBAAmB;AAC3B;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qEAAqE,OAAO;AAC5E;AACA;;;AAGA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,sDAAsD,qDAAqD;AAC3G;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uDAAuD,aAAa;AACpE,QAAQ,WAAW,2BAA2B,mDAAmD;AACjG;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,4FAAa;AAC1B;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAkD;AACpF;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,sBAAsB,kDAAQ,wBAAwB,kDAAQ;AAC9D;AACA;AACA,iDAAiD,+CAA+C;AAChG;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,8CAA8C,kDAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAwC;AACvD,iBAAiB,gCAAgC;AACjD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,YAAY,oFAAoF;AAChG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AAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwE;AACI;AACxB;AACxB;AACM;AACF;AACN;AACY;AACtC;AACA;AACA;AACA;AACA;AACA,2CAA2C,mEAAmE;AAC9G;AACA;AACA;AACA,MAAM,oEAAoE;AAC1E,IAAI,sGAAsG;AAC1G,MAAM,4DAA4D;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,aAAa,OAAO;AACpB,aAAa,gDAAgD;AAC7D;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,6BAA6B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA,2DAA2D;;AAE3D;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,gDAAgD;AAC/D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,2BAA2B;AACvC;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA,6DAA6D;;AAE7D;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,kFAAkF;AACjG,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C,+DAA+D;AAC/D,qCAAqC;AACrC;AACA,eAAe,kFAAkF;AACjG;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAsD;AACzE;AACA,sCAAsC;AACtC,kCAAkC;AAClC;AACA;AACA,2CAA2C;AAC3C;AACA,eAAe,kFAAkF;AACjG;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,sDAAsD;AACjF;AACA;AACA,sCAAsC;AACtC,kCAAkC;AAClC,0DAA0D;AAC1D,kCAAkC;AAClC;AACA,eAAe,kFAAkF;AACjG;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6BAA6B,sDAAsD;AACnF;AACA,uCAAuC;AACvC,mCAAmC;AACnC;AACA;AACA,wCAAwC;AACxC;AACA,eAAe,kFAAkF;AACjG;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAsD;AACnF;AACA,uCAAuC;AACvC,uCAAuC;AACvC;AACA;AACA,gCAAgC;AAChC;AACA,eAAe,kFAAkF;AACjG;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA;AACA,SAAS;AACT,iEAAiE;AACjE;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA,eAAe,mDAAmD;AAClE,eAAe,qCAAqC;AACpD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA,SAAS;AACT,kDAAkD;AAClD;AACA;AACA,eAAe,mDAAmD;AAClE,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B,sCAAsC,8BAA8B;AACjG;AACA,qDAAqD;AACrD;AACA;AACA,8DAA8D,4CAA4C;AAC1G;AACA;AACA,eAAe,0EAA0E;AACzF;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,2CAA2C,kDAAQ;AACnD;AACA;;AAEA,oCAAoC,iDAAO;AAC3C;AACA;AACA;AACA;AACA;AACA,oBAAoB,oFAAa;AACjC;;AAEA,mCAAmC,iDAAO;AAC1C;AACA;AACA;AACA;AACA;AACA,oBAAoB,oFAAa;AACjC;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA,wCAAwC,sDAAsD;AAC9F;AACA;AACA,iDAAiD,wBAAwB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,mBAAmB;AAC/B;AACA,eAAe,SAAS;AACxB,QAAQ,+CAA+C;AACvD,QAAQ,8DAA8D;AACtE;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,oBAAoB,qKAAc;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,6CAA6C,sBAAsB;AACnE;AACA;AACA,wCAAwC,sDAAsD;AAC9F;AACA;AACA;AACA,iDAAiD,4BAA4B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,GAAG,mBAAmB;AAC/B;AACA,eAAe,SAAS;AACxB,QAAQ,+CAA+C;AACvD;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,oBAAoB,qKAAc;AAClC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ,iGAAiG;AACzG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,gFAAgF;AACxF;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kBAAkB;AAClB;AACA,eAAe,OAAO;AACtB,eAAe,+CAA+C;AAC9D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,wEAAwE,yDAAyD;AACjI;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2BAA2B,8DAA8D;AACzF;AACA;AACA,eAAe;AACf,6EAA6E;AAC7E;AACA,iBAAiB,oCAAoC;AACrD;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,gDAAgD,kDAAQ;AACxD;AACA,OAAO;AACP,2DAA2D,+CAAK,qFAAqF;;AAErJ;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX,SAAS;AACT;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,gGAAgG;AAC/G;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA,iCAAiC,wKAAkB,qCAAqC,8CAAI,kCAAkC;;;AAG9H;AACA,OAAO;AACP,2CAA2C;;AAE3C;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;;AAEA;AACA,kCAAkC,iCAAiC;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,iBAAiB,2CAA2C;AAC5D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,wDAAwD,4CAA4C;AACpG;AACA;AACA;AACA;AACA,YAAY,+CAA+C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,eAAe,4BAA4B;AAC3C,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,+CAAK;AACxB;;AAEA;;AAEA;AACA,6BAA6B,oDAAU;AACvC;AACA;AACA,SAAS;AACT;;AAEA;AACA,4BAA4B,oDAAU;AACtC;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;;AAEA;AACA,mBAAmB,+CAAK;AACxB;;AAEA;AACA,uBAAuB,+CAAK;AAC5B;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,8DAA8D;AACjF,QAAQ,gEAAgE;AACxE;AACA,gBAAgB,sCAAsC;AACtD,gBAAgB,qCAAqC;AACrD,iBAAiB,yCAAyC;AAC1D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,yCAAyC;AACxD,eAAe,kCAAkC;AACjD;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,gCAAgC,+CAAK;;AAErC;;AAEA;AACA;;AAEA;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAmD;AAClE,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,wBAAwB;AACtE;AACA;AACA;;AAEA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;;AAEA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;;AAEA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA;;AAEA,gDAAgD,0BAA0B;AAC1E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,wDAAwD;AACvE,eAAe,yCAAyC;AACxD,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6BAA6B;AACnE;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,OAAO;AACtB,iBAAiB,2CAA2C;AAC5D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA,0EAA0E,+CAAK;;AAE/E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,+CAAK;;AAE9B;AACA,sBAAsB,kDAAQ;;AAE9B;AACA,oBAAoB,kDAAQ;;AAE5B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,+CAAK;;AAE9B;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL,GAAG;;AAEH;AACA,CAAC;;AAE4B;AAC7B,kFAAG,SAAS,sFAAe;AAC3B;AACA,yBAAyB,kBAAkB;AAC3C;AACA,IAAI,sDAAsD;AAC1D;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,QAAQ,kBAAkB;AAC1B,IAAI,sEAAsE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,mBAAmB;AAC3B;AACA;AACA;AACA,oBAAoB,+CAA+C;AACnE,IAAI,8DAA8D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,mBAAmB;AAC3B;AACA;AACA,wBAAwB,sDAAsD;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,mBAAmB;AAC3B;AACA;AACA,WAAW,MAAM;AACjB;;AAEA;AACA,yBAAyB,sBAAsB;AAC/C;AACA,IAAI,sDAAsD;AAC1D;AACA,kBAAkB,yBAAyB;AAC3C;AACA;AACA;AACA,QAAQ,sBAAsB;AAC9B,IAAI,sEAAsE;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,mBAAmB;AAC3B;AACA;AACA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,mBAAmB;AAC3B;AACA;AACA,gCAAgC,sDAAsD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,mBAAmB;AAC3B;AACA;AACA,WAAW,MAAM;AACjB;;AAEA;AACA,sBAAsB,+CAA+C;AACrE;AACA;AACA;AACA,sBAAsB;AACtB,8BAA8B;AAC9B,6BAA6B;AAC7B,yBAAyB;AACzB,gCAAgC;AAChC,+BAA+B;AAC/B,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA,uBAAuB;AACvB;AACA,IAAI,4DAA4D;AAChE,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,yCAAyC,yDAAyD;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;AAEA;AACA,4BAA4B,sDAAsD;AAClF,uBAAuB,+CAA+C;AACtE,+BAA+B;AAC/B,QAAQ,+CAA+C;AACvD,IAAI,sDAAsD;AAC1D;AACA,QAAQ,sDAAsD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,4EAA4E;AACpH;AACA;AACA;AACA,6BAA6B,6EAA6E;AAC1G,IAAI,qFAAqF;AACzF;AACA,WAAW,yEAAyE;AACpF,IAAI,iFAAiF;AACrF,wCAAwC,yDAAyD;AACjG;;AAEO;AACP;AACA;AACA;AACA,aAAa,mDAAmD;AAChE;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA,iDAAiD;AACjD;AACA;AACA,yDAAyD;AACzD;AACA,iBAAiB,oCAAoC;AACrD;AACA;AACA,eAAe,iFAAiF;AAChG;AACA,iBAAiB,yCAAyC;AAC1D;;AAEA,GAAG;AACH;AACA;AACA;AACA,6BAA6B,wKAAkB,eAAe,wKAAkB;AAChF;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,0CAA0C;AAC1C,gCAAgC;AAChC,oCAAoC;AACpC;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA,wBAAwB,8DAA8D;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,+CAA+C;AACnE;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iFAAiF;AAC1G,uEAAuE,oCAAoC;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uDAAuD;AACvD;;AAEA;AACA,mBAAmB,8DAA8D;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,oCAAoC;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,oDAAoD;AACpD,+DAA+D;AAC/D,KAAK;AACL;AACA,aAAa,OAAO;AACpB;;AAEA;AACA;AACA;AACA,QAAQ,iGAAiG;AACzG;AACA,aAAa,OAAO;AACpB,cAAc,QAAQ;AACtB;AACA,cAAc,QAAQ;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;AACA,gEAAgE;;AAEhE;AACA;;AAEA;;AAEA,0GAA0G,wKAAkB;AAC5H;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;AACA;;AAEA;AACA;;AAEA;;AAEA,oHAAoH,wKAAkB;AACtI;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,+BAA+B,mCAAmC;AAClE;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;;;AAGA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;AACA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;;AAEA;AACA;AACA,OAAO;AACP;;AAEA,2FAA2F,wKAAkB;AAC7G;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,2CAA2C;AACtD,WAAW,2CAA2C;AACtD,aAAa,kBAAkB;AAC/B;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA,WAAW,wCAAwC;AACnD,aAAa,2CAA2C;;;AAGxD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;AC9jEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACW;AACf;AACO;AACG;AACR;AACE;AACH;AACM;AACD;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkC;AACF;AACN;AACE;AAC0C;AACE;AACpB;AACc;AAClE;AACA,0BAA0B,6CAA6C;AACvE,IAAI,4DAA4D,MAAM;AACtE,eAAe,6EAA6E;AAC5F;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,kDAAkD;AACtF;AACA;AACA;AACA,gCAAgC,yCAAyC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE;AACA,aAAa,yCAAyC;AACtD,aAAa,wCAAwC;AACrD,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,aAAa;AAC9B;AACA;AACA,kCAAkC,kDAAkD;AACpF,MAAM,8CAA8C;AACpD,gFAAgF,uBAAuB;AACvG;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,eAAe,gGAAgG;AAC/G;AACA,iBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,+CAAK;;AAE9B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,qCAAqC,kDAAkD;AACvF,QAAQ,+DAA+D;AACvE;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,yBAAyB,+CAAK;AAC9B;AACA;AACA;AACA,oCAAoC,8CAA8C;AAClF,QAAQ,6DAA6D;AACrE;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,wBAAwB,+CAAK;AAC7B;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAA0D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAkD;AACpF;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA,eAAe,yCAAyC;AACxD,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,gCAAgC,+CAAK;AAC5C;AACA,OAAO,gCAAgC,kDAAQ;AAC/C,6BAA6B,+CAAK;AAClC,OAAO,gCAAgC,8CAAI;AAC3C;AACA;;AAEA;AACA,kBAAkB,+CAAK;AACvB,SAAS;AACT,kBAAkB,+CAAK;AACvB,SAAS;AACT,sBAAsB,+CAAK,CAAC,kDAAQ;AACpC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB,oFAAa;AACjC;;AAEA;AACA,OAAO,UAAU,yFAAU;AAC3B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAA8C;AAC9D,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;AACA;AACA;AACA;AACA,gEAAgE,qDAAqD;AACrH,QAAQ,oDAAoD;AAC5D;AACA;AACA;AACA,eAAe,2CAA2C;AAC1D,eAAe,QAAQ;AACvB;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,wCAAwC;;AAExC;AACA,kCAAkC,+CAAK;AACvC;AACA,0EAA0E,sCAAsC;AAChH;AACA,mBAAmB,sCAAsC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oFAAa;AACjC;;AAEA;AACA;AACA,SAAS;AACT,OAAO,EAAE;;AAET;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,cAAc,oDAAoD;AAClE;AACA;AACA,QAAQ,mFAAmF;AAC3F;AACA;AACA,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,6BAA6B,+CAA+C;AAC5E;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA,qBAAqB,kDAAQ;;AAE7B;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,4BAA4B,+CAAK;;AAEjC;AACA,OAAO;AACP,4BAA4B,+CAAK;;AAEjC;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,0BAA0B;AACzF;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sDAAsD,0BAA0B;AAChF;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,sCAAsC,kDAAkD;AACxF;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,iDAAO;AAC9C;AACA;AACA;AACA;AACA,oCAAoC;AACpC,0CAA0C;AAC1C;AACA,yCAAyC;AACzC,gCAAgC;AAChC;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,8BAA8B,wDAAwD;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA,4DAA4D;;AAE5D,sDAAsD,kDAAQ;AAC9D;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,sBAAsB,gEAAgE;AACtF;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,+BAA+B,kDAAQ;;AAEvC,6BAA6B,kDAAQ;;AAErC;AACA;AACA;AACA,qCAAqC,4BAA4B;AACjE;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,4BAA4B,+CAAK;AACjC;AACA;AACA;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C;;AAEA,GAAG;AACH;AACA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA;AACA;AACA;AACA,qBAAqB,gCAAgC;AACrD,qBAAqB,gCAAgC;AACrD;AACA,oBAAoB,oFAAa;AACjC;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,uDAAuD,2BAA2B;AAClF;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ,0BAA0B,8CAA8C;AAC/F;AACA,YAAY,8DAA8D;AAC1E,yCAAyC,+CAA+C;AACxF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,QAAQ,0BAA0B,8CAA8C;AAC/F;AACA,YAAY,8DAA8D;AAC1E,0CAA0C,+CAA+C;AACzF;AACA;AACA;AACA,eAAe,eAAe;AAC9B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,0CAA0C,aAAa,2BAA2B,cAAc;AAChG;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAE+B;AAChC,kFAAG,YAAY,mFAAY,EAAE;AAC7B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;;AAGD;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG,EAAE;AACL;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA,WAAW,qCAAqC;AAChD,WAAW,gCAAgC;;;AAG3C;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH,4CAA4C,+CAAK;AACjD;AACA,CAAC;AACD;AACA,WAAW,8BAA8B;AACzC,aAAa;;;AAGb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,G;;;;;;;;;;;;ACtpCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0B;AAC1B;AACA,6BAA6B,yCAAyC,gBAAgB,mDAAmD;AACzI;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA,sBAAsB,qDAAqD;AAC3E;AACA;AACA,IAAI,kEAAkE;AACtE;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA,cAAc,mDAAmD;AACjE;AACA;AACA,aAAa,OAAO;AACpB,aAAa,OAAO,iCAAiC,+BAA+B;AACpF;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B,0BAA0B;AAC1B,gCAAgC;AAChC,gCAAgC;AAChC;AACA,+BAA+B;AAC/B,uCAAuC;AACvC;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB;AACA,iBAAiB;AACjB;AACA;AACA,uDAAuD,0JAAI,CAAC,qKAAe;AAC3E;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,0JAAI,CAAC,qKAAe;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,8BAA8B;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,8BAA8B;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6CAAI;;;;;;;;;;;;;;ACzJN;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwE;AACxE;AACA,qCAAqC,8CAA8C;AACnF;AACA,UAAU,sDAAsD;AAChE,IAAI,6CAA6C,6CAA6C;AAC9F;AACA;AACA;AACA;AACA,sCAAsC,yCAAyC;AAC/E;AACA;AACA;AACA,QAAQ,wDAAwD;AAChE;AACA,gDAAgD,yCAAyC;AACzF;AACA;AACA;AACA,QAAQ,yDAAyD;AACjE;AACA;AACA;AACA,6EAA6E;AAC7E,YAAY;AACZ;AACA,yCAAyC,kEAAkE;AAC3G;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,8BAA8B;AAC3C,aAAa,OAAO,yBAAyB,iEAAiE;AAC9G;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAa;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAa;AAC7B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;AAGA;AACA;AACA,kBAAkB,iEAAiE;AACnF;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC,0CAA0C;AAC1C;AACA,yCAAyC;AACzC,gCAAgC;AAChC;AACA,QAAQ,8EAA8E;AACtF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA,wEAAwE;AACxE,SAAS,wEAAwE;AACjF;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,qDAAqD;AAC7D,qCAAqC,6EAA6E;AAClH;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;;;;ACtTD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACkH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0B;AACU;AACJ;AACE;AACsC;AACxE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO,YAAY;AAChC,aAAa,qBAAqB;AAClC,aAAa,gCAAgC;AAC7C,aAAa,sCAAsC;AACnD,aAAa,QAAQ;AACrB,gDAAgD,8CAA8C;AAC9F,MAAM,8CAA8C;AACpD,aAAa,QAAQ;AACrB;AACA,aAAa,QAAQ;AACrB;AACA,WAAW,0CAA0C;AACrD;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAa;AAC7B;;AAEA;;AAEA;AACA,gBAAgB,mFAAa;AAC7B;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;;;AAGA;AACA;AACA;AACA;AACA;AACA,wCAAwC,aAAa;AACrD;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;;AAEA;AACA;AACA;AACA,QAAQ,kEAAkE;AAC1E,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA;AACA;AACA,KAAK;AACL,sBAAsB,iDAAQ;AAC9B,KAAK;;;AAGL;AACA;AACA;AACA,wBAAwB,8CAA8C;AACtE;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA,kFAAkF,0CAA0C;AAC5H;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAoC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oCAAoC;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA,cAAc,gBAAgB,SAAS,iBAAiB;AACxD;AACA;AACA;AACA,sDAAsD;AACtD,mCAAmC;AACnC,oCAAoC;AACpC;AACA,eAAe,SAAS,+BAA+B,qDAAqD;AAC5G;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+CAA+C;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iDAAiD,gBAAgB;AACjE;AACA;AACA,iBAAiB;AACjB,iBAAiB,QAAQ;AACzB,iBAAiB,+CAA+C;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;;AAEA;;AAEA,0BAA0B,gDAAO;AACjC;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA,OAAO,0BAA0B,6CAAI;AACrC;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,kDAAS;AAChC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,kDAAkD,gBAAgB;AAClE;AACA;AACA,iBAAiB;AACjB,iBAAiB,QAAQ;AACzB,iBAAiB,+CAA+C;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA,OAAO;;;AAGP;;AAEA,0BAA0B,gDAAO;AACjC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO,0BAA0B,6CAAI;AACrC;;AAEA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,kDAAS;AAChC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAEgC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,gDAAgD;AAC7E;AACA;AACA,gCAAgC,4DAA4D;AAC5F;AACA,aAAa,+CAA+C;AAC5D;;AAEA;AACA,uBAAuB,gDAAgD;AACvE;AACA,aAAa,OAAO;AACpB,cAAc,mDAAmD;AACjE,cAAc,8BAA8B,6CAA6C,gDAAgD;AACzI,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA,cAAc,sCAAsC;AACpD;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC,G;;;;;;;;;;;;ACtaA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;;AAE9C,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2C;AACd;AACwB;AACrD;AACA;AACA;AACA,kBAAkB,oDAAoD;AACtE;AACA,qBAAqB;AACrB;AACA;AACA,WAAW,gCAAgC;AAC3C;AACA,WAAW,gGAAgG;AAC3G;AACA,WAAW,gCAAgC;AAC3C,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,wDAAwD,MAAM;AACxE;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;;AAEA;AACA;AACA;;AAEA,2CAA2C;;AAE3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,qDAAY,sCAAsC;;AAEnE;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA,gBAAgB,WAAW,wBAAwB,yBAAyB;;AAE5E;AACA;;AAEA,qDAAqD;AACrD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;AACD;;AAEA;AACA;AACA,gCAAgC;AAChC,2BAA2B,qCAAqC;;AAEhE;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;AACH;AACA,+DAA+D;;;AAG/D;AACA;AACA,GAAG;AACH,8BAA8B;AAC9B;AACA,4BAA4B;;;AAG5B;AACA;;AAEA;AACA;AACA,gCAAgC;AAChC;AACA,qCAAqC;AACrC;AACA,GAAG;AACH;AACA;;;AAGA,yBAAyB;AACzB;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,iDAAiD;AACjD;AACA;;;AAGA;AACA,yBAAyB,8CAAK;;AAE9B;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;;;AAGA;AACA,2BAA2B,0DAAiB;AAC5C;AACA,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;AC5QA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACO;AACG;AACD;AACL;AACE;;AAE1C,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C;AACA,WAAW,gGAAgG;AAC3G;AACA,aAAa;AACb;AACe;AACf;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA,8EAA8E;;AAE9E;AACA;AACA,KAAK;AACL;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG,EAAE;AACL;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;AClKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACF;AACE;AACG;AACZ;AACqH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACmC;AACQ;AACV;AACJ;AACwB;AAChB;AACmC;AACxE;AACA;AACA;AACA;AACA,sBAAsB,8CAA8C;AACpE;AACA;AACA;AACA;AACA,kBAAkB,oDAAoD;AACtE,gFAAgF;AAChF;AACA;AACA,WAAW,gCAAgC;AAC3C;AACA,WAAW,oFAAoF;AAC/F,WAAW,yCAAyC;AACpD;AACA,WAAW,wCAAwC;AACnD,aAAa,gCAAgC;AAC7C;AACA;AACA;;AAEe;AACf;AACA;;AAEA;AACA;AACA,KAAK,gCAAgC,mDAAS,0BAA0B,2DAAiB;AACzF;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,+BAA+B,2DAAiB;AAChD;AACA,OAAO;AACP;AACA;AACA,KAAK,OAAO;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA,gBAAgB,0BAA0B;AAC1C;AACA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,sCAAsC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,kCAAkC;AAClD;;AAEA;AACA;AACA;AACA,6CAA6C,yEAAyE;AACtH;AACA;AACA,gBAAgB,mDAAmD;AACnE;;AAEA;AACA;AACA,uCAAuC,yEAAyE;AAChH;AACA;AACA,gBAAgB,mDAAmD;AACnE;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,yCAAyC;AACtD,aAAa,OAAO;AACpB;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA,qBAAqB,kBAAkB;AACvC;;AAEA;AACA;AACA;AACA,SAAS;AACT,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,eAAe,+CAAK;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,+CAAK;AACtB;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;;;AAGA;;AAEA;AACA;;AAEA;AACA;;AAEA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,8BAA8B;AACjD,mBAAmB,sCAAsC;AACzD;AACA,kBAAkB,oFAAa;AAC/B;AACA;AACA,SAAS;AACT;;AAEA,oBAAoB,qDAAY;;AAEhC;;AAEA;AACA;AACA,uBAAuB;;AAEvB;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,qDAAY;AAC1C,OAAO;AACP;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA,4BAA4B,qDAAY;AACxC;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA,4BAA4B,gDAAO;AACnC;AACA;;AAEA;;AAEA;;AAEA,yBAAyB,qDAAY;;AAErC;;AAEA,0BAA0B,qDAAY;;AAEtC;;AAEA;AACA,2BAA2B,qDAAY;AACvC,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,qDAAY;AAC5C;;AAEA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8BAA8B,qDAAY;AAC1C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oFAAa;AACjC,SAAS;AACT;;;AAGA,wBAAwB,iDAAQ,4CAA4C;AAC5E;;AAEA,4BAA4B,qDAAY,2CAA2C;;;AAGnF;AACA;;AAEA,8BAA8B,qDAAY;AAC1C;;AAEA,yCAAyC;;AAEzC;AACA;;AAEA,gCAAgC,qDAAY;AAC5C;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,2DAA2D,gDAAO;AAClE;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,sDAAsD,gDAAO;AAC7D;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA,6DAA6D;AAC7D;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,QAAQ;AACzB;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,G;;;;;;;;;;;;AC3oBD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACyF;;AAEtI;AACA;AACA;AACA;;AAEA;AACA;AACA;AACmC;AACI;AACV;AACyE;AACjD;AACrD,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,sDAAsD;AACxE;AACA,qBAAqB;AACrB;AACA;AACA,WAAW,gCAAgC;AAC3C;AACA,WAAW,gGAAgG;AAC3G;AACA,WAAW,OAAO;AAClB,WAAW,qBAAqB;AAChC,WAAW,+BAA+B;AAC1C;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA,mBAAmB,mDAAU;AAC7B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AA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CvE;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,0DAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oDAAoD;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAA4C;AACxE,QAAQ,yCAAyC,MAAM,6DAA6D;AACpH;AACA;AACA,QAAQ,4EAA4E;AACpF;AACA,eAAe,oFAAoF;AACnG;AACA,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,8BAA8B,+CAA+C;AAC7E;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,0BAA0B,8CAAI;AAC9B;AACA;;AAEA,qBAAqB,kDAAQ,mCAAmC;;;AAGhE;AACA;AACA;AACA;AACA,oBAAoB,kDAAK;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,oFAAa;AACrC,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,mEAAe;;AAEtC,0BAA0B,8CAAI;AAC9B;AACA;;AAEA;AACA,wCAAwC;;AAExC,0BAA0B,0DAAgB;AAC1C;AACA;;AAEA;AACA,6BAA6B,+BAA+B;AAC5D,8BAA8B,qKAAc;AAC5C;AACA;;AAEA;AACA,oCAAoC,kDAAQ;;AAE5C,4BAA4B,kDAAK;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,oDAAoD;AACrG;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,6BAA6B,+CAA+C;AAC5E;;AAEA,GAAG;AACH;AACA;AACA,gCAAgC,0DAAgB,0BAA0B,iDAAO,0BAA0B,kDAAQ;AACnH;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oDAAoD;AACnG;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,6BAA6B,+CAA+C;AAC5E;;AAEA,GAAG;AACH;AACA;AACA,gCAAgC,0DAAgB,0BAA0B,iDAAO,0BAA0B,kDAAQ;AACnH;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,4CAA4C;AACxE,QAAQ,yCAAyC,MAAM,6DAA6D;AACpH;AACA,eAAe;AACf;AACA,eAAe,0FAA0F;AACzG;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,0FAA0F;AACzG;;AAEA,GAAG;AACH;AACA;AACA,gCAAgC,0DAAgB,0BAA0B,iDAAO;AACjF;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,sBAAsB;AAClE;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,0FAA0F;AACzG;;AAEA,GAAG;AACH;AACA;AACA,gCAAgC,0DAAgB,0BAA0B,iDAAO;AACjF;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,wDAAwD;AACxD,gBAAgB,4CAA4C;AAC5D;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB,eAAe,8DAA8D;AAC7E;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,iCAAiC,kDAAK;AACtC;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,uCAAuC;AACvC,gBAAgB,4CAA4C;AAC5D;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,OAAO;AACtB,eAAe,8DAA8D;AAC7E;AACA;;AAEA,GAAG;AACH;AACA;AACA,kDAAkD,oFAAK;AACvD;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,qKAAc;AAC3C;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,mDAAmD;AACnD,kBAAkB,4CAA4C;AAC9D;AACA,eAAe,OAAO;AACtB,eAAe,8DAA8D;AAC7E;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,iCAAiC,kDAAK;AACtC;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAA8D;AAC7E;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA,mCAAmC,kDAAK;AACxC;AACA,OAAO;AACP;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,oDAAoD;AACnG;AACA;AACA,kDAAkD,kEAAkE;AACpH;AACA,QAAQ,+CAA+C;AACvD;AACA,eAAe,gCAAgC;AAC/C,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,8BAA8B,+CAA+C;AAC7E;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,6BAA6B,kDAAK;AAClC;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA,qBAAqB,kDAAQ,mCAAmC;;;AAGhE;AACA;AACA,OAAO;;;AAGP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AEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qCAAqC,yDAAyD;AAC9F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,sDAAsD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,2EAA2E;AACnF;AACA;AACA;AACA;AACA,YAAY,+EAA+E;AAC3F,wCAAwC,4EAA4E;AACpH,yCAAyC,kEAAkE;AAC3G;AACA;AACA;AACA,mCAAmC,QAAQ;AAC3C;AACA;AACA;AACA,+BAA+B,8BAA8B;AAC7D,mCAAmC,8BAA8B;AACjE;AACA;AACA;AACA,+BAA+B,uBAAuB;AACtD;AACA;AACA;AACA,mCAAmC,qBAAqB;AACxD;AACA;AACA,eAAe,mDAAmD;AAClE,eAAe,OAAO;AACtB;AACA,eAAe,gCAAgC;AAC/C,eAAe,QAAQ;AACvB,YAAY,yEAAyE;AACrF,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,uEAAuE;;AAEvE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kFAAkF;;AAElF;AACA;;AAEA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,sBAAsB,yDAAyD;AAC/E;AACA;AACA;AACA,eAAe,mDAAmD;AAClE;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAA0D;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,kDAAkD;AACpF;AACA;AACA;AACA;AACA,8BAA8B,yCAAyC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,iBAAiB;AACtD;AACA;AACA;AACA,eAAe,yCAAyC;AACxD,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,oEAAoE;AAClF;AACA;AACA,QAAQ,oDAAoD;AAC5D;AACA,eAAe,oEAAoE;AACnF,eAAe,8BAA8B;AAC7C,6BAA6B,+CAA+C;AAC5E;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,4BAA4B;AACnE;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C;AACA,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,oDAAoD,oFAAK;AACzD;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D,+BAA+B,qKAAc;AAC7C;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yBAAyB;AACxC;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,iBAAiB,uCAAuC;AACxD;AACA;AACA,QAAQ,uCAAuC;AAC/C;AACA;AACA,eAAe,OAAO,gCAAgC,uCAAuC;AAC7F;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA,oDAAoD;;AAEpD;AACA,uBAAuB,2DAAiB;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA,oDAAoD;;AAEpD;AACA,uBAAuB,2DAAiB;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,2CAA2C,wDAAwD;AACnG,UAAU,sEAAsE;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B,eAAe,sEAAsE;AACrF;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA,+GAA+G;AAC/G;AACA;AACA;;AAEA,+GAA+G;AAC/G;AACA;AACA;;AAEA,qFAAqF;AACrF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,gCAAgC;;;AAGd;;AAE7B;AACA;AACA,2BAA2B;;AAE3B,sCAAsC;AACtC;;AAEA,eAAe;;AAEf,kBAAkB;;AAElB;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA,yBAAyB,mCAAmC;AAC5D;AACA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA,0BAA0B,kDAAQ;AAClC;AACA;;AAEA;AACA,oBAAoB,kDAAK;AACzB;AACA,wBAAwB,sEAAkB;AAC1C;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,8BAA8B;;;AAGzC;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sBAAsB,0EAAsB;AAC5C,KAAK;AACL,kBAAkB,kDAAK,CAAC,kDAAQ;;AAEhC;;AAEA,sBAAsB,sEAAkB;AACxC;;AAEA;AACA;AACA;AACA,CAAC,6CAA6C,kEAAkE;AAChH;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB,WAAW,gCAAgC;AAC3C,WAAW,gCAAgC;AAC3C,WAAW,QAAQ;;;AAGnB;AACA;AACA;AACA,sBAAsB,mEAAe;AACrC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,gCAAgC;;;AAG3C;AACA;;AAEA;AACA;AACA,gCAAgC,kDAAQ;AACxC,oBAAoB,iEAAa;AACjC,GAAG;AACH,oBAAoB,mEAAe;AACnC;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,GAAG;;;AAGH,uBAAuB,qDAAW,qBAAqB,qDAAW;AAClE;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACztDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkE;AACA;AAClE;AACA,qFAAqF;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA,2BAA2B,YAAY;AACvC;AACA,WAAW,OAAO;AAClB,WAAW,6BAA6B;AACxC,WAAW,gCAAgC;AAC3C,WAAW,sCAAsC;AACjD;AACA,WAAW,OAAO;AAClB,WAAW,2BAA2B,qBAAqB,8CAA8C;AACzG;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;;AAGA;AACA;AACA;;AAEA,4CAA4C,+EAAQ;AACpD,2CAA2C,+EAAQ,WAAW;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;;AAGA;AACA;AACA;AACA,GAAG;AACH,cAAc,gFAAU;AACxB,GAAG;AACH;AACA;AACA,yCAAyC,sDAAsD;AAC/F,mEAAmE;AACnE,yCAAyC,mCAAmC;AAC5E;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C,aAAa,sCAAsC;AACnD;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,QAAQ,iEAAiE;AACzE;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,QAAQ,iEAAiE;AACzE;AACA;AACA,gBAAgB;AAChB;;AAEA,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA,gEAAgE,mCAAmC;AACnG;AACA,aAAa,sCAAsC;AACnD,aAAa,sDAAsD;AACnE,eAAe,QAAQ;AACvB;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA,qCAAqC;AACrC;AACA,4CAA4C;AAC5C;AACA;AACA;AACA,uDAAuD;AACvD;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;;AAGA;AACA;AACA,OAAO;AACP;AACA,gDAAgD;AAChD;AACA;AACA;AACA,wDAAwD;AACxD;;;AAGA;AACA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA,2BAA2B;AAC3B;;;AAGA;AACA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA,8CAA8C;AAC9C;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mEAAmE,mCAAmC;AACtG;AACA,eAAe,sCAAsC;AACrD,eAAe,sDAAsD;AACrE,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA,qCAAqC;;AAErC;AACA;AACA;AACA;AACA,+EAA+E;AAC/E;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA,yDAAyD;AACzD,8CAA8C;AAC9C;AACA;AACA;;AAEA,mCAAmC;AACnC;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA,8CAA8C;AAC9C,sDAAsD;AACtD;;;AAGA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA;AACA;AACA;;AAEA,sCAAsC;AACtC;AACA;;AAEA;;AAEA;AACA,WAAW;AACX;AACA;AACA,wDAAwD;AACxD;AACA;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,0BAA0B;AAC1B;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA,+CAA+C;AAC/C,0DAA0D;AAC1D;;;AAGA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA,sDAAsD,iBAAiB;AACvE;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;;AAEA;AACA,wCAAwC;AACxC,0DAA0D,oBAAoB;AAC9E;AACA,wBAAwB,iEAAiE;AACzF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,uCAAuC,qDAAqD;AAC5F;AACA,wBAAwB,gEAAgE;AACxF;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC,QAAQ,qDAAqD;AAC7D;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA,YAAY,qDAAqD;AACjE;AACA;AACA,eAAe,sCAAsC;AACrD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ,iEAAiE;AACzE;AACA,YAAY,wCAAwC;AACpD;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,wBAAwB,8CAA8C,UAAU,iBAAiB;AACjG;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA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ACA,aAAa,mEAAmE;AAChF;AACA;AACA,aAAa,OAAO;AACpB,eAAe,gEAAgE;AAC/E;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6DAA6D;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,yDAAyD;AACrF,UAAU,0GAA0G;AACpH;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,uEAAuE;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,QAAQ,oEAAoE;AAC5E;AACA;AACA,YAAY,6DAA6D;AACzE;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6BAA6B,+BAA+B;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ,yDAAyD;AACjE;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAE8B;AAC/B,kFAAG,WAAW,sFAAe;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,G;;;;;;;;;;;;ACtPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACL;AACG;AACG;AACJ;AACS;AACf;AACkH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0B;AACU;AACgB;AACc;AACI;AACtE;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,qEAAqE;AAClF;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB,2CAA2C;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA,yCAAyC;AACzC,8CAA8C;AAC9C;AACA,+CAA+C;AAC/C,gCAAgC;AAChC,6BAA6B;AAC7B;AACA,QAAQ,4EAA4E;AACpF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,QAAQ,+EAA+E;AACvF;AACA;AACA,eAAe,qEAAqE;AACpF,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,6BAA6B;AAC9C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qEAAqE;AACpF,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,yBAAyB,qBAAqB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAuC;AACtD,eAAe,6BAA6B;AAC5C;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAEsC;AACvC,kFAAG,mBAAmB,mFAAY,EAAE;AACpC;AACA,WAAW;AACX,aAAa;;AAEb;AACA;AACA;AACA,gBAAgB,6CAAI;AACpB;;AAEA,OAAO,yFAAU;AACjB;AACA,GAAG;;;AAGH;AACA;AACA,iBAAiB,6CAAI;AACrB;;AAEA,wBAAwB,mDAAS;AACjC,iBAAiB,6CAAI;AACrB;;AAEA;AACA,GAAG;AACH,C;;;;;;;;;;;;AC/SA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACD;AACL;AACiH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACoC;AACgB;AACkB;AACtE;AACA;AACA;AACA,iCAAiC,0EAA0E;AAC3G;AACA,qBAAqB,6CAA6C;AAClE;AACA,QAAQ,0DAA0D;AAClE,YAAY,oGAAoG;AAChH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iDAAiD;AACrF;AACA;AACA;AACA,gCAAgC,wCAAwC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,2BAA2B;AAClF;AACA,aAAa,wCAAwC;AACrD,aAAa,wCAAwC;AACrD,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,0BAA0B,kDAAS,GAAG;;AAEtC,gDAAgD;;;AAGhD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,QAAQ,iDAAiD,WAAW,8DAA8D;AAClI;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,qFAAqF;AACrF,iBAAiB,4DAA4D;AAC7E;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8DAA8D;AACtE;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAA4D;AACpE;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAiD;AACvF;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8FAA8F;AAC7G;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,wDAAwD;AAC1F;AACA;AACA,eAAe,8FAA8F;AAC7G;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,+CAA+C;AAC/C,4CAA4C;AAC5C,oDAAoD;AACpD;AACA,qDAAqD;AACrD,qCAAqC;AACrC,kCAAkC;AAClC;AACA,QAAQ,4EAA4E;AACpF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAyD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iDAAiD;AACnF;AACA;AACA;AACA;AACA,8BAA8B,wCAAwC;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,iBAAiB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,2BAA2B;AACrE;AACA;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,cAAc,aAAa;AAC3B;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,eAAe,kEAAkE;AACjF,eAAe,8BAA8B;AAC7C,6BAA6B,6CAA6C;AAC1E;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,4DAA4D,uCAAuC;AACnG;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B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ACA;AACA;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA,mDAAmD;;;AAGnD,yEAAyE,yBAAyB;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gEAAgE;AACxE,QAAQ,gEAAgE;AACxE;AACA,eAAe,iBAAiB;AAChC,eAAe,qDAAqD;AACpE;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kFAAkF;AACjG;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,sBAAsB;AACvC;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA,WAAW;;;AAGX;AACA;;AAEA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,6DAA6D;AACrE,6CAA6C,uCAAuC;AACpF;AACA,eAAe,wFAAwF;AACvG,eAAe,SAAS;AACxB,eAAe,OAAO,cAAc,6DAA6D;AACjG,iBAAiB,gBAAgB;AACjC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,sBAAsB,qCAAqC;AAC3D,yBAAyB,wCAAwC;AACjE;AACA,eAAe,+BAA+B;AAC9C,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,2CAA2C;AACjE;AACA,yBAAyB,wCAAwC;AACjE;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB,YAAY;AAC7B,iBAAiB,KAAK;AACtB,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA,YAAY,iEAAgB;AAC5B,oBAAoB,6DAAoB;AACxC;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;;;AAGA,YAAY,yFAAM,cAAc,iEAAgB;AAChD;AACA;AACA,oBAAoB,6DAAoB;AACxC;AACA;;AAEA,kCAAkC,0FAAO;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wCAAwC;AAChD,yCAAyC,6CAA6C;AACtF;AACA,eAAe,sBAAsB;AACrC,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB,uFAAuF;AACxG,mCAAmC,uCAAuC;AAC1E;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;;AAEA;AACA;AACA;;AAEA,UAAU,yFAAM;AAChB,YAAY,+DAAc;AAC1B;AACA,SAAS;AACT;;AAEA,8CAA8C,8CAAQ;AACtD;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA,4BAA4B,0DAAoB;;AAEhD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,4BAA4B,iDAAW;;AAEvC;AACA;AACA,WAAW;;;AAGX;;AAEA,wCAAwC,QAAQ;AAChD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAA6D;AACzE,6CAA6C,uCAAuC;AACpF;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO,cAAc,6DAA6D;AACjG,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,uCAAuC,6CAA6C;AACpF;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB,uCAAuC;AACxD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kEAAkE;;AAElE,YAAY,yFAAM;AAClB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,qBAAqB,6BAA6B;AAClD;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,mDAAa;AAC9B;AACA,OAAO;AACP;AACA;AACA,mCAAmC,qCAAqC;AACxE;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,oCAAoC;AACrD;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,+CAAS;AAC5B;;AAEA;AACA;AACA;AACA,+CAA+C,2CAA2C;AAC1F;AACA,oCAAoC,uCAAuC;AAC3E;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,OAAO;AACtB,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;AACA,4DAA4D,0FAAO;AACnE,OAAO;;;AAGP;;AAEA;AACA,eAAe,kDAAY;AAC3B;;AAEA,UAAU,yFAAM;AAChB,YAAY,+DAAc;AAC1B,8DAA8D,0FAAO;AACrE;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,YAAY,iEAAgB;AAC5B,oBAAoB,6DAAoB;AACxC;AACA;;AAEA,mBAAmB,kDAAY;AAC/B,OAAO;AACP;AACA;AACA;;AAEA;AACA,yBAAyB,kDAAY;AACrC;AACA,WAAW;AACX;AACA,6BAA6B,yFAAM,uFAAuF;;AAE1H;AACA,yBAAyB,kDAAY;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,iDAAiD;AACpF,QAAQ,2DAA2D;AACnE,oDAAoD;AACpD;AACA,yCAAyC,6CAA6C;AACtF;AACA,eAAe,yBAAyB;AACxC,iBAAiB;AACjB;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,0DAA0D,sEAAsE;AAChI;AACA;AACA,8CAA8C,sEAAsE;AACpH;AACA;AACA,mEAAmE;AACnE;AACA;AACA,uCAAuC,6CAA6C;AACpF;AACA;AACA;AACA,0CAA0C,uCAAuC;AACjF;AACA,eAAe,KAAK;AACpB,iBAAiB,kCAAkC;AACnD;AACA;;AAEA,GAAG;AACH;AACA;AACA,UAAU,+DAAc;AACxB;AACA,OAAO;;;AAGP;;AAEA;AACA;AACA;;AAEA,oDAAoD;;AAEpD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,oDAAoD;;AAEpD,qCAAqC,8CAAQ;AAC7C;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,sDAAsD;;;AAGtD,sCAAsC,8CAAQ;AAC9C;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,iDAAiD;AACrG,QAAQ,4EAA4E;AACpF,yCAAyC;AACzC,YAAY,gCAAgC;AAC5C;AACA,eAAe,wFAAwF;AACvG;AACA,iBAAiB,gCAAgC;AACjD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,0DAA0D,sEAAsE;AAChI;AACA;AACA,8CAA8C,sEAAsE;AACpH;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB,UAAU;AAC3B;;AAEA,GAAG;AACH;AACA;AACA,qDAAqD;;AAErD;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA;AACA,+DAA+D,yDAAyD;AACxH;AACA,eAAe,mDAAmD;AAClE;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6BAA6B,iFAAM;AACnC;AACA;AACA,iCAAiC;AACjC;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA,uCAAuC,oKAAc;AACrD;AACA;;AAEA;AACA;AACA,SAAS,EAAE;AACX;;AAEA,QAAQ,iFAAM;AACd;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,wBAAwB;AACrE;AACA,yDAAyD;AACzD,2DAA2D;AAC3D;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,6CAA6C;AACpE;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,sBAAsB,+FAAY,UAAU;;AAE5C;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,+DAA+D;AACjH;AACA,eAAe,UAAU;AACzB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,wFAAwF,6BAA6B;AACrH;AACA;AACA,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA,UAAU,yFAAM,eAAe,iEAAgB,wBAAwB,6DAAoB;AAC3F;AACA;AACA;;AAEA,uCAAuC,iEAAgB;AACvD;AACA;AACA;;AAEA,oDAAoD;AACpD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,wCAAwC;AAC7E;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA,gEAAgE;AAChE;AACA,uEAAuE,oCAAoC;AAC3G;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,2BAA2B;AAC3B;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;;AAGA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,iDAAiD;AACjD;AACA,yBAAyB;AACzB,kBAAkB;AAClB;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP,6BAA6B,EAAE;AAC/B;AACA;AACA,mHAAmH;AACnH;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;AACA;AACA,8EAA8E,kDAAkD;AAChI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,OAAO;AACxB;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,eAAe,qEAAoB;AACnC,OAAO;AACP;AACA;AACA;;;AAGA,qCAAqC,GAAG;;AAExC;;AAEA;;AAEA;;AAEA,8EAA8E;AAC9E;;;AAGA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;AACA;AACA;;;AAGA,aAAa,qEAAoB,iBAAiB;AAClD;AACA;AACA;AACA,iCAAiC;AACjC,0DAA0D;AAC1D;;AAEA,4CAA4C;;AAE5C;AACA;AACA,OAAO,uBAAuB;AAC9B;;;AAGA;AACA;AACA,OAAO,mEAAmE;AAC1E,iDAAiD,WAAW;;;AAG5D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,UAAU,4DAAS;AACnB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,KAAK;AACpB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,cAAc,iEAAgB;AAC9B;AACA;AACA,mCAAmC,kDAAkD;AACrF;AACA;AACA,eAAe,6BAA6B;AAC5C,eAAe,QAAQ;AACvB,iBAAiB,kCAAkC;AACnD;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B,oDAAc;AACzC,iCAAiC,kDAAY,sBAAsB,kDAAY;AAC/E;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,KAAK;AACpB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B,+FAAY;AACtC;AACA;AACA,cAAc,yFAAM;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,kBAAkB,oGAAiB,qBAAqB;AACxD;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;AACJ;AACA;AACA,WAAW,KAAK;AAChB,WAAW,eAAe;AAC1B,WAAW,QAAQ;AACnB,aAAa,QAAQ;;;AAGc;;AAEnC;AACA,gBAAgB,+FAAY;;AAE5B;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA,WAAW,KAAK;AAChB,WAAW,SAAS;;;AAGpB;AACA,yBAAyB,iFAAM;AAC/B;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW;AACX;AACA,WAAW,KAAK;AAChB,aAAa;;;AAGb;AACA,eAAe,yFAAM;AACrB;AACA,CAAC;AACD;AACA,WAAW,KAAK;AAChB,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,aAAa,OAAO;AACpB,G;;;;;;;;;;;;ACj9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACU;AACb;AACO;AACG;AACK;AACR;AACoH;AAClH;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkC;AACN;AACQ;AACc;AACA;AACR;AACN;AACoC;AACtB;AACgB;AACxC;AACsB;AACN;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAA0D;AAClE;AACA;AACA;AACA,IAAI,iEAAiE;AACrE;AACA,6CAA6C;AAC7C,mBAAmB,gFAAgF;AACnG;;AAEA;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,qEAAqE,iEAAiE;AACtI,0DAA0D,2DAA2D;AACrH;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA,WAAW,yEAAyE;AACpF,4CAA4C,yDAAyD;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,iDAAiD;AACjF;AACA;AACA;AACA;AACA,6BAA6B,wCAAwC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,iBAAiB;AACpD;AACA;AACA;AACA;AACA;AACA,mCAAmC,aAAa;AAChD;AACA;AACA;AACA,mCAAmC,2BAA2B;AAC9D;AACA,aAAa,wCAAwC;AACrD,aAAa,wCAAwC;AACrD,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA,cAAc,qFAAqF;AACnG;AACA,0DAA0D;AAC1D;AACA;AACA,eAAe,kEAAkE;AACjF,eAAe,8BAA8B;AAC7C,6BAA6B,6CAA6C;AAC1E;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sBAAsB,6CAA6C;AACnE;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,6BAA6B;AAC9C;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,8CAAI;AACrB;AACA;AACA,oBAAoB,2DAA2D;AAC/E;AACA;AACA,6CAA6C,kBAAkB;AAC/D;AACA;AACA,6CAA6C,kBAAkB,GAAG,cAAc;AAChF;AACA;AACA,gDAAgD,qBAAqB,GAAG,kBAAkB;AAC1F;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO,+BAA+B,6EAA6E;AAClI,eAAe,cAAc,yBAAyB,iEAAiE;AACvH,iBAAiB,qDAAqD;AACtE;;AAEA,GAAG;AACH;AACA;AACA;AACA,iCAAiC,0DAAgB;;AAEjD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,2DAA2D;AAC/E;AACA;AACA;AACA;AACA,+CAA+C,mCAAmC;AAClF;AACA;AACA,6CAA6C,2BAA2B,wBAAwB;AAChG;AACA;AACA,6CAA6C,uBAAuB;AACpE;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,qDAAqD;AACtE;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,0DAAgB;AACjC;AACA;AACA,oBAAoB,yDAAyD;AAC7E;AACA;AACA,8CAA8C,iBAAiB;AAC/D;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,mDAAmD;AACpE;;AAEA,GAAG;AACH;AACA;AACA,gCAAgC,yDAAe;AAC/C;AACA;AACA;AACA;AACA,oBAAoB,mDAAmD;AACvE;AACA;AACA,2CAA2C,iBAAiB;AAC5D;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,6CAA6C;AAC9D;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,sDAAY;AAC7B;AACA;AACA,oBAAoB,6CAA6C;AACjE;AACA;AACA,yCAAyC,iBAAiB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB,iBAAiB,uCAAuC;AACxD;;AAEA,GAAG;AACH;AACA;AACA,0BAA0B,mDAAS;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA,UAAU,gEAAa;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,iEAAiE;AACjE;AACA,eAAe,sBAAsB;AACrC,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,EAAE;AACjB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,mCAAmC;AAClD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,sBAAsB,2BAA2B;AACjD,uBAAuB;AACvB,iBAAiB,WAAW;AAC5B;AACA,kBAAkB,4EAA4E;AAC9F;AACA,qCAAqC,uFAAuF;AAC5H,QAAQ,qFAAqF;AAC7F,QAAQ,8EAA8E;AACtF,oCAAoC,6EAA6E;AACjH;AACA;AACA,eAAe,6DAA6D;AAC5E,aAAa;AACb,YAAY,6CAA6C;AACzD;AACA,eAAe,6DAA6D;AAC5E;AACA,eAAe,gEAAgE;AAC/E;AACA,eAAe,6DAA6D;AAC5E;AACA,eAAe,uDAAuD;AACtE;AACA;AACA;AACA;AACA,eAAe,oEAAoE;AACnF;AACA,iBAAiB,oEAAoE;AACrF;AACA;;AAEA,GAAG;AACH;AACA;AACA,qCAAqC,kDAAQ;AAC7C;A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CA;AACA,iBAAiB,+CAAK;AACtB;AACA;AACA,iDAAiD,6CAA6C;AAC9F;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,+CAAK;AAClB;AACA;AACA,kCAAkC,iDAAiD;AACnF;AACA;AACA,eAAe,mCAAmC;AAClD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,+CAAK;AAClB;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAiD;AACvF;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,iBAAiB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,2BAA2B;AACrF;AACA,eAAe,wCAAwC;AACvD,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,mDAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iCAAiC,kDAAQ;AACzC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;;;AAGpD;;AAEA;;AAEA;;AAEA;;AAEA,mCAAmC,kDAAQ;AAC3C,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;;AAGP;;AAEA,sDAAsD,4BAA4B;AAClF;AACA,wCAAwC;;AAExC;AAC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6E;AACpH;AACA;AACA;AACA,+CAA+C,iFAAiF;AAChI;AACA,6CAA6C,iEAAiE;AAC9G;AACA;AACA,eAAe,qDAAqD;AACpE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA;;AAEA;AACA,+BAA+B,mCAAmC;AAClE;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;AACA;AACA,2CAA2C,iEAAiE;AAC5G;AACA;AACA,eAAe,qDAAqD;AACpE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,mCAAmC;AAClE;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,4BAA4B;AAC5B;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;;;AAGiC;;AAErC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,oDAAoD;AACpG;AACA,cAAc,4EAA4E;AAC1F;AACA,WAAW,qCAAqC;AAChD,aAAa;AACb;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,qBAAqB,4EAA4E;AAClG;AACA,IAAI,+EAA+E;AACnF,IAAI,gEAAgE;AACpE;AACA,WAAW,qDAAqD;AAChE,WAAW,qDAAqD;AAChE,aAAa;;;AAGb;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;;;AAGH;AACA,CAAC;AACD;AACA;AACA,8BAA8B;AAC9B,2BAA2B;AAC3B;AACA,WAAW,qCAAqC;AAChD,aAAa,qCAAqC;AAClD;;;AAGA;AACA;;AAEA;AACA,eAAe,kDAAQ;AACvB;;AAEA;;AAEA;AACA,eAAe,kDAAQ;AACvB;;AAEA;AACA,CAAC;AACD;AACA,YAAY;AACZ,SAAS;AACT,eAAe;AACf;AACA,WAAW,qCAAqC;AAChD,aAAa,qCAAqC;;;AAGlD;AACA;AACA,eAAe,kDAAQ;AACvB;;AAEA;AACA,eAAe,kDAAQ;AACvB,GAAG;;;AAGH,+DAA+D;;AAE/D,yEAAyE;;AAEzE,qEAAqE,8CAAI,cAAc;;;AAGvF,aAAa,kDAAQ;AACrB,CAAC;AACD;AACA,WAAW,6BAA6B;AACxC;AACA,WAAW,6BAA6B;AACxC,aAAa,qCAAqC;;;AAGlD;AACA;AACA;AACA;;AAEA;;AAEA,aAAa,kDAAQ;AACrB,CAAC;AACD,IAAI,wCAAwC,KAAK,4EAA4E;AAC7H,IAAI,4EAA4E;AAChF,IAAI,gEAAgE;AACpE,IAAI,uDAAuD;AAC3D;AACA,WAAW,6DAA6D;AACxE,oCAAoC,yCAAyC;AAC7E,IAAI,iEAAiE;AACrE,IAAI,wDAAwD;AAC5D,IAAI,6EAA6E;AACjF,IAAI,6EAA6E;AACjF;AACA;AACA;AACA,WAAW,OAAO;;;AAGlB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;AAEA;AACA,yDAAyD,4EAA4E;AACrI,YAAY,4EAA4E;AACxF,YAAY,gEAAgE;AAC5E,YAAY,uDAAuD,GAAG,wCAAwC;AAC9G;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;;AAEA,yBAAyB,mCAAmC;AAC5D;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA,0BAA0B,8CAAI,EAAE,0DAAgB,EAAE,0DAAgB,EAAE,sDAAY,EAAE,mDAAS,EAAE;AAC7F;AACA,WAAW,6BAA6B;AACxC,aAAa,QAAQ;;AAErB;AACA;AACA,CAAC,eAAe,uDAAuD,MAAM,mDAAmD;AAChI,gBAAgB,6EAA6E;AAC7F,WAAW,6DAA6D;AACxE;AACA,WAAW,+BAA+B;AAC1C,WAAW,OAAO;;;AAGlB;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,uDAAuD;AAC9G,QAAQ,mDAAmD;AAC3D;AACA;AACA;AACA;AACA,cAAc,oFAAa;AAC3B;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,mCAAmC;AAC9C,aAAa;;;AAGb;AACA;AACA,C;;;;;;;;;;;;AC1lEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACJ;AACC;AAC0G;AACN;AAChB;AACU;AACkC;AACtB;AACnG;AACf;;AAEpC,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkD;AACsB;AACpB;AACwB;AAC5E;AACA;AACA,oCAAoC;AACpC;AACA;AACA,iDAAiD,oDAAoD;AACrG;AACA;AACA,IAAI,sHAAsH;AAC1H;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,wEAAwE;AAC3G;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA;AACA;AACA,YAAY,2CAA2C;AACvD;AACA,eAAe,6DAA6D;AAC5E;AACA;AACA,gBAAgB,qCAAqC;AACrD;;;AAGA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C,sCAAsC;AACtC,mCAAmC;AACnC,mDAAmD;AACnD,2CAA2C;AAC3C,wCAAwC;AACxC;AACA,4CAA4C;AAC5C,+CAA+C;AAC/C;AACA;AACA,MAAM,mEAAmE;AACzE;AACA,kCAAkC;AAClC,qDAAqD;AACrD,uBAAuB;AACvB;AACA,MAAM,4EAA4E;AAClF;AACA,aAAa,OAAO;AACpB;AACA,aAAa,OAAO;AACpB,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;;AAEA;AACA,+CAA+C,0JAAI,CAAC,qKAAe;AACnE,OAAO;AACP,oEAAoE,0JAAI,CAAC,qKAAe;AACxF;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;AACpD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;;AAEA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,0DAAgB;;AAEoB;AACtC,kFAAG,kBAAkB,sFAAe,E;;;;;;;;;;;;AC7LpC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACI;AACC;AACN;AACD;AACA;AACE;AACkG;AACQ;AACQ;AACvH;AACc;AACf;AACO;AACC;AACX;AACS;AACG;AACZ;AACqH;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0B;AACA;AACU;AACgC;AACF;AAClC;AACU;AAC1C;AACA;AACA;AACA;AACA,gCAAgC,yCAAyC;AACzE;AACA;AACA,MAAM;AACN,yBAAyB,2DAA2D;AACpF,MAAM;AACN,yBAAyB,2DAA2D;AACpF,MAAM;AACN,yBAAyB,mDAAmD;AAC5E,MAAM;AACN,yBAAyB,6CAA6C;AACtE,MAAM;AACN,yBAAyB,yDAAyD;AAClF;AACA;AACA,IAAI,0EAA0E;AAC9E,sBAAsB,gGAAgG;AACtH;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2CAA2C,GAAG;AACzE,qFAAqF;AACrF,4CAA4C;AAC5C;AACA;AACA,aAAa,OAAO;AACpB,aAAa,gBAAgB;AAC7B,aAAa,qEAAqE;AAClF;AACA;AACA;AACA;;AAEA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;AAGA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,IAAI;AACpB;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA,gCAAgC;AAChC,6BAA6B;AAC7B,qCAAqC;AACrC,kCAAkC;AAClC;AACA,sCAAsC;AACtC,0CAA0C;AAC1C;AACA;AACA,QAAQ,mDAAmD;AAC3D;AACA,4BAA4B;AAC5B,uCAAuC;AACvC,yBAAyB;AACzB;AACA,QAAQ,4EAA4E;AACpF;AACA,eAAe,OAAO;AACtB;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA,+DAA+D,2JAAI,CAAC,sKAAe;AACnF,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,6BAA6B;AAC9C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,iBAAiB;AAClC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB,wKAAkB;AACnC;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,+BAA+B;AAC9D,gCAAgC,oKAAc;AAC9C;AACA;;AAEA,sEAAsE;AACtE;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,yCAAyC;AACzC;AACA,eAAe,UAAU;AACzB;;AAEA,GAAG;AACH;AACA;AACA,8EAA8E,aAAa;AAC3F;AACA;;AAEA,8CAA8C,wBAAwB;AACtE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,kDAAkD;AAClD;AACA,eAAe,UAAU;AACzB;;AAEA,GAAG;AACH;AACA;AACA,gFAAgF,eAAe;AAC/F;AACA;;AAEA,6CAA6C,wBAAwB;AACrE;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,iDAAiD;AACrG;AACA;AACA,eAAe,8BAA8B;AAC7C,YAAY,yCAAyC;AACrD,iBAAiB,wCAAwC;AACzD;;AAEA,GAAG;AACH;AACA;AACA,gFAAgF,eAAe;AAC/F;AACA;;AAEA,oBAAoB,gKAAU,CAAC,iDAAO;;AAEtC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,0BAA0B,6BAA6B;AACvD;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,qBAAqB;AACjD;AACA,SAAS;AACT;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO,gBAAgB;AACvB;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,iBAAiB,mCAAmC;AACpD;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;;;AAGP,+EAA+E;AAC/E;;AAEA;AACA,6CAA6C;;AAE7C,iEAAiE;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,6DAA6D;AACrE;AACA;AACA;AACA;AACA,eAAe,qEAAqE;AACpF;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qEAAqE;AACpF;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA,yBAAyB,qBAAqB;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;AACA;;AAEA,GAAG;AACH;AACA;AACA,2CAA2C;;;AAG3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC,8CAA8C;AAC9C;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,sCAAsC;AACtC,iDAAiD;AACjD;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,UAAU,gEAAa;AACvB;;AAEA,uCAAuC,oBAAoB;AAC3D;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,0DAA0D;AAC1D;AACA;AACA;AACA,eAAe,sBAAsB;AACrC;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sBAAsB,uCAAuC;AAC7D;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,8CAAI,EAAE;AACR;AACA;AACA;AACA,WAAW,WAAW;AACtB,aAAa,IAAI;;;AAGa;;AAE9B;AACA,MAAM,gEAAa;AACnB,YAAY,0FAAW;AACvB,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD,yBAAyB,oKAAc;AACvC;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,qBAAqB;AAChC,WAAW,OAAO;;;AAGlB;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA,GAAG,6CAA6C;;;AAGhD,wDAAwD;AACxD,oCAAoC;AACpC,GAAG;;;AAGH,iBAAiB,yBAAyB;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yFAAyF;;AAEzF;A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wD;AAC1H;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,UAAU,gDAAgD;AAC1D;AACA;AACA;AACA,4BAA4B,oBAAoB;AAChD;AACA,aAAa,8BAA8B;AAC3C;AACA,kEAAkE,iDAAiD;AACnH;AACA,MAAM,qDAAqD,KAAK,2DAA2D;AAC3H,aAAa,cAAc;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC;AACA,aAAa,OAAO;AACpB;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA,4EAA4E,aAAa;AACzF;AACA;;AAEA,0CAA0C,sBAAsB;AAChE;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,iDAAiD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,YAAY;AAC7B,iBAAiB,mCAAmC;AACpD,iBAAiB,8BAA8B;AAC/C,iBAAiB,OAAO;AACxB,iBAAiB,QAAQ;AACzB,iBAAiB,MAAM;AACvB,iBAAiB,MAAM;AACvB,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA,+EAA+E,eAAe;AAC9F;AACA;;AAEA,2CAA2C,uBAAuB;AAClE;;AAEA;AACA;;AAEA;AACA,6BAA6B,+BAA+B;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,kDAAkD;AAC1D;AACA;AACA;AACA,eAAe,sCAAsC;AACrD,iBAAiB,oBAAoB;AACrC,YAAY,4DAA4D;AACxE;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,+EAA+E,eAAe;AAC9F;AACA;;AAEA,4CAA4C,wBAAwB;AACpE;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG,kCAAkC,iDAAiD;AACvF;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,8BAA8B;AACzC,aAAa,YAAY;;;AAGK;;AAE9B;AACA;AACA;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,QAAQ;;;AAGrB;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,OAAO;AAClB;AACA,WAAW,mCAAmC;AAC9C,aAAa,WAAW;;;AAGxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,sBAAsB;AACjC,WAAW,mCAAmC;AAC9C,aAAa,WAAW;;;AAGxB;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,OAAO;AAClB;AACA,WAAW,mCAAmC;AAC9C,aAAa,WAAW;;;AAGxB;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,2FAA2F,eAAe;AAC1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,6DAA6D;AAC/H;AACA;AACA,aAAa,8BAA8B;AAC3C;AACA,cAAc,cAAc;AAC5B,cAAc,oCAAoC;AAClD,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;AACrB;AACA,G;;;;;;;;;;;;ACzhBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwE;AACF;AAClB;AACoB;AACtC;;AAEa;AAC/C;AACA;AACA;AACA;AACA,YAAY,yCAAyC;AACrD,OAAO,mCAAmC;AAC1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA,gDAAgD,sDAAsD;AACtG;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA,uBAAuB,6CAA6C;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;AACtB,qBAAqB;AACrB,sBAAsB;AACtB;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;AACA,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,yCAAyC,KAAK;AAChE;AACA;AACA,eAAe,6BAA6B;AAC5C,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,2DAA2D;AAChF;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,2FAAa;;AAEhC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2DAA2D;AAChF;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uCAAuC;AACtD,eAAe,6BAA6B;AAC5C;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,uDAAK,OAAO;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,2DAA2D,OAAO;AACvF;AACA;AACA,mCAAmC;AACnC,gCAAgC;AAChC,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,yCAAyC;AACzC,0CAA0C;AAC1C;AACA;AACA;AACA,+BAA+B;AAC/B,0CAA0C;AAC1C,+CAA+C;AAC/C;AACA;AACA;AACA,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV,UAAU;AACV;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAA6B;AAC9C;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA,sBAAsB;;AAEtB;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,yDAAyD;AACjE,QAAQ,6EAA6E;AACrF;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA,uBAAuB,kDAAkD;AACzE;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;;AAEA;AACA,uBAAuB,kDAAkD;AACzE;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;;AAEA;AACA,eAAe,8CAA8C;AAC7D;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;;AAEA;AACA;AACA;;;AAG2B;AAC3B,iFAAG,OAAO,kFAAY,E;;;;;;;;;;;;ACtatB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkD;AAClD;AACA,IAAI,6DAA6D;AACjE;AACA;AACA,IAAI;AACJ,SAAS,+CAA+C;AACxD;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;;AAEA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,yDAAgB;AAClB;AACA;AACA;AACA,kBAAkB,8DAA8D;AAChF;AACA;AACA,IAAI,8DAA8D;AAClE,OAAO,mCAAmC,OAAO,+CAA+C;AAChG;AACA;AACA;AACA,WAAW,sDAAsD;AACjE;;;;;;;;;;;;;;;ACnEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkD;AAClD;AACA,IAAI,mFAAmF;AACvF,IAAI,qFAAqF;AACzF,IAAI,+EAA+E;AACnF;AACA,+CAA+C,mCAAmC;AAClF;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;;AAEA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,yDAAgB;AAClB;AACA;AACA;AACA,kBAAkB,0EAA0E;AAC5F;AACA,sBAAsB,0EAA0E;AAChG,IAAI,mCAAmC;AACvC;AACA;AACA;AACA,WAAW,sDAAsD;AACjE;;AAEA;AACA;AACA;AACA,kBAAkB,0EAA0E;AAC5F;AACA,sBAAsB,0EAA0E;AAChG,IAAI,mCAAmC;AACvC;AACA;AACA;AACA,WAAW,sDAAsD;AACjE;;AAEA;AACA;AACA;AACA,kBAAkB,0EAA0E;AAC5F;AACA,sBAAsB,0EAA0E;AAChG,IAAI,mCAAmC;AACvC;AACA;AACA;AACA,WAAW,sDAAsD;AACjE;;;;;;;;;;;;;;;ACnGA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACmC;AACnC;AACA,oDAAoD,2CAA2C;AAC/F;AACA;AACA;;AAEA;AACA;AACA,aAAa,6BAA6B;AAC1C,aAAa,MAAM;AACnB,aAAa,OAAO;AACpB;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qCAAqC;AACrD;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,MAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;;AAEA;AACA,IAAI,wDAAM;AACV;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AAC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ACA;;AAEA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,gDAAgD;AACzE;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,yBAAyB,6CAA6C;AACtE;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,kFAAkF,6KAAsB;AACxG;AACA;AACA;AACA,0BAA0B,2DAA2D;AACrF;AACA;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,MAAM,2JAAI,CAAC,sKAAe;;AAE1B;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,MAAM,2JAAI,CAAC,sKAAe;;AAE1B;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,MAAM,2JAAI,CAAC,sKAAe;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,2CAA2C;;AAE3C;AACA,sCAAsC;AACtC;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA,qEAAqE;;AAErE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA,qEAAqE;;;AAGrE;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,qEAAoB;AAC7C;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA,8BAA8B,iEAAgB;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd;;AAEA,eAAe,8DAAW;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;;AAEA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kHAAkH;;AAElH;AACA,8BAA8B,mDAAa;AAC3C;AACA;AACA;;AAEA,oEAAoE;AACpE;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,SAAS;AACT;AACA;AACA,WAAW;;;AAGX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,kDAAQ;AACV;AACA;AACA;AACA;AACA,kBAAkB,oEAAoE;AACtF;AACA,sBAAsB,oEAAoE;AAC1F,IAAI,mCAAmC;AACvC;AACA;AACA;AACA,WAAW;AACX;AACA,iCAAiC,+DAA+D;AAChG,IAAI,mEAAmE;AACvE,WAAW,4CAA4C;AACvD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,cAAc,OAAO;AACrB,cAAc,6BAA6B;AAC3C,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,cAAc,OAAO;AACrB,cAAc,mCAAmC;AACjD,cAAc,qCAAqC;AACnD,cAAc,qCAAqC;AACnD;;;;;;;;;;;;;;;ACpbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC6E;AACzB;AACpD;AACA;AACA,sCAAsC,2CAA2C;AACjF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,yBAAyB,2CAA2C;AACpE;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,MAAM,mCAAmC,YAAY;AACrD,yBAAyB,wBAAwB;AACjD;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAyD;AACjE;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,OAAO;AACtB;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAE8B;AAC/B,iFAAG,WAAW,sFAAe,E;;;;;;;;;;;;AC5G7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACL;AACG;AACP;AACgH;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACkC;AACgB;AACb;AACrC;AACA;AACA;AACA,IAAI,oEAAoE;AACxE,IAAI,iEAAiE;AACrE;AACA;AACA,+CAA+C,mCAAmC;AAClF;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA,QAAQ,0EAA0E;AAClF,mBAAmB,iEAAiE;AACpF;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA,8CAA8C,0DAAgB;AAC9D;AACA,8BAA8B,6DAA6D;AAC3F;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,gDAAgD;AACzE;AACA;AACA,gBAAgB,6CAA6C;AAC7D;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;;AAEA,8CAA8C,2DAAQ;AACtD;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA,iDAAiD;;AAEjD;AACA;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,MAAM,0JAAI,CAAC,sKAAe;;AAE1B;;AAEA;AACA;AACA;AACA,mCAAmC,gFAAgF;AACnH,oCAAoC,iEAAiE;AACrG,YAAY,qEAAqE;AACjF;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;;AAGP,oCAAoC;AACpC;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,UAAU;;AAEV,oDAAoD;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,kDAAQ;AACV;AACA;AACA;AACA;AACA,kBAAkB,sEAAsE;AACxF;AACA,sBAAsB,sEAAsE;AAC5F,IAAI,mCAAmC;AACvC;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,uDAAuD;AAClE,IAAI,qDAAqD;AACzD,WAAW,uCAAuC;AAClD,WAAW,UAAU;AACrB;;AAEA;AACA;AACA;AACA,kBAAkB,sEAAsE;AACxF;AACA,sBAAsB,sEAAsE;AAC5F,IAAI,mCAAmC;AACvC;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,uDAAuD;AAClE,IAAI,qDAAqD;AACzD,WAAW,uCAAuC;AAClD,WAAW,UAAU;AACrB;;;;;;;;;;;;;;;ACxQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACO;AACG;AACsG;AACzG;AACH;AACP;AACS;AACG;AACP;;AAEtC,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,+EAA+E;AACnH;AACA,WAAW,OAAO;AAClB,WAAW,6BAA6B;AACxC,WAAW,mCAAmC;AAC9C;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,6CAA6C;AAC7C;;AAEA;AACA;AACA,KAAK;AACL,GAAG;;;AAGH;AACA;AACA;AACA,GAAG,EAAE;;AAEL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,QAAQ,6EAA6E;AACrF;AACA,WAAW,6BAA6B;AACxC,WAAW,mCAAmC;AAC9C;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6EAA6E;AACjF,IAAI,+EAA+E;AACnF;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA,WAAW,iDAAiD;AAC5D,WAAW,mCAAmC;AAC9C,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6EAA6E;AACjF,IAAI,+EAA+E;AACnF;AACA;AACA,WAAW,iDAAiD;AAC5D,WAAW,mCAAmC;AAC9C,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,6EAA6E;AACjF;AACA;AACA,WAAW,mCAAmC;AAC9C,aAAa;AACb;;AAEO;AACP,6BAA6B;;AAE7B;AACA;AACA,GAAG;;;AAGH;AACA;AACA,GAAG,EAAE;;AAEL;AACA;AACA;;AAEA;AACA,6CAA6C;;AAE7C;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,iDAAiD;AAC5D,aAAa,QAAQ;;AAErB;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD,wBAAwB,oKAAc;AACtC;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,iDAAiD;AAC5D,WAAW,mCAAmC;AAC9C,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,QAAQ;;;AAGrB;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA,GAAG;AACH;AACA;;;AAGA,mCAAmC;;AAEnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,aAAa;;;AAGb;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACpRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACsC;AACkC;AACA;AACxB;;AAED;AAC/C;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,MAAM;AACN,MAAM;AACN;;AAEA;AACA;AACA;AACA;AACA,aAAa,kFAAkF;AAC/F,aAAa,OAAO;AACpB;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,qCAAqC;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,0DAA0D;AAClE;AACA;AACA;AACA,kEAAkE,SAAS;AAC3E,kEAAkE,wBAAwB,GAAG,yBAAyB;AACtH,mDAAmD;AACnD;AACA,eAAe,SAAS,+BAA+B,oDAAoD;AAC3G;AACA,eAAe,OAAO,iDAAiD,+CAA+C;AACtH;AACA,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,2BAA2B,mDAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,mCAAmC,KAAK;AAC1D;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,uCAAuC;AACvC;AACA,wCAAwC;AACxC,iCAAiC;AACjC,+BAA+B;AAC/B;AACA,QAAQ,4EAA4E;AACpF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qCAAqC;AACpD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA,4FAA4F;;AAE5F;AACA,2CAA2C;;AAE3C,mBAAmB,2FAAa;;AAEhC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,0DAA0D;AAC5E;AACA,eAAe,OAAO,iDAAiD;AACvE,eAAe,+BAA+B;AAC9C,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB,mDAAU;AAC3B;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAoD;AAChE;AACA;AACA,UAAU,6CAA6C;AACvD;AACA;AACA;AACA,UAAU,yDAAyD;AACnE,UAAU,wDAAwD;AAClE;AACA;AACA,eAAe,kEAAkE;AACjF,eAAe,8BAA8B;AAC7C,6BAA6B,6CAA6C;AAC1E;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD,yDAAyD;AAClH;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,mDAAmD,yDAAyD;AAC5G;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAyE;AACjF;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,mCAAmC,wDAAe;AAClD;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,oBAAoB,mFAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,kBAAkB,mFAAa;AAC/B;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA,kBAAkB,mFAAa;AAC/B;AACA,SAAS;AACT;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA;A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CtG;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C,iBAAiB,uCAAuC;AACxD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,wCAAwC,2CAA2C,YAAY,2CAA2C;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uGAAuG;AACvG,0GAA0G;AAC1G,8DAA8D;AAC9D;AACA,wGAAwG;AACxG,0DAA0D;AAC1D;AACA,eAAe,+BAA+B;AAC9C,iBAAiB,oCAAoC;AACrD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,kBAAkB,0DAA0D;AAC5E;AACA,eAAe,OAAO,iDAAiD,+CAA+C;AACtH,eAAe,qCAAqC;AACpD,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,iBAAiB,oDAAU;AAC3B;AACA;AACA,kBAAkB,mCAAmC,KAAK;AAC1D;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,mDAAmD,8CAA8C;AACjG;AACA;AACA,yBAAyB,+CAA+C;AACxE,+CAA+C,yCAAyC;AACxF,YAAY,oDAAoD;AAChE;AACA,oEAAoE,+CAA+C;AACnH;AACA;AACA,eAAe,OAAO,iDAAiD,+CAA+C;AACtH,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAU;AACzC;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA,mDAAmD,qDAAqD;AACxG;AACA;AACA,yBAAyB,+CAA+C;AACxE,QAAQ,qDAAqD,OAAO,oDAAoD;AACxH;AACA,oEAAoE,+CAA+C;AACnH;AACA;AACA,eAAe,OAAO,iDAAiD,+CAA+C;AACtH,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,oDAAU;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,4BAA4B;AAC5B,iCAAiC;AACjC;AACA,kCAAkC;AAClC,8BAA8B;AAC9B,gCAAgC;AAChC;AACA,QAAQ,4EAA4E;AACpF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kFAAkF;AACjG;AACA,eAAe,OAAO;AACtB,eAAe,kFAAkF;AACjG;AACA,eAAe,OAAO;AACtB,iBAAiB,+BAA+B;AAChD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uDAAuD,iDAAiD;AACxG,QAAQ,6CAA6C,2BAA2B,yDAAyD;AACzI;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,0BAA0B,kDAAQ,iCAAiC,kDAAQ;AAC3E;AACA;AACA,sDAAsD,oDAAoD;AAC1G;AACA;AACA;AACA,eAAe,qCAAqC;AACpD,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iDAAiD;AACnF;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,iDAAiD,6CAA6C;AAC9F;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,8CAA8C,kDAAQ;AACtD;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;;;AAGwB;;AAE5B;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AClqBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACU;AACH;AACA;AACH;AACE;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AAC8B;AACQ;AAC2D;AAC7C;AACE;AACY;AACJ;AACc;AACJ;AACV;AACA;AACA;AACV;AACpD;AACA;AACA,QAAQ,2FAA2F;AACnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAmD;AACrE;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,6CAA6C;AAC1D,aAAa,uDAAuD;AACpE;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA,oDAAoD,yBAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uCAAuC;AACpD,aAAa,6BAA6B;AAC1C;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oBAAoB,oFAAa;AACjC;AACA;AACA;AACA;AACA,sCAAsC,wBAAwB,GAAG,sBAAsB,MAAM,mBAAmB;AAChH;AACA;AACA;AACA;AACA;AACA,8BAA8B,wCAAwC;AACtE;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,+BAA+B;;AAE/B;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA,SAAS;AACT;AACA;;AAEA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;AACA,mEAAmE;;AAEnE;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,iEAAgB;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;;AAEA;AACA;AACA;;AAEA,cAAc,yFAAM;AACpB;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,eAAe,KAAK;AACpB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,8DAA8D;;AAE9D,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,+DAA+D;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,eAAe,kDAAY;AAC3B,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,4BAA4B;;;AAG5B;AACA;;AAEA,sBAAsB,yFAAM,qBAAqB,iEAAgB;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,6CAA6C;;AAE7C,WAAW,iEAAgB;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA,UAAU,+DAAc;AACxB;AACA,OAAO;AACP,uDAAuD,6DAAoB;AAC3E;;AAEA;AACA;AACA;AACA,6BAA6B,uCAAuC;AACpE;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qDAAqD;;AAErD;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;;AAEA,gCAAgC,8CAAQ,yBAAyB,8CAAQ;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,eAAe,OAAO;AACtB,eAAe,qCAAqC;AACpD;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,sDAAa;AACpC;;AAEA;AACA,sBAAsB,uFAAQ;;AAE9B;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP,wDAAwD;;AAExD;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,OAAO;AACtB,eAAe,qCAAqC;AACpD;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,GAAG;AACV;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA,YAAY,2FAAQ;AACpB;AACA,WAAW;AACX;AACA,YAAY,yFAAM;AAClB,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,sBAAsB;AACrC,iBAAiB,eAAe,mCAAmC,6BAA6B;AAChG;;AAEA,GAAG;AACH;AACA;AACA;AACA,aAAa,mFAAI;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe,iDAAiD,6BAA6B;AAC5G,eAAe,sBAAsB;AACrC,eAAe,aAAa;AAC5B,iBAAiB,eAAe;AAChC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;;AAEA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,2CAA2C,mFAAI;AAC/C;AACA,aAAa;AACb,qCAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,+BAA+B,mFAAI;AACnC;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,+BAA+B,mCAAmC;AAClE;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,mFAAmF;;AAEnF;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mDAAmD;;AAEnD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA,0EAA0E;;AAE1E;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;;AAGA;AACA,4EAA4E;AAC5E;;AAEA;AACA;AACA,sDAAsD;;AAEtD,UAAU,0EAAG;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAU;AACzB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,8DAA8D;AAC9D;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,6BAA6B,mCAAmC;AAChE;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAE8B;AAC/B,kFAAG,WAAW,sFAAe,EAAE;AAC/B;AACA;AACA,WAAW,mCAAmC;AAC9C,aAAa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,qBAAqB;AAChC,WAAW,OAAO;AAClB,aAAa,KAAK;;;AAGlB;AACA;AACA;;AAEA,MAAM,yFAAM;AACZ,2BAA2B,sDAAa;AACxC;AACA,GAAG;AACH,gDAAgD,sDAAa;;AAE7D;AACA;AACA,KAAK;AACL,MAAM,2FAAQ;AACd;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa;;;AAGb;AACA,SAAS,yFAAM,WAAW,yFAAM,YAAY,yFAAM,YAAY,yFAAM;AACpE,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO,yCAAyC,mEAAmE;AAC9H,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa;;;AAGb;AACA;AACA;AACA;AACA,GAAG;AACH,WAAW,yFAAM,oBAAoB,yFAAM;AAC3C;AACA,KAAK;AACL;AACA;AACA,OAAO;;;AAGP;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA,4BAA4B;AAC5B;;AAEA;AACA;AACA;;AAEA,sDAAsD;AACtD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,SAAS;AACpB,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,EAAE;;AAEL;AACA;AACA,C;;;;;;;;;;;;AC9rCA;AAAA;AAAA;AAAA;AA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ACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2BAA2B;AACnF;AACA,aAAa,wCAAwC;AACrD,aAAa,wCAAwC;AACrD,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,aAAa,QAAQ;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,QAAQ,iDAAiD,WAAW,8DAA8D;AAClI;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,qFAAqF;AACrF,iBAAiB,4DAA4D;AAC7E;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,QAAQ,8DAA8D;AACtE;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,4DAA4D;AACpE;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8FAA8F;AAC7G;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,wDAAwD;AAC1F;AACA;AACA,eAAe,8FAA8F;AAC7G;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,yBAAyB,oFAAK;AAC9B,yBAAyB,oFAAK,6BAA6B;;AAE3D;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa;;AAEb,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,sCAAsC,iDAAiD;AACvF;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,uCAAuC,iDAAO;AAC9C;AACA;AACA;AACA,QAAQ,yDAAyD;AACjE;AACA;AACA;AACA;AACA;AACA;AACA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A+B;AAC3F;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,mBAAmB;AAC3B;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,8BAA8B,aAAa,WAAW,cAAc;AACpE;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAyE;AACjF;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAE+B;AAChC,kFAAG,YAAY,mFAAY;AAC3B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,G;;;;;;;;;;;;ACj7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0B;AAC1B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,mCAAmC,kEAAkE;AACrG;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,wBAAwB;AACxB,6BAA6B;AAC7B,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,2BAA2B;AAC3B,yBAAyB;AACzB;AACA,MAAM,4EAA4E;AAClF;AACA,aAAa,OAAO;AACpB,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA,sDAAsD,0JAAI,CAAC,qKAAe;AAC1E;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAA6B;AAC9C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,gCAAgC;AAChC;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gCAAgC,kEAAkE;AAClG;AACA;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6CAAI;;;;;;;;;;;;;;ACpKN;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwE;AACxE;AACA,4CAA4C,mCAAmC;AAC/E,IAAI,+CAA+C,sBAAsB,mCAAmC;AAC5G;AACA,sCAAsC,wCAAwC;AAC9E;AACA;AACA;AACA,QAAQ,uDAAuD;AAC/D;AACA;AACA;AACA,iGAAiG,mCAAmC;AACpI;AACA,uEAAuE,mCAAmC;AAC1G,2BAA2B,yCAAyC;AACpE;AACA,yCAAyC,gEAAgE;AACzG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,6BAA6B;AAC1C,aAAa,OAAO,yBAAyB;AAC7C;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA,yBAAyB,mCAAmC;AAC5D;AACA;AACA,gBAAgB,6BAA6B;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAa;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mFAAa;AAC7B;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,oCAAoC;AACpC,yCAAyC;AACzC;AACA,0CAA0C;AAC1C,kCAAkC;AAClC,gCAAgC;AAChC;AACA,QAAQ,4EAA4E;AACpF;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ,iDAAiD,UAAU;AAClF,eAAe,QAAQ;AACvB;AACA,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,sFAAsF;AACtF;AACA;AACA,wEAAwE;AACxE,SAAS,uEAAuE;AAChF;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,QAAQ,yDAAyD;AACjE,QAAQ,6EAA6E;AACrF;AACA;AACA,cA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gC;AACwC;AAC9C;AACwC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0GAA0G;AAC9G;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAA0D;AAC1E,kBAAkB,8EAA8E;AAChG;AACA;AACA,IAAI,0GAA0G;AAC9G;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA;AACA;AACA,aAAa,6DAA6D;AAC1E;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,gBAAgB;AAC7B;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,iBAAiB,KAAK;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,gCAAgC;AAChC,6BAA6B;AAC7B,uCAAuC;AACvC,qCAAqC;AACrC,kCAAkC;AAClC;AACA,sCAAsC;AACtC,yCAAyC;AACzC;AACA;AACA,MAAM,uDAAuD;AAC7D;AACA,6BAA6B;AAC7B,0CAA0C;AAC1C,wBAAwB;AACxB;AACA,MAAM,4EAA4E;AAClF;AACA,aAAa,OAAO;AACpB;AACA,aAAa,OAAO;AACpB,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,2JAAI,CAAC,sKAAe;AAC7D,OAAO;AACP,8DAA8D,2JAAI,CAAC,sKAAe;AAClF;AACA;AACA;AACA,kBAAkB,sDAAsD;AACxE,eAAe,6DAA6D;AAC5E;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,qCAAqC,8CAAI;AACzC;AACA,mCAAmC,6CAA6C;AAChF;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;AACA;AACA;AACA,qBAAqB,6CAA6C;AAClE,QAAQ,mDAAmD;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,iDAAO;AACT;AACA,2DAA2D,oDAAoD;AAC/G;AACA,2BAA2B,gFAAgF;AAC3G;AACA;AACA;AACA,WAAW,6BAA6B;AACxC;;;AAGgC;AACzB;AACP;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA,aAAa;;AAEb;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA,sBAAsB,gFAAQ;AAC9B;AACA,qGAAqG;;AAErG;AACA;AACA;AACA,8EAA8E;;AAE9E;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA,SAAS;;;AAGT;AACA;AACA,SAAS;;;AAGT;AACA,OAAO,EAAE;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACvRA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AAC0G;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkD;AAClB;AACN;AACgB;AACR;AACN;AACQ;AACpC;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uEAAuE;AAC3E;AACA,6CAA6C;AAC7C,mBAAmB,gFAAgF;AACnG;AACA,uDAAuD,0DAA0D;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,qKAAe;AACnB;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA,sBAAsB,2DAA2D;AACjF;AACA,eAAe,qEAAqE;AACpF;AACA,iBAAiB,qDAAqD;AACtE;AACA;AACA,iBAAiB,yDAAgB;AACjC;AACA;AACA,sBAAsB,yCAAyC;AAC/D;AACA;AACA;AACA,4CAA4C,2CAA2C,GAAG;AAC1F,sGAAsG;AACtG,6DAA6D;AAC7D;AACA,eAAe,OAAO;AACtB,eAAe,gBAAgB;AAC/B,eAAe,qEAAqE;AACpF;AACA,iBAAiB,mCAAmC;AACpD;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,gDAAO;AACxB;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA,eAAe,OAAO;AACtB,iBAAiB,6BAA6B;AAC9C;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,6CAAI;AACrB;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,QAAQ;AACvB;AACA,iBAAiB,mCAAmC;AACpD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,qEAAqE;AACpF,eAAe,wFAAwF;AACvG;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,qEAAqE;AACpF,eAAe,wFAAwF;AACvG;AACA;AACA,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,wFAAwF;AACvG;AACA;AACA,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,iBAAiB,qCAAqC;AACtD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD,eAAe,mCAAmC;AAClD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD,iBAAiB,wCAAwC;AACzD;AACA;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B,gDAAO;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,OAAO;AACtB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA,UAAU,+DAAa;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C,iEAAiE;AACjE;AACA;AACA,eAAe,sBAAsB;AACrC,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,EAAE;AACjB,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,eAAe,mCAAmC;AAClD,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAoD;AAChE;AACA;AACA,UAAU,6CAA6C;AACvD;AACA;AACA;AACA,UAAU,4BAA4B;AACtC,UAAU,2BAA2B;AACrC;AACA,eAAe,mEAAmE;AAClF,eAAe,8BAA8B;AAC7C,6BAA6B,6CAA6C;AAC1E;;AAEA,GAAG;AACH;AACA;AACA,aAAa,iDAAQ;AACrB;AACA;AACA;AACA;AACA,eAAe,6BAA6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gD;AAChD;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,QAAQ,uCAAuC;AAC/C;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA,4CAA4C;;AAE5C;AACA;AACA;AACA,OAAO;;AAEP,iFAAiF;;;AAGjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,mEAAmE;AAClI,YAAY,qEAAqE;AACjF,QAAQ,0BAA0B;AAClC;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,kDAAkD,oDAAoD;AACtG,iBAAiB,8CAA8C;AAC/D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D,6BAA6B,oKAAc;AAC3C;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,wDAAwD;AACzE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,sCAAsC,gBAAgB;AACtD;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,QAAQ,4GAA0B;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,8DAA8D;AACtE;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB,EAAE;AACnB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,cAAc,KAAK,mBAAmB;AAC5D,sBAAsB,cAAc,KAAK,mBAAmB;AAC5D,cAAc,iFAAiF;AAC/F;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA,oCAAoC;AACpC;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP,QAAQ,oFAAa;AACrB;AACA;AACA;AACA,yBAAyB,yDAAyD;AAClF,8DAA8D,4BAA4B;AAC1F;AACA,wGAAwG;AACxG;AACA;AACA,eAAe,6DAA6D;AAC5E;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,oDAAoD;AAChE;AACA;AACA,UAAU,6CAA6C;AACvD;AACA;AACA;AACA,UAAU,4BAA4B;AACtC,UAAU,2BAA2B;AACrC;AACA,eAAe,mEAAmE;AAClF,eAAe,8BAA8B;AAC7C,6BAA6B,6CAA6C;AAC1E;;AAEA,GAAG;AACH;AACA;AACA,aAAa,kDAAQ;AACrB;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,kDAAQ;AACrB;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,kDAAQ;AACrB;AACA;AACA;AACA;AACA,uDAAuD,2CAA2C;AAClG;AACA,eAAe,qCAAqC;AACpD,eAAe,qCAAqC;AACpD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,+CAAK;AACtB;AACA;AACA,iDAAiD,6CAA6C;AAC9F;AACA,eAAe,6BAA6B;AAC5C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,+CAAK;AAClB;AACA;AACA,kCAAkC,iDAAiD;AACnF;AACA;AACA,eAAe,mCAAmC;AAClD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa,+CAAK;AAClB;AACA;AACA,kBAAkB,6CAA6C;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,iDAAiD;AACvF;AACA;AACA;AACA,kCAAkC,wCAAwC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iBAAiB;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,2BAA2B;AACnF;AACA,eAAe,wCAAwC;AACvD,eAAe,wCAAwC;AACvD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,iBAAiB,mDAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAA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AA4F;AACxH;AACA,iBAAiB,gEAAgE;AACjF;AACA,YAAY,0DAA0D;AACtE;;AAEA;AACA;AACA,+BAA+B,4FAA4F;AAC3H;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,wEAAwE;AACxG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;;;;;;;;;;;;;;ACtNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACZ;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAE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G;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACG;AACV;AAClD;AACA;AACA;AACA,uCAAuC,kCAAkC;AACzE,YAAY,6BAA6B;AACzC;AACA,4CAA4C,8DAA8D;AAC1G,IAAI,oDAAoD;AACxD;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,mEAAgB,EAAE,8DAAW;AAC3C;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;AACR;AACA;AACA,4BAA4B,8DAA8D;AAC1F;AACA,iBAAiB,4CAA4C;AAC7D;AACA,YAAY,sCAAsC;AAClD;;AAEA;AACA;AACA,+BAA+B,8DAA8D;AAC7F;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sBAAsB;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,oDAAoD;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;;;;;;;;;;;;;;ACrNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACZ;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyC;AACH;AACtC;AACA,0CAA0C;AAC1C;AACA;AACA,kCAAkC,4BAA4B;AAC9D;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB,qCAAqC,iDAAU;AAC/C;;AAEA;AACA,CAAC,CAAC,oDAAW;;;;;;;;;;;;;;AC/Cb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACP;AACkC;AACpF;AACA;AACA;AACA,sBAAsB,sEAAsE;AAC5F,qCAAqC,4CAA4C;AACjF,WAAW,mCAAmC;AAC9C,qBAAqB,0DAA0D;AAC/E;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA,yBAAyB,iDAAU;AACnC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,aAAa,iDAAU;AACvB,eAAe,oEAAqB;AACpC;AACA,KAAK;AACL;AACA,aAAa,iDAAU;AACvB,YAAY,oEAAqB;AACjC,KAAK;AACL,wBAAwB,iDAAU,MAAM,yDAAgB,UAAU;;AAElE;AACA,uBAAuB,iDAAU;AACjC,KAAK;AACL,+CAA+C,iDAAU;AACzD;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;AC3IR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACoC;AACE;AACuB;AAC7D;AACA;AACA;AACA;AACA;AACA;AAC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ACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACJ;AACa;AAIf;AACR;AACJ;AACwB;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,mDAAW;AAC7D;AACA,+CAA+C,mDAAW;AAC1D,uCAAuC,iGAAc;AACrD,oBAAoB,oGAAiB;AACrC;AACA;AACA,8BAA8B,qEAAc;AAC5C;AACA,qBAAqB;AACrB,iDAAiD,cAAc,mCAAmC,EAAE;AACpG;AACA;AACA;AACA,gEAAgE,iCAAiC;AACjG;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,6CAA6C;AAC7C;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA,iBAAiB,gDAAgD;AACjE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAgB,mBAAmB,mDAAW;AAC5E;AACA;AACA;A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ACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA,+BAA+B;;AAE/B;AACA,yBAAyB,iDAAS;AAClC,OAAO;AACP,iDAAiD,iDAAS;AAC1D;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACpGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACJ;AACa;AAIf;AACR;AACN;AACsB;AACzB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iDAAS;AAC3D;AACA,+CAA+C,iDAAS;AACxD,uCAAuC,iGAAc;AACrD,oBAAoB,oGAAiB;AACrC;AACA;AACA;AACA,8BAA8B,mEAAY;AAC1C;AACA,qBAAqB;AACrB,iDAAiD,cAAc,mCAAmC,EAAE;AACpG;AACA;AACA;AACA,gEAAgE,iCAAiC;AACjG;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,6CAA6C;AAC7C;AACA;AACA,2EAA2E;AAC3E;AACA;AACA;AACA,iBAAiB,4CAA4C;AAC7D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAgB,mBAAmB,iDAAS;AAC1E;AACA;AACA;AACA;AACA,iDAAiD,WAAW,eAAe;AAC3E;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC,CAAC,4EAAM;AACR;AACA;AACA,WAAW,4CAA4C;AACvD,WAAW,qDAAqD;AAG9D;AACF;AACA,8BAA8B,iFAAU;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,yEAAK;AAChC,iCAAiC,iDAAS;AAC1C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,C;;;;;;;;;;;;AClQA;AAAA;AAAA;AAAsI;;AAEtI;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC,WAAW,0CAA0C;AACrD;AACA,WAAW,6BAA6B;AACxC,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;;AAEb;AACA;AACA,MAAM,6JAAO;AACb;AACA,GAAG;;;AAGH;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH,sCAAsC;;AAEtC;AACA;AACA,GAAG;;;AAGH;AACA,CAAC;AACD;AACA,WAAW,OAAO;AAClB,aAAa;;;AAGb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,C;;;;;;;;;;;;ACpHA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACP;AAC8G;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACmD;AACmB;AACS;AACA;AACZ;AACF;AACN;AACW;AACL;AACa;AACC;AAC5C;AACnC;AACA;AACA;AACA;AACA,eAAe,kDAAkD;AACjE,gBAAgB,kDAAkD;AAClE;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,kDAAkD,mDAAmD;AACrG;AACA,aAAa,2BAA2B;AACxC,aAAa,OAAO;AACpB,aAAa,sDAAsD;AACnE;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,6BAA6B,mFAAY;AACzC;AACA,2BAA2B,qDAAqD;AAChF;AACA;AACA,gBAAgB;AAChB;;AAEA,2BAA2B,uFAAgB;AAC3C;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;;AAGA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,+BAA+B,iEAAuB;AACtD;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,mCAAmC,kDAAkD;AACrF;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,mCAAmC,kDAAkD;AACrF;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,qCAAqC,aAAa;AAClD;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,6BAA6B,+EAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;;AAEA;;AAEA;AACA;AACA,iBAAiB,4EAAQ;AACzB,sBAAsB,mFAAS;AAC/B;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C,aAAa,OAAO;AACpB;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iEAAiE,kDAAkD;AACnH,yBAAyB,mDAAmD;AAC5E;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,MAAM,2JAAI,CAAC,sKAAe,uDAAuD;;;AAGjF;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,aAAa;AAC5D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;AAC3D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,2BAA2B,qFAAU;AACrC;AACA;AACA,cAAc,wFAAgB;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,0BAA0B,2FAAa;AACvC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iEAAiE,sBAAsB;AACvF;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,iBAAiB,4EAAQ;AACzB,mCAAmC,2FAAa;AAChD;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,4BAA4B,2FAAa;AACzC;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,sBAAsB,wBAAwB;AAC9C;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,gDAAgD;AAChD;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,wEAAI;;;;;;;;;;;;;;ACndN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACkB;AAKzD;AAClB;AACA;AACA;AACA;AACA,MAAM,mDAAmD;AACzD;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,yEAAyE,mDAAmD;AAC5H;AACA,aAAa,iCAAiC;AAC9C,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO,uDAAuD;AAC3E;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,0CAA0C,kDAAkD;AAC5F;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,6BAA6B,mDAAmD;AAChF;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oEAAqB;AACxD,sCAAsC,uEAAwB;AAC9D;AACA;AACA;AACA,uCAAuC,gGAAc;AACrD,4CAA4C,sEAAuB;AACnE;AACA;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iDAAiD,cAAc,gCAAgC,EAAE;AACjG;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;AC1KR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACS;AACL;AACG;AACG;AACF;AACF;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACiD;AACjD;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA,oBAAoB,mFAAmF;AACvG;AACA,WAAW,OAAO;AAClB,WAAW,4FAA4F;AACvG,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,gBAAgB;AAChB;AACA;AACA;AACA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAM,iDAAiD;AACvD,IAAI,gFAAgF;AACpF;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,YAAY;AACZ;AACO;AACP;AACA;AACA;AACA;AACA;AACA,MAAM,iDAAiD;AACvD,IAAI,gFAAgF;AACpF;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACO;AACP;AACA,0DAA0D,+DAA+D,GAAG,cAAc;AAC1I;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8CAA8C;AACzD,aAAa;AACb;AACO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,uBAAuB,mDAAmD;AAC1E;AACA,WAAW,OAAO;AAClB,WAAW,6CAA6C;AACxD,MAAM,mDAAmD;AACzD,WAAW,sDAAsD;AACjE;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,6CAA6C;AAC1D;AACO;AACP;AACA;AACA,6BAA6B,0DAAc;AAC3C;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE,OAAO,gEAAgE;AACvE;AACA,uEAAuE;AACvE;AACA;AACA,WAAW,iCAAiC;AAC5C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C,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACW;AACtB;AACoB;AAClE;AACA;AACA,kFAAkF;AAClF,2EAA2E,qCAAqC;AAChH;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,2CAA2C;;;AAG3C,yCAAyC,wDAAc;AACvD;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;;AAEX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iCAAiC;AAChD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iFAAU;AACrC,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA,cAAc,oFAAS;AACvB;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;;AC/LR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACJ;AAIF;AACL;AACoB;AACpC;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,mEAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,iFAAU;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yEAAK;AAChD;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAA+B;AAC1E;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,uCAAuC,iGAAc;AACrD,oBAAoB,oGAAiB;AACrC;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iDAAiD,cAAc,iCAAiC,EAAE;AAClG;AACA,iGAAiG,aAAa;AAC9G;AACA;AACA;AACA;AACA,yBAAyB;AACzB,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,0FAA0F,iCAAiC;AAC3H;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;ACtOR;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,uEAAuE;AACvE;AACA;AACA,WAAW,iCAAiC;AAC5C,aAAa,6CAA6C;AAC1D;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,C;;;;;;;;;;;ACpCA;;AAEA;AACA,cAAc,mBAAO,CAAC,mVAAiM;AACvN,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,mVAAiM;AACtN,sBAAsB,mBAAO,CAAC,mVAAiM;AAC/N,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACJ;AACM;AACD;AAC9B;AAC5B;AACA;AACA;AACA,uCAAuC,oCAAoC;AAC3E;AACA;AACA;AACA,MAAM,mDAAmD;AACzD,MAAM,6DAA6D;AACnE;AACA,oFAAoF;AACpF;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,+DAAY,EAAE,6EAAM,EAAE,8DAAoB;AACxD;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;AACR;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA,YAAY,+BAA+B;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;;;;;;;;;;;;;;AC/FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACE;AACL;AACA;;AAExC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL;AACA;AACA,KAAK,EAAE;;AAEP;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL,kFAAkF;;AAElF,qBAAqB,mFAAK,yCAAyC;;AAEnE;AACA;AACA,KAAK;;;AAGL,uGAAuG;;AAEvG,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,yDAAyD;;AAEzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,C;;;;;;;;;;;;ACzIA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACL;AAK9B;AACkB;AACc;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,0DAAiB;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,+BAA+B,6DAAa;AAC5C;AACA,iBAAiB;AACjB,+CAA+C,iFAA6B,aAAa,iFAA6B,aAAa,4EAAwB;AAC3J;AACA;AACA;AACA,qCAAqC;AACrC,qBAAqB;AACrB;AACA,mEAAmE,qCAAqC;AACxG;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,yCAAyC;AACzC;AACA;A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C,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC6E;AAC7E;AACA,yCAAyC,2CAA2C;AACpF,UAAU,6DAA6D;AACvE,IAAI,+DAA+D;AACnE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA,iDAAiD;AACjD;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B,eAAe,mCAAmC;AAClD;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kEAAkE;;AAElE;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA,aAAa;;AAEb;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,cAAc,+DAA+D;AAC7E,QAAQ;AACR,oBAAoB,4BAA4B;AAChD;AACA;AACA,eAAe,MAAM;AACrB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,MAAM,2JAAI,CAAC,sKAAe;AAC1B;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,8FAAQ;AACV;AACA;AACA;AACA,kBAAkB,6DAA6D;AAC/E;AACA;AACA;AACA,WAAW,sDAAsD;AACjE;;;;;;;;;;;;;;;AC/LA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyF;AACvC;AACl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AAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AAChB;AAKxB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mDAAmD;AACrE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,0BAA0B,yDAAiB;AAC3C;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,qEAAqB;AACnE;AACA;AACA;AACA;AACA,iBAAiB,IAAI,mBAAmB;AACxC;AACA;AACA;AACA,iBAAiB,IAAI,mBAAmB;AACxC;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,iDAAiD;AAChE,iBAAiB,QAAQ;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,mEAAmB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD,iBAAiB,QAAQ;AACzB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAA+B;AACtE;AACA;AACA;AACA,qDAAqD,mEAAmB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iCAAiC;AACzF;AACA,uEAAuE,mEAAmB;AAC1F;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,8EAA8E,mCAAmC;AACjH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC,CAAC,4EAAM;AACR;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa;AAGX;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,6DAAO;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE,WAAW,oCAAoC;AAC/C,WAAW,qDAAqD;AAChE,WAAW,kEAAkE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC,aAAa;AACb;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE,WAAW,iDAAi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;AACJ;AAC2G;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AACvB;AACX;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,oEAAoB;AAC3E;AACA;AACA,uCAAuC,+BAA+B;AACtE;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,oEAAoE,mEAAmE;AACvI;AACA;AACA,eAAe,2DAA2D;AAC1E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,qFAAU;AAC7C;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,6DAA6D,oBAAoB;AACjF,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,kDAAkD;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,CAAC,CAAC,4EAAM;AACR;AACA;AACA;AACA,WAAW,mEAAmE;AAC9E;AACA,aAAa;AACb;AAGE;AACF;AACA;AACA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,C;;;;;;;;;;;;ACjQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACuF;AACX;AACI;AACF;AACU;AACxF;AACA;AACA,IAAI,4CAA4C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,kGAAa;AACvB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,UAAU,6FAAS;AACnB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,UAAU,4FAAQ;AAClB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,UAAU,8FAAU;AACpB;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,UAAU,6FAAS;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI,4CAA4C;AAChD;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA,QAAQ,kGAAa;AACrB,QAAQ,4FAAQ;AAChB,SAAS,6FAAS;AAClB,UAAU,8FAAU;AACpB;AACA;AACA,cAAc,4CAA4C;AAC1D,IAAI,iEAAiE;AACrE;AACA,aAAa;AACb;;AAEO;AACP;AACA;AACA,CAAC,+CAA+C;AAChD,wBAAwB,iEAAiE;AACzF;AA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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AACoB;AACvB;AACwB;AACL;AAI3D;AAC6B;AACxD;AACA;AACA;AACA,wBAAwB,kEAAkE;AAC1F;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,0JAAI,CAAC,qKAAe;AACpC;AACA;AACA,aAAa;AACb;AACA,mCAAmC,mEAAmE;AACtG;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oFAAU;AAC7C;AACA;AACA,8BAA8B,4FAAmB;AACjD;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb,oBAAoB;AACpB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,iCAAiC,oEAAuB;AACxD;AACA;AACA;AACA,4DAA4D,8DAA8D;AAC1H;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yBAAyB,4EAAsB;AAC/C;AACA,qBAAqB;AACrB,wBAAwB,oFAA2B;AACnD;AACA,iBAAiB;AACjB;AACA,gBAAgB,wGAAmB;AACnC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,kBAAkB,aAAa,SAAS,gBAAgB;AACxD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,+EAAsB;AACxD,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oBAAoB,aAAa,WAAW,gBAAgB;AAC5D;AACA,eAAe,QAAQ;AACvB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC,aAAa,6BAA6B,gBAAgB;AAC1F;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,gCAAgC,aAAa,YAAY,gBAAgB;AACzE;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mGAAiB;AACzC,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;AC7QR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACL;AAC4G;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACoB;AACD;AACkB;AACT;AACD;AACA;AACR;AACL;AACM;AACE;AACzB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,mFAAY;AAC7C;AACA,2BAA2B,qDAAqD;AAChF;AACA;AACA,gBAAgB;AAChB;AACA,+BAA+B,uFAAgB;AAC/C;AACA;AACA;AACA,gBAAgB,yDAAyD;AACzE;AACA;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA,8DAA8D,uFAAS;AACvE;AACA;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA,kEAAkE,wFAAU;AAC5E;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,gCAAgC,kFAAc;AAC9C;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,+EAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA,gBAAgB,0JAAI,CAAC,qKAAe;AACpC;AACA,gBAAgB,kGAAa,EAAE,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,uCAAuC;AACxD;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,qFAAU;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uCAAuC,cAAc,mBAAmB,EAAE;AAC1E;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uCAAuC,iGAAgB,cAAc,2FAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,uEAAI;;;;;;;;;;;;;ACvNN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACF;AACsC;AAC7F;AACA;AACA;AACA,uCAAuC,wEAAwE;AAC/G;AACA;AACA,IAAI;AACJ,iBAAiB,kFAAkF;AACnG;AACA,yBAAyB,kEAAkE;AAC3F;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,8FAAuB;AACxF;AACA;AACA;AACA,uCAAuC,mEAAsB;AAC7D,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,8FAAuB;AAC/C,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2EAAM;AACR;AACA;AACA,+BAA+B,6CAA6C;AAC5E;AACA;AACA;AACA,MAAM,yCAAyC;AAC/C,MAAM,6DAA6D;AACnE;AACA,6CAA6C,kDAAkD;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+EAA+E;AACnF;AACA,2CAA2C,2DAA2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AAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6EAAO,EAAE;AACX;AACA,WAAW,kCAAkC;AAC7C,WAAW,gCAAgC;AAC3C,WAAW,KAAK;;;AAGyB;;AAEzC;AACA,iDAAiD;;AAEjD;AACA;AACA;;AAEA,EAAE,iEAAW;AACb;AACA,GAAG;AACH,C;;;;;;;;;;;;AC1IA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACC;AACM;AACf;AACU;AACC;AACL;AACD;AACE;AACE;AACL;AAC8G;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACkB;AACK;AACZ;AACQ;AACxB;AACsB;AAIrC;AACW;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sFAAc;AAClC,oBAAoB,6FAAY;AAChC,oBAAoB,oFAAS;AAC7B;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sFAAc;AACtE,iCAAiC,qFAAqB;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,uDAAuD,4EAAkB;AACzE;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,eAAe;AAC9E,6BAA6B;AAC7B;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iDAAiD,oFAAS;AAC1D;AACA,+BAA+B,4EAAY;AAC3C,qBAAqB;AACrB;AACA,qCAAqC,+EAAe;AACpD;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qCAAqC,yFAAY;AACjD;AACA;AACA,2CAA2C,+BAA+B;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,yDAAyD,kCAAkC;AAC3F;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,iCAAiC;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD,sFAAc;AACtE,sDAAsD,6FAAY;AAClE;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,wBAAwB,0EAAG;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,oCAAoC;AACnD,eAAe,kCAAkC;AACjD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4EAAM;AACR;AACA;AACA,WAAW,2CAA2C;AACtD,aAAa;AAGX;AACK;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,C;;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,sCAAsC,6CAA6C;AACpF;AACA;AACA,WAAW,iDAAiD;AAC5D,aAAa;;;AAGb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC,aAAa,6CAA6C;AAC3D;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,OAAO;AAClB,aAAa;;;AAGb;AACA;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC,aAAa,6CAA6C;AAC3D;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,iDAAiD;AAC5D,WAAW,OAAO;;;AAGlB;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,mCAAmC;AAC9C,WAAW,iDAAiD;AAC5D,WAAW,wCAAwC;;;AAGnD;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;AChVA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACF;AACL;AAC8G;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACiC;AACnB;AACvB;AAChD;AACA;AACA;AACA,uCAAuC,+DAA+D;AACtG;AACA,2CAA2C,uEAAuE;AAClH;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,+FAAoB;AACvD;AACA;AACA,2CAA2C,qEAAqB;AAChE;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB;AACA;AACA,8BAA8B,uFAAS;AACvC;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,2DAA2D,uBAAuB;AAClF;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;ACxGR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACM;AACJ;;AAE5C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,eAAe;AAC1B,aAAa;AACb;AACO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,aAAa,eAAe;AAC5B;AACA;;AAEO;AACP;AACA,6CAA6C;;AAE7C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC,aAAa;AACb;;AAEO;AACP;AACA;AACA;;AAEA,0DAA0D;AAC1D,CAAC;AACD;AACA,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,aAAa;;AAEb;AACA;AACA;AACA,GAAG,uCAAuC;AAC1C,wCAAwC;AACxC,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,UAAU;;;AAGvB;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACvGA;AAAe,yJ;;;;;;;;;;;ACAf;;AAEA;AACA,cAAc,mBAAO,CAAC,6UAA+L;AACrN,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,6UAA+L;AACpN,sBAAsB,mBAAO,CAAC,6UAA+L;AAC7N,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;ACrBA;;AAEA;AACA,cAAc,mBAAO,CAAC,2VAAsM;AAC5N,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,2VAAsM;AAC3N,sBAAsB,mBAAO,CAAC,2VAAsM;AACpO,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;ACrBA;;AAEA;AACA,cAAc,mBAAO,CAAC,uVAAoM;AAC1N,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,uVAAoM;AACzN,sBAAsB,mBAAO,CAAC,uVAAoM;AAClO,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;ACrBA;;AAEA;AACA,cAAc,mBAAO,CAAC,iWAAyM;AAC/N,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,iWAAyM;AAC9N,sBAAsB,mBAAO,CAAC,iWAAyM;AACvO,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;ACrBA;;AAEA;AACA,cAAc,mBAAO,CAAC,qWAA2M;AACjO,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,qWAA2M;AAChO,sBAAsB,mBAAO,CAAC,qWAA2M;AACzO,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;ACrBA;;AAEA;AACA,cAAc,mBAAO,CAAC,yWAA6M;AACnO,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,yWAA6M;AAClO,sBAAsB,mBAAO,CAAC,yWAA6M;AAC3O,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;ACrBA;;AAEA;AACA,cAAc,mBAAO,CAAC,yWAA6M;AACnO,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,yWAA6M;AAClO,sBAAsB,mBAAO,CAAC,yWAA6M;AAC3O,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;;ACrBA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,OAAO;AAClB,aAAa,gCAAgC;AAC7C;AACe;AACf;AACA,CAAC;AACD;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,sCAAsC;;AAEnD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACzCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACjB;AACV;AAC9B;AACA;AACA;AACA,2CAA2C;AAC3C,QAAQ,gDAAgD;AACxD;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,oDAAW,EAAE,+CAAM;AACjC;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;AACR;AACA,6BAA6B,4BAA4B;AACzD;AACA,iBAAiB,kCAAkC;AACnD;AACA,YAAY,4BAA4B;AACxC;;AAEA;AACA,6BAA6B,yCAAyC;AACtE;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;AACA,IAAI,4DAA4D;AAChE,IAAI,sEAAsE;AAC1E;AACA;AACA,gCAAgC;AAChC,OAAO,4DAA4D;AACnE;AACA,0DAA0D;AAC1D;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;AACA;AACA,MAAM,kEAAkE,QAAQ;AAChF;AACA,MAAM,4DAA4D,QAAQ;AAC1E;AACA;AACA;AACA;AACA;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,gEAAgE;AAChE,QAAQ,4DAA4D;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,iBAAiB,0EAA0E;AAC3F;AACA,YAAY,0DAA0D;AACtE;;AAEA;AACA,4CAA4C;AAC5C,OAAO,sEAAsE;AAC7E;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,0EAA0E;AAC5F;AACA,YAAY,qBAAqB;AACjC;;AAEA;AACA,2BAA2B,4DAA4D;AACvF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,OAAO;AACpB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,IAAI,2EAA2E;AAC/E,iCAAiC,6DAA6D;AAC9F;;AAEA;AACA,uBAAuB,4DAA4D;AACnF,uBAAuB,wCAAwC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,SAAS;AACvB,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,IAAI,2EAA2E;AAC/E,iCAAiC,6DAA6D;AAC9F;;;;;;;;;;;;;;;ACrPA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACM;AACC;AACJ;AAC2G;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2D;AACf;AACY;AACU;AAClE;AACA,wCAAwC,yCAAyC;AACjF;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA,wBAAwB;AACxB,6BAA6B,qEAAqE;AAClG;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA,iCAAiC,iFAAU;AAC3C;AACA;AACA;AACA,gCAAgC,wBAAwB;AACxD;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,8CAA8C;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,oFAAoF;AAC5F,QAAQ,+DAA+D;AACvE;AACA,2EAA2E,2DAA2D;AACtI;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,kBAAkB,gFAAgF;AAClG;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,uBAAuB;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,+CAA+C;;AAE/C;AACA;;AAEA;AACA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A;AACA;AACA;AACA,SAAS;AACT;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,yCAAyC,uEAAuE;AAChH,6BAA6B,wCAAwC;AACrE,QAAQ,2DAA2D;AACnE;AACA,0BAA0B;AAC1B,4DAA4D;AAC5D;AACA;AACA;AACA,eAAe,uDAAuD;AACtE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,EAAE;;AAEX,iCAAiC,+DAAe;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qEAAqE;AAChF;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;;AAEA;AACA,2BAA2B,+DAAa;AACxC,wEAAwE;AACxE;;AAEA;AACA;;AAEA;AACA,+BAA+B,+BAA+B;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA,kCAAkC,iCAAiC;AACnE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;;AC5UR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACP;AAC8G;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AAC8B;AAC/C;AACmD;AACD;AACpB;AACzB;AACM;AACJ;AAC/C;AACA;AACA;AACA;AACA;AACA,IAAI,4FAA4F;AAChG;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,mGAAa;AAC7D;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA,mDAAmD,mGAAiB;AACpE;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,0JAAI,CAAC,qKAAe;AACpC;AACA;AACA,aAAa;AACb,oBAAoB,qDAAqD;AACzE;AACA;AACA,iBAAiB,+CAA+C;AAChE;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,sCAAsC,4DAAe;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,oBAAoB,+CAA+C;AACnE;AACA;AACA,iBAAiB,yCAAyC;AAC1D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yDAAY;AAC/C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA,UAAU,gBAAgB;AAC1B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,qCAAqC,qFAAU;AAC/C;AACA;AACA,kCAAkC,8DAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB,aAAa;AACb;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,gBAAgB,wGAAmB;AACnC;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,iBAAiB,mBAAmB,SAAS,gBAAgB;AAC7D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,iBAAiB,gBAAgB,SAAS,gBAAgB;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,6BAA6B,6CAA6C;AAC1E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,oBAAoB,gBAAgB,WAAW,gBAAgB;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,gBAAgB,KAAK,mBAAmB;AAChD;AACA,eAAe,QAAQ;AACvB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oBAAoB,gBAAgB,WAAW,gBAAgB;AAC/D;AACA,YAAY,oBAAoB,GAAG,uBAAuB;AAC1D;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,kCAAkC,wDAAwD;AAC1F;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,aAAa;AACb,4BAA4B,gBAAgB,YAAY,gBAAgB;AACxE;AACA;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA,4CAA4C,gBAAgB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,aAAa;AACb,yBAAyB,2DAA2D;AACpF,YAAY,0DAA0D;AACtE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,4BAA4B,mBAAmB,YAAY,gBAAgB;AAC3E;AACA;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,4BAA4B,mBAAmB,YAAY,gBAAgB;AAC3E;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,4BAA4B,mBAAmB,KAAK,gBAAgB,YAAY,gBAAgB;AAChG;AACA;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,4BAA4B,mBAAmB,KAAK,gBAAgB,YAAY,gBAAgB;AAChG;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mGAAiB;AACzC,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2EAAM;AACR;AACA;AACA;AACA,WAAW,qCAAqC;AAChD,aAAa,0DAA0D;AAGrE;AACF;AACA;AACA,eAAe,6DAAa;AAC5B,KAAK;AACL,C;;;;;;;;;;;;AC1nBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACL;AAC4G;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACoB;AACD;AACA;AACL;AACa;AACrC;AACa;AACmB;AACpC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,mFAAY;AAC7C;AACA,2BAA2B,qDAAqD;AAChF;AACA;AACA,gBAAgB;AAChB;AACA,+BAA+B,uFAAgB;AAC/C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,kEAAkE,gEAAU;AAC5E;AACA;AACA;AACA,gBAAgB;AAChB;AACA,mEAAmE,wFAAU;AAC7E;AACA,oEAAoE,yBAAyB;AAC7F;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,gCAAgC,kFAAc;AAC9C;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,+EAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA,gBAAgB,0JAAI,CAAC,qKAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,yBAAyB,mBAAmB;AAC5C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,uCAAuC;AACxD;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,qFAAU;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB,uCAAuC;AACxD;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,qFAAU;AAC3C;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,6DAAa;AACxD,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,uEAAI;AACN;AACA,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;;;;;;;;;;;;;AClQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACU;AACC;AACL;AACkH;AACjH;AACE;AACL;AAC8G;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACoB;AACD;AACY;AACM;AACT;AACD;AACR;AACL;AACa;AACP;AACE;AACvC;AAClC;AACA;AACA;AACA,QAAQ,+CAA+C;AACvD;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,iCAAiC,+CAA+C;AAChF;AACA,eAAe,cAAc;AAC7B;AACA,aAAa,2BAA2B;AACxC,aAAa,mCAAmC;AAChD,MAAM,2DAA2D;AACjE;AACA;AACA;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,mFAAY;AAC7C;AACA,2BAA2B,qDAAqD;AAChF;AACA;AACA,gBAAgB;AAChB;AACA,+BAA+B,uFAAgB;AAC/C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,8DAA8D,uFAAS;AACvE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,kEAAkE,wFAAU;AAC5E;AACA,wBAAwB,yDAAyD;AACjF,6BAA6B;AAC7B;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,gCAAgC,kFAAc;AAC9C;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,+EAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,+BAA+B,wEAAwE;AACvG,MAAM;AACN,aAAa,+CAA+C;AAC5D;AACA,eAAe,wBAAwB;AACvC;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,IAAI;AACrB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,gBAAgB,2JAAI,CAAC,sKAAe;AACpC,gBAAgB,kGAAa,EAAE,aAAa;AAC5C,4DAA4D,wKAAkB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,yBAAyB,mBAAmB;AAC5C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB,yDAAyD;AAC1E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uCAAuC,iGAAgB,cAAc,2FAAa;AAClF;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,uCAAuC;AACxD;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,qFAAU;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uCAAuC,cAAc,mBAAmB,EAAE;AAC1E;AACA;AACA;AACA;AACA,aAAa;AACb,kBAAkB,8CAA8C,KAAK;AACrE,sBAAsB,2DAA2D;AACjF;AACA;AACA,eAAe,mCAAmC;AAClD;AACA,iBAAiB,wCAAwC;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,2FAAgB;AAC/D;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,uCAAuC,+BAA+B;AACtE;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,sBAAsB,gBAAgB;AACtC;AACA,WAAW,6EAA6E;AACxF,uCAAuC,gCAAgC;AACvE;AACA;AACA;AACA,eAAe,mCAAmC;AAClD;AACA,iBAAiB,wCAAwC;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,wEAAI;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,wEAAI;AACN;AACA;AACA,gCAAgC,sBAAsB;AACtD;AACA;AACA;AACA;AACA,sEAAsE,wBAAwB;AAC9F;AACA;AACA;;;;;;;;;;;;;AC5bA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2D;AACf;AAC5C;AACA,0CAA0C,wCAAwC;AAClF;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,sEAAsE;AACjF;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,+DAAa,mGAAmG;;AAEtK;AACA;;AAEA;AACA,6BAA6B,+BAA+B;AAC5D;AACA,sDAAsD;;AAEtD;AACA;AACA;;AAEA;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6EAAO;;;;;;;;;;;;;;ACvHT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAoJ;AACxG;AACF;AACA;AACE;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC,aAAa;AACb;AACO;AACP;AACA;AACA;AACA,iBAAiB,2DAA2D;AAC5E;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACO;AACP;AACA,0DAA0D,aAAa,GAAG,cAAc;AACxF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA,gBAAgB,sEAAsE;AACtF,6DAA6D;AAC7D;AACA;AACA;AACA,sBAAsB,sEAAsE;AAC5F;AACA,WAAW,6BAA6B,kBAAkB;AAC1D,WAAW,iDAAiD;AAC5D;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;A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AAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACsH;AAC7C;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,8DAAc;AACjC,IAAI,8DAAc;AAClB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA,0CAA0C;AAC1C;;AAEA;AACA,wEAAwE;;AAExE;AACA;AACA;AACA,iDAAiD;;AAEjD;AACA,MAAM,8DAAc;AACpB,KAAK;;;AAGL;AACA,iIAAiI;;AAEjI;AACA;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA;AACA;AACA,UAAU,yDAAyD;AACnE;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,kEAAkE;AAC7E;;AAEO;AACP;AACA;AACA;;AAEA;AACA,wCAAwC;AACxC;;AAEA;AACA,sEAAsE;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE,iDAAiD;AACrH;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,kEAAkE;AAC7E;;AAEO;AACP;AACA;AACA,wCAAwC;;AAExC,EAAE,8DAAc;AAChB,EAAE,8DAAc,iDAAiD;;AAEjE;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C;;AAEA;AACA,wEAAwE;;AAExE;AACA;AACA;AACA;;AAEA;AACA,MAAM,8DAAc;AACpB,KAAK;;;AAGL,sHAAsH;;AAEtH,IAAI,8DAAc,4CAA4C;;AAE9D;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,wDAAwD,yCAAyC;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,kEAAkE;AAC7E;;AAEO;AACP;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;;AAGA;AACA,8EAA8E;;AAE9E;AACA;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL;AACA,qBAAqB,kBAAkB;AACvC;AACA;AACA,yCAAyC;;AAEzC;AACA,yBAAyB,8DAAc,qDAAqD;AAC5F;;AAEA;AACA;AACA;AACA;AACA,OAAO;;;AAGP,MAAM,8DAAc;AACpB;AACA;AACA;AACA;AACA,wDAAwD,yCAAyC;AACjG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,kEAAkE;AAC7E;;AAEO;AACP;AACA;AACA,4CAA4C;AAC5C;AACA;;AAEA,EAAE,8DAAc;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,8DAA8D;AACzE;;AAEO;AACP;AACA;AACA,GAAG;AACH,sCAAsC;;AAEtC,oDAAoD;;AAEpD;AACA,wDAAwD;;AAExD;AACA,oDAAoD;;AAEpD,qFAAqF;AACrF;;AAEA;AACA;AACA;;AAEA;AACA,kHAAkH;;AAElH,yEAAyE;;AAEzE;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,8DAA8D;AACzE;;AAEO;AACP;AACA;AACA,GAAG;AACH;AACA;;AAEA,0CAA0C,uBAAuB;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,8DAA8D;AACzE;;AAEO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,mBAAmB,wKAAkB;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;;AAGX;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,uEAAuE,6CAA6C;AACpH;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC,aAAa;AACb;;AAEO;AACP;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,6CAA6C;AAC9G;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA,oEAAoE;;AAEpE;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA,0DAA0D;AAC1D;;;AAGA,2BAA2B;;AAE3B;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C,WAAW,kCAAkC;AAC7C,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW;AACX;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,MAAM,oBAAoB,oDAAoD;AACzF;;AAEO;AACP,cAAc,oKAAc;AAC5B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA,4DAA4D;;AAE5D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,wCAAwC;AACnD,WAAW,8DAA8D;AACzE,aAAa,sCAAsC;;AAEnD;AACA;AACA,oCAAoC;;AAEpC,+DAA+D;AAC/D;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,qGAAqG;AACrG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;;;AAGD;AACA,uBAAuB,wFAAU;AACjC;AACA,GAAG;AACH;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;;;AAGA;AACA;AACA;AACA;AACA;AACA,sBAAsB,kEAAkB;AACxC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wCAAwC;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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iC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2D;AACH;AACxD;AACA,wCAAwC,yCAAyC;AACjF;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA;AACA;AACA,aAAa,iCAAiC;AAC9C,aAAa,sBAAsB;AACnC;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET,wCAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA,aAAa;AACb;;;AAGA,mDAAmD;AACnD;AACA;;AAEA;AACA;AACA;AACA,aAAa,EAAE;;AAEf;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA;AACA,aAAa;;AAEb,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA,+DAA+D;;AAE/D,+CAA+C;;;AAG/C;AACA,SAAS;AACT;AACA;AACA;;;AAGA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,6BAA6B,aAAa;AAC1C;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA,qBAAqB,oFAAK;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,oFAAK;;AAE5B;AACA;AACA,OAAO;;;AAGP;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6EAAO,EAAE;AACX;AACA;AACA;AACA,WAAW,sCAAsC;AACjD,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;;;AAGgB;;AAElC;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gEAAgE;AAChE;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,kCAAkC;AAC7C,aAAa;;;AAGb;AACA;AACA,C;;;;;;;;;;;;ACpYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACM;AACC;AACJ;AAC2G;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwC;AACI;AACa;AACW;AAC4P;AAChU;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B;AAC/B;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA,eAAe,yEAAoB;AACnC,OAAO;AACP;AACA;AACA,+CAA+C,wEAAmB;AAClE,+CAA+C,wEAAmB;AAClE,4CAA4C,wEAAmB;AAC/D,8CAA8C,mEAAsB;AACpE;AACA,OAAO;AACP,uDAAuD,uEAAkB;AACzE,2CAA2C,mEAAsB;AACjE;AACA,OAAO;AACP,oDAAoD,uEAAkB;AACtE,mEAAmE,gEAAmB;AACtF;AACA,OAAO;AACP,mEAAmE,0EAA6B;AAChG;AACA,OAAO;AACP,qEAAqE,0EAAqB;AAC1F,uDAAuD,oEAAe;AACtE,8CAA8C,gEAAmB;AACjE;AACA,OAAO;AACP,6CAA6C,sDAAS;AACtD;AACA,OAAO;AACP,6CAA6C,sDAAS;AACtD;AACA,OAAO;AACP,6CAA6C,0DAAa;AAC1D;AACA,OAAO;AACP,6CAA6C,+DAAkB,EAAE;;AAEjE,uCAAuC,kEAAqB;AAC5D;AACA,OAAO,EAAE;;AAET,8CAA8C,qDAAW;AACzD,8CAA8C,qDAAW,sBAAsB;;AAE/E,4CAA4C,uDAAa;AACzD,6CAA6C,uDAAa;AAC1D,+CAA+C;AAC/C;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,OAAO,EAAE;AACT;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;;AAEP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,cAAc,oFAAS;AACvB;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;;AAE0B;;AAElC;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC9QA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC4C;AACmB;AACA;AACN;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gEAAiB,kDAAkD,qEAAgB;AACnG,gBAAgB,gEAAiB,kDAAkD,qEAAgB;AACnG;AACA,SAAS;AACT;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;ACzER;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACM;AACH;;AAE3C,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACuF;AACjB;AACtE;AACA,wBAAwB,2DAA2D;AACnF;AACA,WAAW,iDAAiD;AAC5D,aAAa;AACb;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC,WAAW,8DAA8D;AACzE,aAAa,qDAAqD;AAClE;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC,WAAW,qDAAqD;AAChE,WAAW,8DAA8D;AACzE,WAAW,gCAAgC;AAC3C;;AAEO;AACP;AACA;AACA,wCAAwC;;AAExC,oFAAoF;AACpF;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,2DAA2D;;AAE3D,kDAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iDAAiD;AAC5D,WAAW,6BAA6B;AACxC,WAAW,6BAA6B;AACxC,aAAa,0CAA0C;AACvD;;AAEO;AACP;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qCAAqC;AAChD,aAAa;AACb;;AAEO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW,8BAA8B;AACzC,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,aAAa;AACb;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEO;AACP;AACA;AACA,yBAAyB,oFAAU;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;;AAEP,2EAA2E;;AAE3E;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH,CAAC;AACD;AACA,aAAa,YAAY;;AAEzB;AACA;;AAEA;AACA;AACA;;AAEA,SAAS,oGAAe;AACxB,C;;;;;;;;;;;;ACzRA;AAAe,ogB;;;;;;;;;;;;ACAf;AAAe,ie;;;;;;;;;;;;ACAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACL;AAC4G;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACoD;AACK;AACW;AACG;AACM;AACxB;AACS;AACxB;AACtC,oFAAoF;AACpF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,oFAAS,EAAE,0EAAI;AAC7B;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8CAA8C;AAC9D;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA;AACA,gDAAgD;AAChD;AACA;;AAEA,uCAAuC,oFAAS;AAChD;AACA,+BAA+B,0FAAY;AAC3C;AACA,gCAAgC,0FAAY;AAC5C;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,UAAU,iFAAM;;AAEhB;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8CAA8C;AAC7D,eAAe,8CAA8C;AAC7D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,6CAA6C,2DAAiB,WAAW;;AAEzE,yBAAyB,uFAAS;AAClC;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,uBAAuB;;AAEvB;AACA;AACA,OAAO;;;AAGP;AACA;AACA;;AAEA,gEAAgE;;AAEhE;AACA;AACA,OAAO;;;AAGP,+BAA+B,0FAAY,4BAA4B;;AAEvE,wBAAwB,iFAAM;AAC9B;AACA;AACA;AACA,gCAAgC;AAChC;;AAEA;AACA;AACA;;AAEA,UAAU,2DAAW;;AAErB;;AAEA;AACA,SAAS;AACT,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;;ACrOR;AAAA;AAAA;AAAA;AAA2C;;AAE3C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+CAA+C;AAC1D;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,aAAa;AACb;AACO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,+DAA+D;;AAE/D;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACvDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACoD;AACN;AACJ;AACe;AACE;AAC1B;AACjC;AACA;AACA;AACA,uCAAuC,8DAA8D;AACrG;AACA;AACA;AACA,UAAU,yFAAyF;AACnG,UAAU,0EAA0E;AACpF,UAAU,gFAAgF;AAC1F;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,0DAAiB,EAAE,qDAAY,EAAE,uDAAc,EAAE,8EAAM;AACrE;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;AACR;AACA;AACA,IAAI,6FAA6F;AACjG,IAAI,uGAAuG;AAC3G;AACA,QAAQ,qDAAqD;AAC7D;AACA;AACA;AACA;AACA,oEAAoE,SAAS;AAC7E;AACA;AACA,yCAAyC,SAAS;AAClD,wCAAwC,SAAS;AACjD,iCAAiC,SAAS;AAC1C,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,+DAA+D,aAAa;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qBAAqB;AAC1D;AACA,kCAAkC,YAAY,aAAa,OAAO;AAClE;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,cAAc,OAAO;AACrB,IAAI,wFAAwF;AAC5F,cAAc,sBAAsB;AACpC;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;;AAEA;AACA,6BAA6B,+CAA+C;AAC5E;AACA,iBAAiB,qDAAqD;AACtE;AACA,YAAY,+CAA+C;AAC3D;;AAEA;AACA;AACA;AACA,oBAAoB,8EAA8E;AAClG;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,uEAAuE;AACnF;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uGAAuG;AAC3G;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAmE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,uGAAuG;AAC3G;AACA;AACA,IAAI,yGAAyG;AAC7G;AACA,YAAY,yDAAyD;AACrE;;AAEA;AACA;AACA,IAAI,+DAA+D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,YAAY,uEAAuE;AACnF;AACA,YAAY,yDAAyD;AACrE;;AAEA;AACA;AACA,IAAI,6FAA6F;AACjG,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,YAAY,eAAe;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,YAAY,QAAQ;AACpB;;;;;;;;;;;;;;;ACjSA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2D;AACyB;AACjB;AACnE;AACA;AACA;AACA,qCAAqC,6DAA6D;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0EAA2B;AACrD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,0BAA0B,0EAA2B;;AAErD;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,6BAA6B,yGAA4B;AACzD,QAAQ,0DAAW;AACnB;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAO;;;;;;;;;;;;;;AChGT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACO;AACZ;AACR;AAI3B;AACuB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sBAAsB,WAAW,6GAA6G,aAAa,cAAc,QAAQ,SAAS;AACzP;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sBAAsB,WAAW,sBAAsB,mGAAmG,aAAa,cAAc,QAAQ,SAAS;AACrQ;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sBAAsB,WAAW,0BAA0B,kGAAkG,aAAa,cAAc,QAAQ,SAAS,uCAAuC;AAC/S;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sBAAsB,WAAW,0BAA0B,mGAAmG,aAAa,cAAc,QAAQ,SAAS;AACzQ;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,+CAA+C;AAC/D;AACA,6BAA6B,uDAAa;AAC1C;AACA;AACA;AACA;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,0DAAiB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,+BAA+B,wEAAwB,6BAA6B,gDAAgD;AACpI;AACA,iBAAiB;AACjB;AACA,mDAAmD,oFAAgC,YAAY,yCAAyC;AACxI;AACA;AACA;AACA;AACA;AACA,qCAAqC,wEAAwB,6BAA6B,6BAA6B;AACvH,+BAA+B,6DAAa;AAC5C;AACA,iBAAiB;AACjB;AACA,sDAAsD,oFAAgC,YAAY,6BAA6B;AAC/H;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,qBAAqB;AACrB;AACA;AACA;AACA,uEAAuE,WAAW;AAClF;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,qCAAqC;AACrC,qBAAqB;AACrB;AACA;AACA;AACA,uEAAuE,WAAW;AAClF;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;AClOR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACkB;AAC5B;AACK;AACH;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,2DAAiB;AACnE;AACA;AACA;AACA,kBAAkB;AAClB;AACA,gCAAgC,yDAAa;AAC7C;AACA;AACA,mCAAmC,gGAAc;AACjD;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,+DAAS;AACnC;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,2DAAiB;AACzC,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,2EAAM;AAGN;AACF;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACnLA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACI;AACM;AACF;AACF;AACC;AACD;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACwE;AACC;AACT;AACL;AAC6B;AACxF;AACA;AACA;AACA;AACA,qDAAqD,uDAAuD;AAC5G;AACA,uBAAuB,6DAA6D;AACpF;;AAEA;AACA;AACA,iCAAiC,qDAAqD;AACtF;AACA,aAAa,2BAA2B;AACxC,aAAa,+CAA+C;AAC5D;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,8GAAyB;AAC9C;AACA,SAAS;AACT;AACA;;AAEA;AACA,KAAK;AACL;AACA,mBAAmB,iCAAiC;AACpD;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,QAAQ,yEAAyE;AACjF;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA,mEAAmE;AACnE;AACA;AACA;AACA;AACA,eAAe,iDAAiD;AAChE,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,4CAA4C;AAC7D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA,8BAA8B,sDAAsD;AACpF;AACA;AACA;;;AAGoC;;AAEpC;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D,WAAW;AACxE;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,iDAAiD;AAC9D,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iDAAiD;AAChE,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,wBAAwB,uFAAW;AACnC,qBAAqB,iFAAQ;AAC7B;AACA,qBAAqB,2EAAoB;AACzC;AACA,4BAA4B,4EAAQ;AACpC;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,G;;;;;;;;;;;;AC5YD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACS;AACL;AACG;AACG;AACC;AACL;AAC4G;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACmD;AACoB;AACD;AACkB;AACT;AACD;AACR;AACL;AACa;AACP;AACE;AACtC;AACnC;AACA;AACA;AACA,QAAQ,wDAAwD;AAChE;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,aAAa,iBAAiB,qCAAqC,eAAe;AAClF,aAAa,2BAA2B;AACxC;AACA;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,mFAAY;AAC7C;AACA,2BAA2B,qDAAqD;AAChF;AACA;AACA,gBAAgB;AAChB;AACA,+BAA+B,uFAAgB;AAC/C;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,8DAA8D,uFAAS;AACvE;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,kEAAkE,wFAAU;AAC5E;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,gCAAgC,kFAAc;AAC9C;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,+EAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,4CAA4C,eAAe;AAC3D;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,sCAAsC,oBAAoB;AAC1D;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,qDAAqD,oBAAoB;AACzE;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA,gBAAgB,2JAAI,CAAC,sKAAe;AACpC,gBAAgB,kGAAa,EAAE,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,GAAG,mBAAmB;AACvC,aAAa;AACb,yBAAyB,mBAAmB;AAC5C;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,sCAAsC,oBAAoB;AAC1D;AACA,6CAA6C;AAC7C;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,uCAAuC,+BAA+B;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb,sEAAsE;AACtE;AACA;AACA,YAAY,eAAe;AAC3B;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB,yDAAyD;AAC1E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,uCAAuC,iGAAgB,cAAc,2FAAa;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,uCAAuC;AACxD;AACA,SAAS;AACT;AACA;AACA;AACA,iCAAiC,qFAAU;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB,uCAAuC,cAAc,mBAAmB,EAAE;AAC1E;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,2CAA2C,oBAAoB;AAC/D;AACA,6CAA6C;AAC7C;AACA;AACA,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,wEAAI;AACN;AACA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;AACA,wDAAwD,wBAAwB;AAChF;AACA;AACA;;;;;;;;;;;;;AC1aA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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AuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkD;AACO;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,0DAAgB,UAAU;;AAErE;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,EAAE;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;;;AAGX;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;;;AAGT;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,EAAE;AACT;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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AAW,OAAO;AAClB;;AAEO;AACP;AACA;AACA;;AAEA,yBAAyB,yFAAY;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;AAEO;AACP,kCAAkC,EAAE;AACpC;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA,WAAW,qDAAqD;AAChE;AACA,WAAW,6CAA6C;AACxD,aAAa,eAAe;;AAE5B;AACA;AACA,iCAAiC,oFAAW;AAC5C;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;AACA;AACA,kFAAkF;;AAElF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,eAAe;AAC1B,WAAW,qDAAqD;AAChE,WAAW,6CAA6C;;;AAGxD;AACA;AACA,iCAAiC,oFAAW;AAC5C;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT,wBAAwB;AACxB,SAAS;AACT;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA,gCAAgC,mBAAmB;AACnD;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,qDAAqD;AAChE,WAAW,6CAA6C;;;AAGxD;AACA;AACA,iCAAiC,oFAAW;AAC5C;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA,qCAAqC,sBAAsB;AAC3D;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,qDAAqD;AAChE,WAAW,6CAA6C;AACxD,aAAa,OAAO;AACpB,aAAa,2CAA2C;AACxD,aAAa,2CAA2C;;;AAGxD;AACA;AACA,iCAAiC,oFAAW;AAC5C;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,OAAO;AAClB,aAAa,eAAe;AAC5B;AACA,QAAQ,OAAO;AACf,QAAQ,OAAO;;;AAGf;AACA;AACA;AACA;;AAEA,6BAA6B,+CAA+C,iCAAiC;AAC7G,4FAA4F;AAC5F;AACA;;AAEA;AACA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,2CAA2C;AACtD,WAAW,eAAe;AAC1B;AACA,WAAW,6CAA6C;;;AAGxD;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,8DAA8D;AAC9D;AACA;AACA;AACA,C;;;;;;;;;;;;AC1RA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACS;AACL;AACG;AACG;AACE;AACN;AACA;;AAE1C,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACkE;AACA;AACU;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE,WAAW,OAAO;AAClB;;AAEO;AACP;AACA;AACA;;AAEA,mBAAmB,yFAAY;AAC/B;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,WAAW,qDAAqD;AAChE,WAAW,6CAA6C;AACxD;;AAEO;AACP;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA,WAAW,qDAAqD;AAChE;AACA,WAAW,6CAA6C;AACxD,aAAa,eAAe;AAC5B;AACA,OAAO,uCAAuC;AAC9C,OAAO,OAAO;AACd,OAAO,OAAO;AACd,OAAO,OAAO;;AAEd;AACA,qDAAqD;;AAErD,oCAAoC,oFAAO;AAC3C;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;;;AAGA;AACA,kHAAkH,GAAG;AACrH,wDAAwD,IAAI;AAC5D;AACA,gCAAgC;;AAEhC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,OAAO;AAClB;AACA,WAAW,mCAAmC;AAC9C,WAAW,6CAA6C;AACxD,aAAa,mCAAmC;;;AAGhD;AACA,iBAAiB,mFAAO;AACxB;AACA;AACA;AACA,CAAC;AACD,IAAI,+CAA+C;AACnD;AACA,WAAW,mCAAmC;AAC9C,WAAW,6CAA6C;AACxD,aAAa,mCAAmC;AAChD;;;AAGA;AACA;AACA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CA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAY;AAClC;AACA;AACA;AACA;AACA,UAAU,8CAA8C;AACxD;AACA;AACA;AACA,kBAAkB,QAAQ;AAC1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAY;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;;AAEA,QAAQ,sEAAsB;AAC9B,OAAO;AACP;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6EAAO,EAAE;AACX;AACA,WAAW,oCAAoC;AAC/C,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;;;AAG6B;;AAE1C;AACA;AACA,wFAAwF;;AAExF;AACA,wBAAwB,qDAAW;AACnC;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,oCAAoC;AAC/C,WAAW,OAAO;AAClB,WAAW,kCAAkC;;;AAG7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,wKAAkB,KAAK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C;;AAEA,4BAA4B,oDAAW;AACvC;AACA;AACA;AACA,QAAQ;;AAER;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4BAA4B,oDAAW;AACvC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ;;AAER;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,oDAAW;AACvC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,QAAQ;;AAER;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA,kHAAkH;;AAElH;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C;;AAE3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,oFAAoF;;AAEpF;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA;AACA;;AAEA;AACA,kCAAkC,iCAAiC;AACnE;AACA;AACA;AACA,aAAa;AACb;AACA,aAAa;AACb;AACA;AACA,WAAW;;AAEX,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,YAAY;;;AAGvB;AACA,mFAAmF;;AAEnF,gCAAgC,oDAAW;AAC3C;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA,aAAa;;AAEb,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,sDAAsD,oDAAW;AACjE;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,yCAAyC;;AAEzC;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,OAAO;AAClB,WAAW,kEAAkE;AAC7E,WAAW,QAAQ;;AAEnB;AACA;AACA,+DAA+D;;AAE/D;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAkB,8FAAgB;AAClC;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA,WAAW,0CAA0C;AACrD,YAAY,6BAA6B;AACzC,WAAW,kEAAkE;AAC7E,WAAW,QAAQ;;;AAGnB;AACA,mCAAmC;;AAEnC;AACA,0DAA0D;AAC1D;;AAEA;AACA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AAwD;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,gCAAgC;AAC3C;;AAEe;AACf;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA,WAAW,kCAAkC;AAC7C,WAAW,gCAAgC;;AAE3C;AACA;AACA,uBAAuB;;AAEvB;;AAEA;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;AACA;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA,gBAAgB,qEAAY;AAC5B,OAAO;;;AAGP;AACA,gBAAgB,qEAAY;AAC5B;;AAEA;AACA;AACA;AACA,mEAAmE;;AAEnE;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,oCAAoC;AAC/C,WAAW,kCAAkC;AAC7C,aAAa,QAAQ;;;AAGrB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA,QAAQ,+EAAsB;AAC9B;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,oCAAoC;AAC/C,WAAW,kCAAkC;AAC7C,aAAa,QAAQ;;;AAGrB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,KAAK;;AAEL,mEAAmE,6BAA6B;AAChG,+BAA+B,oKAAc;AAC7C;AACA;;AAEA;;AAEA;AACA,uBAAuB,qBAAqB;AAC5C,UAAU,6EAAoB;AAC9B;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,WAAW,oCAAoC;AAC/C,aAAa,SAAS,eAAe;;;AAGrC;AACA;AACA;AACA;;AAEA,kDAAkD,qDAAW;AAC7D;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,yCAAyC;;AAEzC,wDAAwD;;AAExD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,oCAAoC;AAC/C,aAAa;;;AAGb;AACA;;AAEA,kDAAkD,qDAAW;AAC7D;AACA,GAAG;AACH;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,aAAa;;;AAGb;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACxbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACU;AACH;AACE;AACL;AACE;;AAE1C,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACzD;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;;AAEe;AACf;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;;;AAGrD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0EAA0E;;AAE1E,oFAAoF;;AAEpF;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,QAAQ,4EAAoB;AAC5B,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;;AAEA;AACA,8FAA8F;AAC9F,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACO;AACP;AACA;AACA,wCAAwC;;AAExC;AACA;AACA,OAAO;AACP;AACA;;AAEA,sEAAsE;;AAEtE,wFAAwF;;AAExF;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,gEAAgE;;AAEhE;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA,2DAA2D;;AAE3D;AACA,KAAK;AACL;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,cAAc;;AAEd;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB;AACpB;;AAEA;;AAEA,qEAAqE,yBAAyB;AAC9F;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,8BAA8B;;AAE9B;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,aAAa;;;AAGb;AACA;AACA,gBAAgB;;AAEhB;AACA;AACA,GAAG,EAAE;;AAEL;AACA,6BAA6B;;AAE7B;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC5PA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACf;AACV;AAC2B;AAC/B;AAC5B;AACA;AACA;AACA,uCAAuC,kDAAkD;AACzF;AACA,4CAA4C;AAC5C,QAAQ,oDAAoD;AAC5D;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,qDAAY,EAAE,gDAAO,EAAE,8EAAM;AAC3C;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;AAEA;AACA,6BAA6B,+BAA+B;AAC5D;AACA,iBAAiB,qCAAqC;AACtD;AACA,YAAY,+BAA+B;AAC3C;;;;;;;;;;;;;;;AC1FA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACF;AACL;AACI;AACC;AACF;AAC2G;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACe;AACiH;AAC1H;AACJ;AACM;AACN;AACA;AACA;AACM;AACA;AACM;AACvB;AACL;AACmC;AACe;AACJ;AACtD;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET,mCAAmC,wEAAW;AAC9C,4CAA4C,iFAAmB;AAC/D;AACA,OAAO;AACP,yCAAyC,iFAAmB,IAAI;;AAEhE;AACA;AACA;AACA,OAAO;AACP,4CAA4C,+EAAiB;AAC7D;AACA,OAAO;AACP,yCAAyC,+EAAiB;AAC1D,qCAAqC,+EAAiB,IAAI;;AAE1D,mCAAmC,gFAAe;AAClD,mCAAmC,gFAAe;AAClD,4CAA4C,gFAAkB;AAC9D;AACA,OAAO;AACP,yCAAyC,gFAAkB,IAAI;;AAE/D;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,EAAE;;AAET,4CAA4C,+FAAiC;AAC7E;AACA,OAAO;AACP,yCAAyC,+FAAiC;AAC1E,4CAA4C,4FAA8B;AAC1E;AACA,OAAO;AACP,yCAAyC,4FAA8B,IAAI;;AAE3E,6CAA6C,qEAAkB;AAC/D,qDAAqD,mEAAgB;AACrE;AACA,OAAO;AACP,qDAAqD,mEAAgB;AACrE;AACA,OAAO;AACP,uDAAuD,sEAAmB;AAC1E;AACA,OAAO;AACP,wDAAwD,sEAAmB;AAC3E;AACA,OAAO;AACP,gDAAgD,mEAAgB;AAChE,mDAAmD,sEAAmB;AACtE,0DAA0D,mEAAgB;AAC1E;AACA,OAAO;AACP,4DAA4D,mEAAgB;AAC5E;AACA,OAAO;AACP,qDAAqD,mEAAgB;AACrE;AACA,OAAO;AACP,oDAAoD,mEAAgB;AACpE;AACA,OAAO;AACP,oDAAoD,mEAAgB;AACpE;AACA,OAAO;AACP,kDAAkD,mEAAgB;AAClE;AACA,OAAO;AACP,sDAAsD,yEAAsB;AAC5E,mDAAmD,sEAAmB;AACtE,MAAM,oFAA0B;AAChC,MAAM,0FAA+B;AACrC,MAAM,4FAAiC,QAAQ;;AAE/C;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,GAAG;AACH;;AAEA;AACA,gBAAgB,iEAAiE;AACjF;AACA;AACA;AACA,eAAe,iCAAiC;AAChD,eAAe,sDAAsD;AACrE;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,8BAA8B,iEAAiE;AAC/F;AACA;AACA;AACA,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,qEAAY;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gDAAgD;AAChD;;AAEA;AACA;AACA;AACA;;AAEA,wBAAwB;;AAExB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,cAAc,wDAAU;AACxB;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;;ACjTR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AAIN;AACE;AACa;AACf;AACA;AACa;AACN;AACa;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF,6CAA6C;AACjI;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iGAAc;AACrD;AACA;AACA;AACA,8BAA8B,+DAAS;AACvC;AACA;AACA,qBAAqB;AACrB;AACA,8CAA8C,4DAAe;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,sEAAe;AAC9E,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,mEAAY;AACxE,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,yBAAyB,oBAAoB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,0EAAkB;AACtF,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,4DAA4D;AAC3E,eAAe,2BAA2B;AAC1C,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,mCAAmC,iGAAc;AACjD;AACA;AACA,0CAA0C,iFAAU;AACpD;AACA;AACA,uCAAuC,+BAA+B;AACtE;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,gBAAgB,oGAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,6FAA6F,aAAa;AAC1G;AACA;AACA;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4EAAM;AACR;AACA;AACA,WAAW,oCAAoC;AAC/C,WAAW,iCAAiC;AAC5C,WAAW,oCAAoC;AAC/C,WAAW,+DAA+D;AAC1E;AAGE;AACF;AACA,mCAAmC,yEAAK;AACxC;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA,C;;;;;;;;;;;;ACvYA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACP;AACoH;AACN;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACjB;AACwC;AAChF;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,IAAI,sKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA,wBAAwB;AACxB;AACA,eAAe,oCAAoC;AACnD,iBAAiB,OAAO,aAAa,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA,4BAA4B,qDAAW;AACvC;AACA;AACA,OAAO;;AAEP;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,oDAAoD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kCAAkC;AACjD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,oCAAoC;AACrD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D,iBAAiB;AAChF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iEAAiE;;AAEjE;AACA;AACA,SAAS;;;AAGT;AACA;AACA;AACA,SAAS;;;AAGT,gCAAgC,qDAAW;AAC3C;AACA,SAAS,EAAE;AACX;;AAEA;;AAEA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;;AAGA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,kEAAkE,oBAAoB;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kEAAkE;;AAElE;AACA;AACA;;AAEA,oDAAoD;;;AAGpD;AACA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA,8BAA8B,qDAAW;AACzC;AACA;AACA,SAAS;;AAET;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8EAA8E;;AAE9E,uCAAuC;;AAEvC;AACA,qCAAqC,mBAAmB;AACxD;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,+EAAsB,4CAA4C;;AAE5E,sCAAsC;;AAEtC;AACA;AACA,WAAW;;;AAGX;AACA;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA,uDAAuD;;;AAGvD,yBAAyB,wKAAkB,KAAK,qDAAW,SAAS;;;AAGpE;AACA;AACA;AACA,WAAW;AACX,sDAAsD;;;AAGtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;;AAEb;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA,uCAAuC;AACvC;;AAEA;AACA;AACA;;AAEA;AACA,yEAAyE;;AAEzE;AACA,YAAY,+EAAsB;AAClC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,wKAAkB,KAAK,qDAAW;AAC3D;AACA;AACA;AACA,WAAW,GAAG;;;AAGd;AACA;AACA;;AAEA,UAAU,+EAAsB;;AAEhC;AACA;AACA;AACA,WAAW;AACX,kDAAkD;;;AAGlD,sCAAsC;;AAEtC;AACA;AACA,WAAW;;;AAGX;AACA;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;;AAEvE,yDAAyD;;AAEzD;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA,SAAS;;;AAGT;AACA;AACA,sDAAsD;;AAEtD,0BAA0B,wKAAkB,KAAK,qDAAW;AAC5D;AACA;AACA,WAAW,GAAG;;;AAGd;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;AAEb,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA,wCAAwC;;AAExC;AACA;AACA;;AAEA,mGAAmG;;AAEnG;;AAEA;AACA,YAAY,+EAAsB;AAClC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,aAAa,wKAAkB;AAC/B;AACA;AACA,OAAO;AACP;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM,EAAE;AACV;AACA,WAAW,kCAAkC;AAC7C,WAAW,oCAAoC;AAC/C,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;;;AAGe;;AAEjC;AACA;;AAEA,iBAAiB,UAAU;AAC3B;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,OAAO;AAClB,WAAW,kCAAkC;AAC7C,WAAW,sCAAsC;;;AAGjD;AACA;;AAEA,iBAAiB,WAAW;AAC5B,IAAI,6EAAoB;AACxB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,cAAc;;;AAGd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACnvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACH;AACS;AACG;AACZ;AACqH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI,gDAAgD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,gDAAgD;AAC1D;AACA;AACA;AACA,mDAAmD,yBAAyB;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,+CAA+C;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oCAAoC;AACjD,aAAa,OAAO,YAAY;AAChC,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA,+DAA+D,sBAAsB;AACrF;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,0CAA0C;AAC3D;;AAEA,GAAG;AACH;AACA;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kEAAkE;;AAElE;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;;AAGP;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,0CAA0C,cAAc;AACxD;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oCAAoC;AACnD,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,kBAAkB,uBAAuB;AACzC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA,gBAAgB,cAAc;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA,iDAAiD;;;AAGjD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,oCAAoC;AACnD;;AAEA,GAAG;AACH;AACA;AACA;AACA,2CAA2C,wCAAwC;AACnF;AACA,OAAO;;;AAGP,qCAAqC,6BAA6B;AAClE,0CAA0C,yCAAyC;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,oCAAoC;AACnD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA,0BAA0B,2CAA2C;AACrE;AACA,aAAa,OAAO;AACpB,cAAc,oCAAoC;AAClD,cAAc,OAAO;AACrB,cAAc,OAAO;AACrB,WAAW,QAAQ;AACnB,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;AACrB;AACA,cAAc,OAAO;AACrB;;;;;;;;;;;;;;;ACnbA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACoB;AAC1B;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACmD;AACZ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA,2BAA2B,4KAAsB,oBAAoB,4KAAsB;AAC3F;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA,KAAK,EAAE;;;AAGP;AACA,+CAA+C;;AAE/C;AACA;AACA;AACA,gCAAgC;;AAEhC;;AAEA;AACA,OAAO;;AAEP;AACA;;AAEA,uBAAuB,aAAa;AACpC;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,uEAAI;AACN;AACA;AACA;AACA,kEAAkE,sDAAsD;AACxH;AACA;AACA;;;AAGsC;;AAEtC;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;A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AAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,qBAAqB;AACrC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;;AAEA,wBAAwB,4DAAY;AACpC;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA,qCAAqC,mCAAmC;AACxE;AACA;AACA,eAAe,OAAO;AACtB,eAAe,YAAY,iCAAiC,gEAAgE;AAC5H,eAAe,OAAO;AACtB,gBAAgB,wDAAwD;AACxE,eAAe,wCAAwC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,mFAAmF;AACnF;AACA;AACA;AACA;;AAEA,4DAA4D;;AAE5D;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;;AAGT;AACA;;AAEA;AACA,SAAS;;;AAGT;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,oFAAK;AAC9B;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,SAAS;;AAET;;AAEA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iEAAiE;AACjE;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4DAA4D;AAC5D;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAO;;;;;;;;;;;;;;AClOT;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACC;AACsG;AACN;AACN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AAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;AACA;AACA,cAAc,8CAAK,EAAE,+CAAM;AAC3B;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;AACR;AACA;AACA;AACA,iBAAiB,wCAAwC;AACzD;AACA,YAAY,kCAAkC;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ,sEAAsE;AAC9E;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;;;;;;;;;;;;;;ACzFA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI,8CAA8C;AAClD;AACA;AACA;AACA;AACA,kBAAkB,0BAA0B,8BAA8B,0BAA0B;AACpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,gCAAgC;AAC7C,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB,gCAAgC;AAChD;AACA;AACA;AACA,wEAAwE,aAAa;AACrF,YAAY,mBAAmB;AAC/B;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E,gCAAgC,aAAa;AAC7C;AACA,YAAY;AACZ;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA,8DAA8D,YAAY;AAC1E,+BAA+B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;;;AAGA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO,mCAAmC;;AAE1C;AACA;AACA;;AAEA,uBAAuB,mFAAI;;AAE3B;AACA;AACA;AACA,kDAAkD;;;AAGlD;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO,kBAAkB;AACzB;AACA,sDAAsD;AACtD;AACA;AACA;AACA;AACA;AACA;;;AAGA,6DAA6D,iFAAiF;;AAE9I,6DAA6D;;AAE7D;AACA;AACA;;AAEA,uBAAuB,mFAAI;;AAE3B;AACA;AACA;AACA,mDAAmD;;;AAGnD;;AAEA;AACA;AACA,OAAO;;;AAGP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,uEAAuB;AAC1C;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,GAAG,mEAAmE;AACvE,OAAO,iDAAiD;AACxD;AACA;AACA,WAAW;AACX,iEAAiE;AACjE,aAAa;;;AAGb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,CAAC;AACD;AACA,WAAW,sCAAsC;AACjD,WAAW,kCAAkC;AAC7C,aAAa;;;AAGb;AACA;AACA;AACA,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA,cAAc;;;AAGd;AACA;AACA,2BAA2B;;AAE3B,0BAA0B;;AAE1B,iBAAiB,uBAAuB;AACxC;;AAEA;AACA;AACA;AACA;AACA,GAAG;;;AAGH,oBAAoB;;AAEpB;;AAEA,8BAA8B,oBAAoB;AAClD;AACA;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACrXA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACC;;AAE7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACiE;AACb;AACpD;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C;;AAEe;AACf;AACA;AACA;AACA,kDAAkD;;AAElD,MAAM,yEAAG;AACT;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,qDAAqD;;AAElE;AACA;AACA;AACA,+GAA+G;;AAE/G,sCAAsC;AACtC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,KAAK;;;AAGL;AACA;AACA,KAAK;AACL;AACA;;;AAGA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA,8CAA8C,qBAAqB;AACnE;;;AAGA;AACA;AACA,uGAAuG;AACvG;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,oBAAoB,sFAAO,aAAa,sFAAO,gBAAgB,sFAAO,eAAe,sFAAO;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF,oBAAoB,aAAa;AACjC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,WAAW,8CAA8C;AACzD,aAAa;;;AAGb;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACvKA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACS;AACL;AACG;AACG;AACJ;;AAE1C,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACsD;AACkB;AACxE;AACA;AACA;AACA;AACA,WAAW;AACX,iEAAiE;AACjE,aAAa;AACb;;AAEO;AACP;AACA;AACA,GAAG;;;AAGH;AACA;;AAEA;AACA,uBAAuB,+BAA+B;AACtD;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,gEAAgE;AAChE,aAAa,iBAAiB,qBAAqB,+CAA+C;AAClG;AACA;;AAEO;AACP;AACA;AACA;AACA,GAAG;;;AAGH,mBAAmB,kFAAI;AACvB,gBAAgB,2FAAa,mCAAmC;;AAEhE;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6BAA6B;AACxC,WAAW,6BAA6B;AACxC,aAAa;AACb;;AAEO;AACP;AACA;AACA,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;AC1GA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;;AAE9C,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,sCAAsC;AACjD;AACA,WAAW,SAAS;AACpB,WAAW,oBAAoB;AAC/B;AACA,WAAW,SAAS;AACpB;AACe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,yBAAyB,+BAA+B;AACxD;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACvEA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,IAAI,sDAAsD;AAC1D,IAAI,4CAA4C;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,WAAW,oBAAoB;AAC/B,aAAa;AACb;AACe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;ACrCA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,yBAAyB,gCAAgC;AACzD;AACA;AACA,IAAI,oDAAoD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,WAAW,OAAO;AAClB,WAAW,oBAAoB;AAC/B;AACe;AACf;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,C;;;;;;;;;;;;ACpDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACoB;AACpC;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2B;AACa;AACS;AACG;AACyB;AAC3B;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA,uBAAuB,kFAAG,GAAG;;AAE7B;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA,2DAA2D,eAAe;AAC1E;AACA;AACA,gBAAgB;AAChB;;;AAGA;AACA;AACA,iEAAiE,iCAAiC;AAClG;AACA;AACA,gBAAgB,0CAA0C;AAC1D;;AAEA;AACA;AACA,+DAA+D,6BAA6B;AAC5F;AACA;AACA,gBAAgB,oBAAoB;AACpC;;AAEA;AACA;AACA,sDAAsD,gBAAgB;AACtE,QAAQ,2BAA2B;AACnC;AACA;AACA,gBAAgB,iCAAiC;AACjD;;AAEA,yBAAyB,uDAAQ;;AAEjC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA,oCAAoC,4KAAsB,oBAAoB,4KAAsB,kBAAkB,4KAAsB,mDAAmD,4KAAsB;;AAErN;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA,MAAM,0JAAI,CAAC,qKAAe;;AAE1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,eAAe;AACnC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kBAAkB,gDAAgD;AAClE;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,4BAA4B,6DAAW;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA,0BAA0B,6CAAI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD,QAAQ,eAAe,GAAG,aAAa,MAAM,iBAAiB;AAC9D;AACA;AACA;AACA;AACA,eAAe,wBAAwB;AACvC,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,wBAAwB,mGAAmB;AAC3C;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6CAAI;;;;;;;;;;;;;;ACtSN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DA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CAAiC;AAC9C;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,QAAQ,qBAAqB;AAC7B,QAAQ,4DAA4D;AACpE,qCAAqC,+BAA+B;AACpE;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,yBAAyB,4DAA4D;AACrF,uBAAuB,iBAAiB;AACxC,QAAQ,+BAA+B;AACvC;AACA,eAAe,OAAO;AACtB,iBAAiB,oBAAoB;AACrC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA,kBAAkB,oFAAa;AAC/B;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;AACJ;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;;;AAG0B;;AAEvC;AACA;AACA,C;;;;;;;;;;;;AC9NA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACoB;A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F;AACA;AACA;AACA,wEAAwE;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+EAA+E;AAC/E,QAAQ,oDAAoD;AAC5D,IAAI,8CAA8C;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,sEAAsE,8CAA8C;AACpH;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,aAAa,2BAA2B;AACxC,aAAa,wDAAwD;AACrE,aAAa,uDAAuD;AACpE;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA,mEAAmE,iBAAiB;AACpF;AACA;AACA,gBAAgB,uCAAuC;AACvD;;AAEA;AACA;AACA,iDAAiD,kBAAkB;AACnE,QAAQ,oEAAoE;AAC5E;AACA;AACA;AACA;AACA;AACA,YAAY,sEAAsE;AAClF,QAAQ,kDAAkD;AAC1D;AACA;AACA,gBAAgB,uDAAuD;AACvE;;AAEA;AACA;AACA,4EAA4E,uBAAuB;AACnG;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA,YAAY,uDAAuD;AACnE;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA;AACA;AACA,gEAAgE,eAAe;AAC/E;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,iGAAiG;AACzG;AACA;AACA,QAAQ,sEAAsE;AAC9E,oCAAoC,mBAAmB;AACvD;AACA;AACA;AACA,gBAAgB,2BAA2B;AAC3C;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;AAGA,6BAA6B,mFAAY;AACzC;AACA,wBAAwB,qDAAqD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,2BAA2B,uFAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,gBAAgB,iDAAiD;AACjE,eAAe,mEAAmE;AAClF;AACA,yEAAyE,iDAAiD;AAC1H;AACA;AACA,gBAAgB,iCAAiC;AACjD;;AAEA;AACA;AACA,QAAQ,mEAAmE;AAC3E;AACA,yEAAyE,oDAAoD;AAC7H;AACA;AACA,gBAAgB,0CAA0C;AAC1D;;AAEA;AACA;AACA;AACA,YAAY,gBAAgB,gCAAgC;AAC5D;AACA;AACA,YAAY,mBAAmB;AAC/B,QAAQ,oEAAoE;AAC5E;AACA,yEAAyE;AACzE,WAAW,oDAAoD;AAC/D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA,MAAM,0JAAI,CAAC,qKAAe,qDAAqD;;;AAG/E;AACA;AACA,OAAO,EAAE;;AAET,0DAA0D;AAC1D;;AAEA;AACA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,OAAO,EAAE;;AAET,6CAA6C;;AAE7C;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gBAAgB,uBAAuB;AACvC,QAAQ;AACR;AACA;AACA,cAAc;AACd;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6CAAI;AACN;AACA;AACA;AACA,IAAI,mEAAmE;AACvE,IAAI,iEAAiE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,yCAAyC;AACvF;AACA;AACA,gCAAgC;AAChC;AACA;AACA,YAAY,OAAO;AACnB;;;AAGmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;;AAEA,mCAAmC,8FAAkB,C;;;;;;;;;;;;ACtbrD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACD;AACmH;AAC5J;AACA;AACA;AACA;AACA;AACA;AACA;AACoD;AACV;AACmB;AACZ;AACT;AACQ;AACU;AACZ;AACY;AACQ;AACL;AACH;AAC1D;AACA,iEAAiE,4DAA4D;AAC7H,WAAW,qEAAqE;AAChF,IAAI,mEAAmE;AACvE;AACA;AACA;AACA,4BAA4B,sEAAsE;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,8DAA8D;AAClE,IAAI,gEAAgE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE;AAClE,iCAAiC,wDAAwD;AACzF,qDAAqD,iDAAiD;AACtG,IAAI,oDAAoD;AACxD;AACA,WAAW,2BAA2B;AACtC,WAAW,SAAS;AACpB,IAAI,8DAA8D;AAClE,aAAa,6CAA6C;AAC1D;AACO;AACP,0FAA0F,kEAAkB;AAC5G;AACA,wBAAwB,0DAAiB;AACzC,2BAA2B,qDAAY;AACvC;AACA,8BAA8B,kEAAkB;AAChD;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,gDAAgD;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,8CAA8C,MAAM,gDAAgD;AAC5G;AACA,WAAW,6CAA6C;AACxD,WAAW,kDAAkD;AAC7D;AACO;AACP;AACA;AACA,qDAAqD,4DAAW;AAChE;AACA,iCAAiC,cAAc,iCAAiC,EAAE;AAClF;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,wBAAwB,uCAAuC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,0DAA0D;AAC9D;AACA;AACA,QAAQ,8CAA8C,MAAM,4BAA4B;AACxF;AACA,WAAW,6CAA6C;AACxD,WAAW,+DAA+D;AAC1E;AACA;AACO;AACP;AACA,+CAA+C,sDAAQ;AACvD;AACA;AACA;AACA,uBAAuB,+DAAiB;AACxC,SAAS;AACT;AACA,mCAAmC,0DAAY;AAC/C;AACA;AACA,iCAAiC,2DAAU;AAC3C,aAAa;AACb,iCAAiC,iEAAgB;AACjD;AACA;AACA,+DAA+D,wKAAkB;AACjF;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,WAAW,6CAA6C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6CAA6C;AACxD;AACA;AACA,QAAQ,8EAAmB;AAC3B;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA,WAAW,6CAA6C;AACxD;AACA;AACA;AACA;AACA,kCAAkC,iEAAgB;AAClD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,WAAW,6CAA6C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD,8CAA8C;AAC9C;AACA;AACA,aAAa,OAAO;AACpB;AACA,cAAc,OAAO;AACrB,cAAc,sBAAsB;AACpC;AACA,G;;;;;;;;;;;;AC5QA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACJ;AAC2G;AACN;AAChB;AACU;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,6BAA6B;AAC1C,aAAa,YAAY;AACzB;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;;;AAGA;AACA;AACA,4BAA4B,wBAAwB;AACpD,qCAAqC,gBAAgB;AACrD;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA,oEAAoE,wBAAwB;AAC5F;AACA;AACA,QAAQ,yDAAyD;AACjE;AACA;AACA;AACA,gBAAgB,6BAA6B;AAC7C;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,gBAAgB;AAC9D,MAAM,wBAAwB,eAAe,eAAe,KAAK,wBAAwB;AACzF;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA,MAAM,0JAAI,CAAC,qKAAe;;AAE1B;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,MAAM,0JAAI,CAAC,qKAAe;AAC1B;AACA;AACA,qEAAqE,eAAe;AACpF,YAAY,iBAAiB,2BAA2B,iCAAiC;AACzF;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6CAAI;;;;;;;;;;;;;;AC5LN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACJ;AAC2G;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC6D;AAC7D;AACA,wDAAwD,yDAAyD;AACjH;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC,aAAa,6BAA6B;AAC1C,aAAa,YAAY;AACzB,MAAM;AACN;AACA;AACA;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA,gBAAgB,0JAAI,CAAC,qKAAe;AACpC;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA,CAAC,CAAC,kEAAc;;;;;;;;;;;;;AC5FhB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACuD;AACT;AACM;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA;AACA;AACA,aAAa,2BAA2B;AACxC;AACA;AACA;AACA,QAAQ,qKAAe;AACvB;AACA,2BAA2B,iFAAG;AAC9B;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oBAAoB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA,qCAAqC,wDAAS;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA,CAAC,CAAC,8DAAY;;;;;;;;;;;;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A,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,kBAAkB;AAC5D;AACA;AACA;AACA,cAAc,yBAAyB;AACvC;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA,oBAAoB,aAAa,UAAU,kBAAkB;AAC7D;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY,UAAU,kBAAkB;AAC5D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,oBAAoB,YAAY,UAAU,kBAAkB;AAC5D;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,oBAAoB,gBAAgB,UAAU,kBAAkB;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,kBAAkB;AACzE,WAAW,eAAe;AAC1B;AACA;AACA,eAAe,OAAO,4CAA4C,eAAe;AACjF;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;;;AAGA;AACA;AACA,OAAO;;;AAGP;;AAEA;AACA,8CAA8C;;AAE9C;AACA;AACA,SAAS;;;AAGT;AACA,OAAO;;AAEP;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB;AAC7D;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2CAA2C,kBAAkB,WAAW,eAAe;AACvF;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,+CAA+C,kBAAkB,WAAW,eAAe;AAC3F;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,oCAAoC,kBAAkB;AACtD,WAAW,oBAAoB;AAC/B;AACA;AACA,gBAAgB,YAAY;AAC5B;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,uBAA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AAS;AAC/B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,GAAG,kBAAkB;AAC/B;AACA,eAAe,OAAO;AACtB,eAAe,OAAO,SAAS;AAC/B,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,2BAA2B;AAC1C,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,2BAA2B;AAC1C;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,UAAU;AACzB;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;AC5QR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACJ;AAC2G;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC8B;AACkD;AAChB;AACF;AACA;AACxB;AACoB;AAC1D,WAAW,yFAAM;AACjB,4BAA4B,iFAAM;AAClC;AACA;AACA;AACA;AACA,IAAI,wEAAwE;AAC5E,IAAI,sDAAsD;AAC1D;AACA;AACA;AACA,oBAAoB,wEAAwE;AAC5F;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,IAAI,gDAAgD;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA;AACA;AACA;AACA;AACA;AACA,cAAc,uBAAuB;AACrC;AACA;AACA,QAAQ,iFAAiF;AACzF;AACA,gBAAgB,gBAAgB,MAAM,WAAW;AACjD;AACA;AACA;AACA,gBAAgB,4CAA4C;AAC5D;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA;AACA;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA;AACA;AACA,sDAAsD,iBAAiB;AACvE,wBAAwB,WAAW;AACnC;AACA;AACA,gBAAgB,SAAS;AACzB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,0CAA0C,+CAA+C;AACzF;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,8DAA8D,YAAY;AAC1E;AACA;AACA,gBAAgB,WAAW;AAC3B;AACA,eAAe,kCAAkC;AACjD,QAAQ,mDAAmD;AAC3D,QAAQ,iFAAiF;AACzF;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,4CAA4C;AAC5C;AACA;AACA;AACA;AACA,OAAO;;AAEP,kFAAkF;AAClF;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,kCAAkC,gBAAgB;AAClD;AACA;AACA,8BAA8B;AAC9B,WAAW,gDAAgD;AAC3D;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,2CAA2C,aAAa;AACxD;AACA,4DAA4D,YAAY;AACxE;AACA,eAAe,kCAAkC;AACjD,QAAQ,mDAAmD;AAC3D,QAAQ,iFAAiF;AACzF;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,kCAAkC;AAClC;AACA;;;AAGA;AACA;AACA;AACA,8CAA8C,WAAW;AACzD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,WAAW;AACtE;AACA;AACA,eAAe,kCAAkC;AACjD,QAAQ,mDAAmD;AAC3D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,oGAAoG;;AAEpG,oBAAoB,iFAAM;AAC1B,yCAAyC;;AAEzC,yFAAyF;;AAEzF,kGAAkG;AAClG;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO,EAAE;;AAET,oBAAoB,iFAAM;AAC1B;AACA,OAAO;AACP;AACA;AACA,0DAA0D,WAAW;AACrE;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA,yBAAyB,iFAAM;AAC/B,yBAAyB,iFAAM;AAC/B;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6CAAI,EAAE;AACR;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa;;;AAG0B;;AAEvC;AACA,MAAM,4DAAS;AACf;AACA;;AAEA,MAAM,0FAAO;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB;;AAEA,uCAAuC,6FAAkB;AACzD;AACA;AACA,6BAA6B,yEAAyE;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,yEAAyE;AACjF;AACA,kDAAkD,yCAAyC;AAC3F;AACA;AACA,+CAA+C,gBAAgB;AAC/D;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa;;AAEb;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,oBAAoB;AAC/B,aAAa;;;AAGb;AACA;AACA,C;;;;;;;;;;;;AClxBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgI;AAClF;AACC;AACP;AACA;AACI;AACC;AACH;AACG;AACZ;AACqH;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACP;AACpB;AACmB;AACuB;AACF;AACR;AACJ;AACK;AACJ;AACC;AACL;AACvD,WAAW,yFAAM;AACjB;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6EAA6E;AACtF;AACA;AACA,IAAI,gEAAgE;AACpE,oDAAoD,yEAAyE;AAC7H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA,YAAY;AACZ,gBAAgB,oBAAoB,+CAA+C;AACnF,WAAW,sBAAsB;AACjC;AACA;AACA,QAAQ;AACR,eAAe,qDAAqD;AACpE;AACA,gBAAgB,0CAA0C;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0DAA0D;AAC1E;AACA,yBAAyB,0DAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,oBAAoB;AACjC,eAAe;AACf;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,oBAAoB;AACnC,eAAe,kCAAkC;AACjD,eAAe,OAAO,+DAA+D,oBAAoB;AACzG,eAAe,QAAQ,oCAAoC,oBAAoB;AAC/E,eAAe,QAAQ;AACvB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oFAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oFAAa;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,kCAAkC;AACjD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,eAAe,OAAO;AACtB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oFAAa;AAC3C;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,IAAI;AACnB,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB,GAAG,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,oBAAoB;AACnC,eAAe,OAAO,8EAA8E,oBAAoB;AACxH,eAAe,QAAQ,oCAAoC,oBAAoB;AAC/E;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,aAAa,gCAAgC;AAC5F;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4EAAM;AACR;AACA,2CAA2C,oFAAoF;AAC/H;AACA,YAAY,oFAAoF;AAChG;AACA;AACA;AAGE;AACF;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,kCAAkC,mFAAY;AAC9C;AACA;AACA;AACA,cAAc;AACd;AACA,wEAAwE,wEAAQ;AAChF;AACA;AACA;AACA,cAAc;AACd;AACA,oEAAoE,oEAAQ;AAC5E;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,yCAAyC,yCAAyC;AAClF,wCAAwC,2BAA2B;AACnE,yBAAyB;AACzB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iCAAiC,uCAAuC;AACxE;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA,gBAAgB,0JAAI,CAAC,sKAAe;AACpC;AACA,aAAa;AACb;AACA;AACA,eAAe,oBAAoB;AACnC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA,+BAA+B,2DAAU;AACzC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,8CAAI;AACN;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,oBAAoB,OAAO;AAC3B;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,eAAe,OAAO;AACtB,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA,mCAAmC,8CAAI;AACvC,sCAAsC,aAAa;AACnD;AACA;AACA;AACA,aAAa;AACb,4BAA4B,OAAO;AACnC,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,oCAAoC,+EAAI;AACxC;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,CAAC,CA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A;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA,sDAAsD,WAAW;AACjE;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA,mCAAmC,gBAAgB;AACnD;AACA;AACA,sDAAsD,WAAW;AACjE;AACA,gBAAgB,yCAAyC;AACzD;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA,6BAA6B,cAAc;AAC3C;AACA,aAAa,aAAa;AAC1B;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC,MAAM;AAC3C;AACA,WAAW,aAAa;AACxB;AACA,eAAe;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,uDAAuD;AAC/D,QAAQ,4DAA4D;AACpE,yBAAyB,qDAAqD;AAC9E;AACA;AACA;AACA;AACA;AACA,QAAQ,yCAAyC;AACjD;AACA;AACA,uCAAuC,qBAAqB;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,SAAS;AACT;AACA,yCAAyC;AACzC;AACA;AACA;AACA,eAAe,KAAK;AACpB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA,2BAA2B,gDAAgD;AAC3E;AACA,eAAe,KAAK;AACpB,0BAA0B,wCAAwC;AAClE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,QAAQ,0DAA0D;AAClE;AACA;AACA;AACA,QAAQ,8CAA8C,oBAAoB;AAC1E,YAAY,sCAAsC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,QAAQ,8CAA8C,oBAAoB,sCAAsC;AAChH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iBAAiB,uCAAuC;AACxD;AACA,eAAe,wCAAwC;AACvD,eAAe,kCAAkC;AACjD,iFAAiF,0BAA0B;AAC3G,iBAAiB;AACjB;;AAEA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,mCAAmC,uCAAuC;AAC1E;AACA;AACA,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA,2BAA2B;;AAE3B;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,6CAA6C;AAC5F;AACA;AACA,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mDAAmD;;AAEnD,8CAA8C;;AAE9C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;;AAGA,iBAAiB,2DAAQ,2DAA2D;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE;AACpE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,6CAA6C;AACrD;AACA,gCAAgC,OAAO;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO,iDAAiD,4CAA4C;AACnH,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,2CAA2C;AACpG;AACA;AACA,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA,oCAAoC,iCAAiC;AACrE;AACA;AACA;AACA,eAAe;AACf;AACA,eAAe;AACf;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,UAAU,yFAAM;AAC3B;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gDAAgD;AAChD;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,4BAA4B,qKAAc;AAC1C;AACA;;AAEA;AACA,SAAS;;AAET;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6CAA6C,aAAa;AAC9E;AACA;AACA,cAAc,6CAA6C;AAC3D;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,uCAAuC;AACtD,eAAe,SAAS;AACxB,eAAe,8BAA8B;AAC7C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,uCAAuC;;AAEvC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,gBAAgB,6DAA6D;AAC7E;AACA;AACA;AACA,eAAe,iBAAiB;AAChC,eAAe,OAAO;AACtB,QAAQ,aAAa,mBAAmB,+CAA+C;AACvF;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,wDAAwD;;AAExD;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA,qBAAqB,gCAAgC;AACrD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D,qBAAqB,4CAA4C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,gCAAgC,iBAAiB,EAAE,iBAAiB;AACpE;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C,eAAe,sCAAsC;AACrD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,gBAAgB,mDAAmD;AACnE,wCAAwC,cAAc;AACtD;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAE8B;AAC/B,kFAAG,WAAW,mFAAY;AAC1B;AACA,uCAAuC,uCAAuC;AAC9E;AACA;AACA;;AAEO;AACP;AACA,iCAAiC,yCAAyC;AAC1E;AACA,aAAa,sCAAsC;AACnD;AACA;AACA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,6CAA6C;AAC7D;;AAEA;AACA,WAAW,wCAAwC;AACnD;AACA,gDAAgD,oDAAoD;AACpG;AACA;AACA,gBAAgB,uCAAuC;AACvD;;AAEA;AACA,wBAAwB,uEAAuE;AAC/F;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA,sDAAsD,mDAAmD;AACzG;AACA,gBAAgB,SAAS;AACzB;AACA;AACA;AACA,+DAA+D,mDAAmD;AAClH,MAAM,oDAAoD;AAC1D,MAAM,kDAAkD;AACxD;AACA,aAAa,KAAK,iDAAiD,kDAAkD;AACrH,eAAe,EAAE,eAAe,mDAAmD;AACnF,MAAM,oDAAoD;AAC1D;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,mDAAmD;AACjH,QAAQ,oDAAoD;AAC5D,iBAAiB,6CAA6C;AAC9D;AACA,eAAe,uCAAuC;AACtD,eAAe,SAAS;AACxB,eAAe,8BAA8B;AAC7C,iBAAiB,SAAS;AAC1B;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mFAAmF;;AAEnF;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA;AACA;AACA,sBAAsB,8CAA8C;AACpE;AACA;AACA,yBAAyB,sCAAsC;AAC/D;AACA;AACA;;AAEO;AACP,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,sKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA,YAAY,iDAAiD;AAC7D;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,8BAA8B;AAC7C,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA,6DAA6D;;AAE7D;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;AACD;AACA,2BAA2B,mDAAmD,iBAAiB;AAC/F;AACA;AACA;AACA;;AAEO;AACP,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,sKAAe;;AAEnB;AACA;;AAEA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,0JAAI,CAAC,qKAAe;;AAEtC;AACA;AACA;AACA,gEAAgE,mDAAmD;AACnH,QAAQ,oDAAoD;AAC5D;AACA,gBAAgB,OAAO;AACvB;;AAEA,GAAG;;AAEH;AACA,CAAC,kBAAkB,0BAA0B,6CAA6C;AAC1F,IAAI,yCAAyC;AAC7C;AACA,WAAW,uCAAuC;AAClD,aAAa;;AAEb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,CAAC,+BAA+B,6CAA6C;AAC7E,4DAA4D;AAC5D;AACA;AACA,WAAW,uCAAuC;AAClD,WAAW,KAAK,6BAA6B,mDAAmD;AAChG,aAAa;;;AAGb;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA,KAAK;;;AAGL;AACA,GAAG;AACH,CAAC;AACD,qBAAqB,6CAA6C;AAClE;AACA,WAAW,uCAAuC;AAClD,WAAW,SAAS;AACpB,WAAW,KAAK,6BAA6B,mDAAmD;;;AAGhG;AACA;AACA,gDAAgD;AAChD;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa;;;AAGb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;;;AAGb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,OAAO;AAClB,aAAa;;;AAGb;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,sCAAsC;AACjD,aAAa;;;AAGb;AACA,cAAc,gEAAa;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC,sBAAsB,4CAA4C;AACnE;AACA;AACA,OAAO;AACP,OAAO;AACP,OAAO;AACP,OAAO;AACP;AACA,WAAW,sCAAsC;AACjD,aAAa,sCAAsC;;;AAGnD;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,oDAAoD;;AAEpD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;;AAEA,sDAAsD,yFAAM;AAC5D;AACA,aAAa;AACb;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,CAAC,wCAAwC,4CAA4C;AACrF;AACA;AACA;AACA,SAAS,yCAAyC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yCAAyC;AACpD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;;;AAGlB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC,gCAAgC,4CAA4C;AAC7E;AACA;AACA;AACA,SAAS,yCAAyC;AAClD,WAAW,yCAAyC,SAAS,MAAM;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yCAAyC;AACpD,WAAW,yCAAyC,SAAS,MAAM;AACnE;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;;;AAGpB;AACA;AACA;AACA;;AAEA;AACA,CAAC,yBAAyB,4CAA4C;AACtE;AACA;AACA;AACA;AACA;AACA,KAAK,kBAAkB;AACvB;AACA,WAAW,OAAO;AAClB,aAAa,sCAAsC;;;AAGnD;AACA;AACA;AACA;AACA,CAAC,qBAAqB,4CAA4C;AAClE;AACA;AACA,MAAM,cAAc;AACpB,MAAM,QAAQ,yCAAyC;AACvD;AACA;AACA;AACA;AACA;AACA,MAAM,kBAAkB;AACxB,MAAM,UAAU,yCAAyC;AACzD;AACA;AACA,WAAW,sCAAsC;;;AAGjD;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;;;AAGlB;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;;;AAGb;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;;;AAGb;AACA;AACA;AACA;;AAEA,2CAA2C,wKAAkB;AAC7D,KAAK;AACL;AACA;AACA;AACA,CAAC,kBAAkB,yCAAyC,uBAAuB,kCAAkC;AACrH,sBAAsB,4CAA4C,OAAO,yCAAyC;AAClH;AACA,WAAW,4BAA4B;AACvC,WAAW,sCAAsC;AACjD,WAAW,OAAO;;;AAGlB;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,gEAAgE,wKAAkB;AAClF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oFAAa;AAC7B;;AAEA;;AAEA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,EAAE;;;AAGb;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA,WAAW,EAAE;;;AAGb;AACA,yBAAyB,8CAAI;AAC7B,CAAC,0CAA0C;AAC3C;AACA;AACA,WAAW,EAAE;;;AAGb;AACA;AACA,CAAC,0CAA0C;AAC3C;AACA;AACA,WAAW,EAAE;;;AAGb;AACA,yBAAyB,wDAAc;AACvC,CAAC,mCAAmC;AACpC;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,IAAI,wCAAwC;AAC5C;AACA;AACA,WAAW,OAAO;;;AAGlB;AACA;AACA;AACA;AACA,wBAAwB,kCAAkC;AAC1D;AACA;AACA;AACA;AACA,MAAM,6CAA6C;AACnD,MAAM,gDAAgD;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM;AAC1B;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,cAAc,6CAA6C;AAC3D,WAAW,6CAA6C;AACxD,cAAc;AACd;AACA;AACA,MAAM;AACN;AACA,gBAAgB;AAChB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,KAAK;AACL;AACA,MAAM,0BAA0B,WAAW,kCAAkC;AAC7E,sEAAsE,kCAAkC;AACxG;AACA;AACA,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,cAAc,8CAA8C;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,cAAc,OAAO,uBAAuB,sCAAsC;AAClF;AACA,cAAc,8CAA8C;AAC5D,qBAAqB,2CAA2C;AAChE;AACA,cAAc,wDAAwD;AACtE,qBAAqB,6CAA6C;AAClE;AACA,cAAc,oGAAoG;AAClH,qBAAqB,uCAAuC;AAC5D;AACA,cAAc,2DAA2D;AACzE,qBAAqB,iDAAiD;AACtE;;AAEA;AACA;AACA,wCAAwC,8CAA8C;AACtF;AACA;AACA,MAAM,4CAA4C;AAClD,MAAM,uCAAuC;AAC7C,IAAI,8CAA8C;AAClD,MAAM,yCAAyC;AAC/C,MAAM,6CAA6C,MAAM;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,MAAM;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,+CAA+C,MAAM;AACrD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oCAAoC,eAAe;AACnD;AACA;AACA;AACA;AACA,6BAA6B,MAAM;AACnC;AACA,KAAK;AACL;AACA;AACA,UAAU;AACV;;AAEA;AACA;AACA,eAAe,8CAA8C;AAC7D;AACA;AACA;AACA,MAAM,4CAA4C;AAClD,MAAM,6CAA6C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA;AACA,UAAU;AACV;;AAEA;AACA,wBAAwB,uCAAuC;AAC/D,0BAA0B,yDAAyD;AACnF;AACA;AACA;;AAEA;AACA,aAAa,yDAAyD;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,KAAK;AACL;AACA,yCAAyC,6CAA6C;AACtF,IAAI,gDAAgD;AACpD;AACA;AACA,WAAW,gBAAgB;AAC3B,IAAI,8CAA8C;AAClD,WAAW,SAAS;AACpB,aAAa;AACb;;AAEA;AACA,aAAa,yDAAyD;AACtE;AACA;AACA,WAAW,sCAAsC;AACjD,uCAAuC,8CAA8C;AACrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,yCAAyC,6CAA6C;AACtF;AACA;AACA,WAAW,OAAO,iCAAiC,8CAA8C;AACjG,WAAW,OAAO,mCAAmC,8CAA8C;AACnG;AACA,WAAW,SAAS;AACpB,aAAa;AACb;;AAEA;AACA,QAAQ,8CAA8C;AACtD;AACA;AACA;AACA;;AAEA;AACA,UAAU,8CAA8C;AACxD;AACA;AACA;AACA,YAAY,QAAQ;AACpB;;AAEA;AACA;AACA;AACA,YAAY,iBAAiB;AAC7B;;AAEA;AACA,0BAA0B,2CAA2C;AACrE,qBAAqB,mCAAmC;AACxD;AACA,YAAY,QAAQ;AACpB;;AAEA;AACA,0CAA0C;AAC1C;AACA,IAAI,mCAAmC;AACvC;AACA,YAAY,OAAO;AACnB,G;;;;;;;;;;;;AC5+DA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA,WAAW,+CAA+C;AAC1D;AACA,WAAW,uCAAuC;AAClD;AACA,WAAW,0CAA0C;AACrD;AACA,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C;;AAE1C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG,EAAE;;AAEL;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;AC3DA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,aAAa,OAAO;AACpB;AACe;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,C;;;;;;;;;;;;AC9CA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACZ;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2B;AAC3B;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA,CAAC,CAAC,6CAAI;;;;;;;;;;;;;;ACpDN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACF;AACsG;AAC1G;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACuG;AACN;AACoB;AACpC;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2B;AAC2C;AAC7B;AACqC;AACpB;AAC0B;AACzB;AACD;AACI;AAInC;AAC6D;AACI;AACxC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,iCAAiC,gDAAgD;AACjF;AACA,eAAe,cAAc;AAC7B;AACA,aAAa,2BAA2B;AACxC,aAAa,6CAA6C;AAC1D;AACA;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,mFAAY;AAC7C;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,gBAAgB;AAChB;AACA,+BAA+B,uFAAgB;AAC/C;AACA,6CAA6C,eAAe;AAC5D;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,wBAAwB,aAAa;AACrC,+EAA+E,aAAa;AAC5F;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA,2BAA2B,kCAAkC;AAC7D;AACA;AACA;AACA,gBAAgB;AAChB;AACA,iCAAiC,qDAAW;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,2BAA2B,4EAAc,CAAC,6KAAsB;AAChE;AACA,SAAS;AACT;AACA;AACA;AACA,YAAY,oDAAoD;AAChE;AACA;AACA;AACA,gBAAgB;AAChB;AACA,kFAAkF,6KAAsB,4BAA4B,6KAAsB;AAC1J;AACA;AACA;AACA;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA,gBAAgB,2JAAI,CAAC,sKAAe;AACpC;AACA;AACA;AACA,uCAAuC,+BAA+B;AACtE;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,uBAAuB,2JAAI,CAAC,sKAAe;AAC3C,aAAa;AACb,uCAAuC,kBAAkB;AACzD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,sCAAsC,kBAAkB;AACxD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,QAAQ,sDAAsD;AAC9D;AACA,eAAe,eAAe;AAC9B,eAAe,4CAA4C;AAC3D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,8DAAoB;AACjE,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,qDAAqD,gCAAgC;AACrF;AACA;AACA;AACA,+BAA+B,oCAAoC;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,OAAO;AAC5B;AACA,qCAAqC,8GAAyB,+EAA+E,aAAa;AAC1J;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC,CAAC,8CAAI;AACN;AACA,0BAA0B,gDAAgD;AAC1E,IAAI,sDAAsD;AAC1D;AACA;AACA;AACA;AAGE;AACF;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA,CAAC,CAAC,8CAAI;AACN;AACA;AACA;AACA,cAAc,2DAA2D;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,iDAAiD;AAClF;AACA;AACA,aAAa,0CAA0C;AACvD;AACA;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,oDAAoD;AACrF;AACA;AACA,aAAa,0CAA0C;AACvD;AACA;AACA;AACA;AACA,QAAQ,sKAAe;AACvB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA,4BAA4B,sDAAsD;AAClF,gFAAgF;AAChF,eAAe,qCAAqC;AACpD,QAAQ,0DAA0D;AAClE;AACA,yBAAyB,sDAAsD;AAC/E,oBAAoB,sDAAsD;AAC1E;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,4BAA4B,sDAAsD;AAClF;AACA,mDAAmD,qCAAqC;AACxF;AACA,yBAAyB,sDAAsD;AAC/E;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,qCAAqC,kCAAkC;AACvE;AACA,QAAQ,0EAA0E;AAClF;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,+BAA+B;AAC5D;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,+DAA+D;AAC/D,sBAAsB,sDAAsD;AAC5E;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa,0CAA0C;AACvD;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iDAAiD,sBAAsB;AACvE,qCAAqC,oBAAoB;AACzD;AACA;AACA,QAAQ,oBAAoB,yBAAyB,sBAAsB;AAC3E;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,4BAA4B,wDAAwD;AACpF;AACA;AACA;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA,gDAAgD,sBAAsB;AACtE;AACA,QAAQ,oBAAoB;AAC5B;AACA,gFAAgF,sBAAsB;AACtG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,oGAAiB;AACvD,gCAAgC,oKAAc;AAC9C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb,uDAAuD,sBAAsB;AAC7E,eAAe,oBAAoB;AACnC;AACA,wBAAwB,yBAAyB;AACjD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,8CAA8C,8DAAoB;AAClE;AACA;AACA;AACA;AACA,aAAa;AACb,+CAA+C,oBAAoB;AACnE,eAAe,sBAAsB;AACrC;AACA,wBAAwB,sBAAsB;AAC9C;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,oBAAoB,4BAA4B,gCAAgC;AAChF;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,+BAA+B,uEAAc;AAC7C;AACA;AACA;AACA;AACA,gBAAgB,6EAAoB;AACpC;AACA;AACA;AACA,0BAA0B,qGAAgB;AAC1C,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb,oBAAoB;AACpB;AACA;AACA,0BAA0B,4BAA4B;AACtD;AACA;AACA,gBAAgB,sEAAsE;AACtF;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,+EAAI;AAC5C,sCAAsC,+EAAI;AAC1C;AACA,wCAAwC,iFAAM;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,GAAG;AACJ,0BAA0B,4DAA4D;AACtF;AACA;AACA;AACA;AACA,6DAA6D,sDAAsD;AACnH;AACA;AACA;AACA,YAAY,QAAQ;AACpB;AACA;AACA,mDAAmD,gDAAgD;AACnG;AACA;AACA,IAAI,wDAAwD;AAC5D,IAAI,iEAAiE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,4DAA4D;AAC/F,0CAA0C,yDAAyD;AACnG;AACA;AACA;AACA,WAAW,0CAA0C;AACrD;AACA;AACA,+CAA+C,gEAAgE;AAC/G,mFAAmF;AACnF;AACA;AACA;AACA,YAAY,SAAS;AACrB,WAAW,0CAA0C;AACrD;AACA;AACA,+CAA+C,kEAAkE;AACjH;AACA;AACA;AACA;AACA,YAAY,SAAS;AACrB,G;;;;;;;;;;;;ACh7BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACZ;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC2B;AACyB;AACpD;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;;AAEL;AACA;;AAEA;AACA,CAAC,CAAC,6CAAI;;;;;;;;;;;;;;AClGN;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACwG;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwE;AAC1B;AACZ;AAC2C;AACD;AACV;AACd;AACc;AAC5B;AACtC;AACA;AACA,IAAI,mCAAmC;AACvC;AACA;AACA,UAAU,kDAAkD;AAC5D,IAAI,uDAAuD;AAC3D;AACA;AACA,YAAY,4CAA4C;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA,eAAe,cAAc;AAC7B;AACA,aAAa,2BAA2B;AACxC;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA,kDAAkD;AAClD,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,kDAAkD,0CAA0C;AAC5F;AACA;AACA,gBAAgB,QAAQ;AACxB;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,8CAA8C;AAC/D;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,sBAAsB,mCAAmC;AACzD;AACA,iBAAiB,cAAc;AAC/B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,wBAAwB;AAC5D;AACA;AACA,gBAAgB;AAChB;;AAEA,gCAAgC,iFAAU;AAC1C;AACA;AACA,iBAAiB,2CAA2C;AAC5D;AACA;AACA,gBAAgB;AAChB;;AAEA,oDAAoD;;AAEpD;AACA;AACA,KAAK;AACL;AACA,+CAA+C,eAAe;AAC9D,kCAAkC,uBAAuB;AACzD;AACA,gBAAgB,4BAA4B;AAC5C;;AAEA;AACA,eAAe,8CAA8C;AAC7D,QAAQ,gBAAgB,OAAO,oBAAoB;AACnD;AACA;AACA,gBAAgB,OAAO;AACvB;;;AAGA;AACA;AACA;AACA,oBAAoB,uCAAuC;AAC3D,MAAM,6CAA6C;AACnD;AACA,kBAAkB,6CAA6C;AAC/D,MAAM,6CAA6C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yDAAyD;AAC3E;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA,QAAQ,2CAA2C;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wCAAwC;AACzD;AACA;AACA,2BAA2B,wDAAc;;AAEzC;;AAEA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,YAAY,2BAA2B;AACvC;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,WAAW;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,gBAAgB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,qBAAqB;AAClD;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,eAAe,mDAAmD;AAClE;;AAEA,GAAG;AACH;AACA;AACA,WAAW,yFAAU;AACrB;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA,eAAe,mDAAmD;AAClE;;AAEA,GAAG;AACH;AACA;AACA,WAAW,yFAAU;AACrB;AACA;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA,eAAe,sCAAsC;AACrD;;AAEA,GAAG;AACH;AACA;AACA,0BAA0B,kDAAQ;AAClC;AACA;AACA,QAAQ,iDAAiD,MAAM,gBAAgB;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,gBAAgB,yBAAyB,mBAAmB;AAC9F;AACA,eAAe,sCAAsC;AACrD,oBAAoB,gBAAgB;AACpC;;AAEA,GAAG;AACH;AACA;AACA,MAAM,kDAAQ;AACd;AACA;AACA;AACA;AACA;AACA,cAAc,eAAe,iCAAiC,gBAAgB;AAC9E,cAAc,kBAAkB;AAChC;AACA;AACA,kCAAkC;AAClC,iDAAiD,wBAAwB;AACzE,uBAAuB;AACvB;AACA;AACA;AACA,QAAQ,eAAe;AACvB;AACA,0BAA0B,yCAAyC,MAAM,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,UAAU;AACV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mFAAa;AAC/B,OAAO;;;AAGP;AACA,8CAA8C;;AAE9C;AACA;;AAEA;AACA;AACA;AACA,wEAAwE,qBAAqB;AAC7F,+CAA+C,wBAAwB;AACvE;AACA;AACA,8DAA8D;AAC9D,yBAAyB,gBAAgB;AACzC;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO,EAAE;;;AAGT;AACA;AACA;AACA;AACA;AACA,2BAA2B,cAAc;AACzC;AACA;AACA,YAAY,4DAA4D;AACxE;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,kCAAkC,kDAAQ;AAC1C;AACA,GAAG;;AAEH;AACA,CAAC;;AAE0B;AAC3B,kFAAG,OAAO,uFAAe;AACzB,kFAAG,OAAO,sFAAe,E;;;;;;;;;;;;AC5jBzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACS;AACf;AACS;AACL;AACG;AACG;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL,gCAAgC,6DAA6D,yCAAyC,aAAa,sKAAe,kBAAkB,iCAAiC,iBAAiB,sKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,iLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwE;AACN;AAClE;AACA,aAAa,0BAA0B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,2CAA2C;AACxF;AACA;AACA;AACA;AACA,gDAAgD;AAChD,gDAAgD;AAChD;AACA,OAAO,kEAAkE;AACzE;AACA;AACA;AACA;AACA;AACA,qBAAqB,aAAa;AAClC,KAAK;AACL;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,SAAS,2CAA2C;AACpD;AACA;AACA;AACA;;AAEA;AACA,EAAE,gKAAS;;AAEX;;AAEA;AACA,oCAAoC,8CAA8C;AAClF;AACA,aAAa,2BAA2B,eAAe,uDAAuD;AAC9G;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,KAAK,EAAE,YAAY,kCAAkC;;AAErD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK,EAAE,YAAY,kCAAkC;;;AAGrD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,YAAY,8DAA8D;AAC1E,qBAAqB,wCAAwC;AAC7D;AACA,gBAAgB;AAChB;;;AAGA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kCAAkC;AACrD;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,6EAA6E,kBAAkB;AAC/F,QAAQ,uBAAuB;AAC/B,QAAQ,2CAA2C;AACnD;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,wCAAwC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,iDAAiD;AAC7D;AACA,eAAe,UAAU,SAAS,0BAA0B;AAC5D,QAAQ,wCAAwC;AAChD,iBAAiB;AACjB,iBAAiB,SAAS;AAC1B,QAAQ,2DAA2D;AACnE;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,2EAA2E,aAAa;AACxF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,oFAAa;AAC/B;;AAEA;AACA;AACA,oC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;AACtD,UAAU,wDAAwD;AAClE;AACA;AACA,gBAAgB,MAAM;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,0CAA0C;AAC1D;;AAEA,0CAA0C;;AAE1C;;AAEA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA,gFAAgF;AAChF;AACA;AACA,eAAe,gCAAgC;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,yEAAyE;AAC9F;AACA;AACA,eAAe,wCAAwC;AACvD,eAAe,QAAQ;AACvB,eAAe,0DAA0D;AACzE;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,oCAAoC;;AAEpC,+BAA+B;;AAE/B;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;AACA,uEAAuE;AACvE;AACA;AACA;;AAEA;AACA;AACA,WAAW,EAAE;;AAEb;AACA;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,oCAAoC,eAAe;AACnD;AACA;AACA,eAAe,gCAAgC;AAC/C,eAAe,gCAAgC;AAC/C;;AAEA,GAAG;AACH;AACA;AACA;AACA,oCAAoC;;AAEpC;;AAEA;AACA;AACA,OAAO;AACP,iCAAiC;AACjC;;AAEA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA;AACA,gCAAgC,+GAAa;AAC7C;AACA;AACA;AACA;AACA,WAAW;AACX,+DAA+D;;AAE/D;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,6EAAO,EAAE;AACX;;;AAGkC;;AAElC;AACA,iEAAiE;AACjE;AACA;;AAEA;AACA;AACA,GAAG,EAAE;;AAEL,iBAAiB,wBAAwB;AACzC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC3QA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwC;AACxC;AACA,4BAA4B,8CAA8C;AAC1E,IAAI,0CAA0C;AAC9C;AACA,IAAI,4DAA4D;AAChE;AACA,sDAAsD,yEAAyE;AAC/H;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA,2DAA2D,4CAA4C;AACvG;AACA,QAAQ,qDAAqD;AAC7D,8BAA8B,yEAAyE;AACvG;AACA;AACA;AACA;AACA;;AAEA;;AAEA,sEAAsE;AACtE;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,oDAAW;;;;;;;;;;;;;;AC7Eb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACjB;AACV;AAC9B;AACA;AACA;AACA,4CAA4C;AAC5C,QAAQ,gDAAgD;AACxD;AACA,yEAAyE,kDAAkD;AAC3H;AACA,eAAe,kEAAkE;AACjF,IAAI,qDAAqD;AACzD,QAAQ,4CAA4C;AACpD,IAAI,0CAA0C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6EAA6E;AAC3H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc,oDAAW,EAAE,+CAAM;AACjC;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;;ACnJR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACD;AACwG;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwC;AACxC;AACA,4BAA4B,8CAA8C;AAC1E,IAAI,qDAAqD;AACzD,iBAAiB,4DAA4D;AAC7E;AACA,sDAAsD,yEAAyE;AAC/H;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA,IAAI,qKAAe;;AAEnB;AACA;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA,oDAAoD,4CAA4C;AAChG,gDAAgD,qDAAqD;AACrG,8BAA8B,yEAAyE;AACvG;AACA;AACA;AACA,eAAe,gCAAgC;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA,sEAAsE;AACtE;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA,OAAO;AACP;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,oDAAW;AACb;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;ACxFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACL;AACG;AACP;AACgH;AACN;AACN;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACyD;AACjB;AACA;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA,sCAAsC,8CAA8C;AACpF,0CAA0C,mCAAmC;AAC7E;AACA;AACA,gBAAgB,oCAAoC;AACpD;;AAEA;AACA,sCAAsC,8CAA8C;AACpF,0CAA0C,mCAAmC;AAC7E;AACA;AACA,gBAAgB,oCAAoC;AACpD;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA,+BAA+B;;AAE/B,8BAA8B,qDAAW;AACzC,8BAA8B,qDAAW,SAAS;;AAElD;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA,iEAAiE;;;AAGjE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA,SAAS;;;AAGT;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM;;;;;;;;;;;;;;ACzJR;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA,oBAAoB,qKAAe;AACnC;AACA,4BAA4B,qKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,gLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACa;AACvB;AACA;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,+JAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,kKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E,6DAAQ,GAAG,8DAAQ;AACjG,8EAA8E,8DAAQ,GAAG,6DAAQ;AACjG;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oFAAU;AAC7C;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,CAAC,CAAC,2EAAM;;;;;;;;;;;;;AC3GR;AAAe,kZ;;;;;;;;;;;;ACAf;AAAe,iZ;;;;;;;;;;;;ACAf;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AAC4E;AACxB;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,WAAW;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA;AACA;AACA,eAAe,KAAK;AACpB,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wDAAwD;AACzE;AACA,cAAc;AACd;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAEgC;AACjC,iFAAG,aAAa,qFAAe,E;;;;;;;;;;;;AC5H/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACI;AACG;AACG;AACC;AACL;AACG;AACZ;AACqH;AACN;AACN;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACgB;AAC8B;AAC3B;AACV;AACd;AACX;AACc;AACvD;AACA;AACA;AACA;AACA;AACA,UAAU,8EAA8E;AACxF,IAAI,kEAAkE;AACtE,QAAQ,+FAA+F;AACvG;AACA,sBAAsB,gFAAgF;AACtG,IAAI,8CAA8C;AAClD;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,mCAAmC;AACrD;AACA,mCAAmC,iFAAU;AAC7C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,kBAAkB,8BAA8B;AAChD;AACA;AACA;AACA,wDAAwD,gDAAgD;AACxG;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA,6CAA6C,iDAAiD;AAC9F,UAAU,8CAA8C;AACxD;AACA;AACA,+CAA+C,iDAAiD;AAChG;AACA,kBAAkB,SAAS;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,kFAAkF,uBAAuB;AACzG;AACA;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,OAAO;AACzB;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,oBAAoB;AACnC,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA,eAAe,oBAAoB;AACnC,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kDAAkD;AACzF,oBAAoB,wDAAwD;AAC5E;AACA,4DAA4D,sCAAsC;AAClG;AACA;AACA,oBAAoB,gFAAgF;AACpG;AACA;AACA;AACA,2BAA2B,2CAA2C;AACtE,eAAe,2DAA2D;AAC1E;AACA,YAAY,kEAAkE;AAC9E;AACA,wCAAwC,0EAA0E;AAClH;AACA;AACA;AACA,iCAAiC,8GAAyB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,2CAA2C,+BAA+B;AAC1E;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,4CAA4C,iCAAiC;AAC7E;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,qBAAqB;AACrB;AACA;AACA;AACA,iBAAiB;AACjB;AACA,aAAa;AACb;AACA;AACA,eAAe,qDAAqD;AACpE;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,6DAA6D,oFAAc;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,wBAAwB,oFAAc;AACtC;AACA;AACA;AACA;AACA,CAAC,CAAC,4EAAM;AAGN;AACF,kFAAG,iBAAiB,sFAAe;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B,aAAa,SAAS,kDAAkD,iDAAiD;AACzH;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,kBAAkB,qFAAG;AACrB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,2BAA2B,uDAAU;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA,yBAAyB,0CAA0C;AACnE;AACA,eAAe,6DAA6D;AAC5E;AACA;AACA;AACA;AACA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS;AACT;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA,8BAA8B,oFAAa;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb,sCAAsC,iDAAiD;AACvF;AACA,eAAe,6DAA6D;AAC5E;AACA;AACA;AACA;AACA,wBAAwB,MAAM;AAC9B;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS;AACT;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,8BAA8B,oFAAa;AAC3C;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,qBAAqB;AACrB,iBAAiB;AACjB;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,qBAAqB,4DAA4D;AACjF;AACA,cAAc;AACd;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,kFAAG,aAAa,sFAAe,EAAE;AACjC,yCAAyC;AACzC;AACA;AACA;AACA;AACA,IAAI,+EAA+E;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,gFAAgF;AACnG,IAAI,iGAAiG;AACrG;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA,0DAA0D,uBAAuB;AACjF;AACA,mBAAmB,gFAAgF;AACnG,IAAI,iGAAiG;AACrG;AACA;AACA;AACA;AACA,uBAAuB,wEAAwE;AAC/F,gEAAgE,8CAA8C;AAC9G;AACA;AACA,aAAa,OAAO;AACpB,cAAc,eAAe;AAC7B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,G;;;;;;;;;;;;AC9uBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACC;AACuG;AACN;AACoB;AAC1B;AACkC;AACtB;;AAEtJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;AACsE;AACnB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA,2BAA2B,oFAAU;AACrC;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA,iDAAiD,4KAAsB;AACvE;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA,uDAAuD,4KAAsB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B;;;AAGA,6CAA6C,4KAAsB;;AAEnE;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;;AAEL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,uEAAI;AACN;AACA;AACA;AACA;AACA;AACA;;;AAG2C;;AAE3C;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;;;AAGA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,uEAAI,E;;;;;;;;;;;;ACrON;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACI;AACC;AACJ;AAC2G;AACN;AACN;AACkC;AACtB;AACE;;AAExJ,gCAAgC,6DAA6D,yCAAyC,aAAa,qKAAe,kBAAkB,iCAAiC,iBAAiB,qKAAe,mBAAmB,yDAAyD,EAAE,OAAO,uCAAuC,EAAE,QAAQ,gLAA0B,eAAe,GAAG;;AAEva,sCAAsC,wEAAwE,0CAA0C,8CAA8C,MAAM,wEAAwE,GAAG,aAAa,EAAE,YAAY,cAAc,EAAE;;AAElU;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,iDAAiD;AAC5D;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,YAAY,qBAAqB,YAAY;AAC1H;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,EAAE,+JAAS;;AAEX;;AAEA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,aAAa,YAAY,8CAA8C;AACvE;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA,yDAAyD,YAAY;AACrE;AACA;AACA;;AAEA,IAAI,qKAAe;;AAEnB;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA,yDAAyD,+CAA+C;AACxG,4CAA4C,wCAAwC;AACpF,aAAa,+CAA+C;AAC5D;AACA,eAAe,MAAM;AACrB,eAAe,OAAO;AACtB;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6EAA6E,wCAAwC;AACrH,wCAAwC,+CAA+C;AACvF;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA,CAAC,eAAe,sKAAgB;AAChC;AACA;AACA,gCAAgC,+CAA+C;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;AACA;AACA,qFAAqF,OAAO;AAC5F;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;;AAGoC;AAC7B;AACP;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC1LA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACG;AACG;AACK;AACf;AACI;AACF;AACI;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0C;AACE;AACpB;AACA;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO,YAAY;AAChC,aAAa,OAAO;AACpB;AACA;AACA;;AAEA,IAAI,sKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,+DAA+D,cAAc;AAC7E;AACA;AACA;AACA,YAAY,oCAAoC;AAChD;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,SAAS,cAAc;AACvB;AACA;AACA,YAAY,oCAAoC;AAChD;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA,gBAAgB,mCAAmC;AACnD;AACA;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;;;AAGA,EAAE,mKAAY;AACd;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAa;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uDAAa;AACjC;AACA,OAAO;AACP,oCAAoC,qDAAG;AACvC,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAa;AAC/B;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB,YAAY;AAC7B;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,iBAAiB,OAAO;AACxB;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAa;AAC/B;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,MAAM;AACvB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,SAAS;AAC1B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,cAAc;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA,qBAAqB,eAAe;AACpC,qBAAqB,eAAe;AACpC;AACA,qCAAqC;AACrC,6CAA6C;AAC7C;AACA;AACA,qCAAqC;AACrC,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS;AACT;AACA,qBAAqB,eAAe;AACpC,qBAAqB,eAAe;AACpC;AACA,qCAAqC;AACrC,2DAA2D;AAC3D,2DAA2D;AAC3D;AACA;AACA;AACA,wCAAwC,sBAAsB;AAC9D;AACA;AACA;AACA;AACA,qBAAqB,SAAS,eAAe,EAAE;AAC/C,qBAAqB,SAAS,eAAe,EAAE;AAC/C;AACA,qCAAqC;AACrC,6CAA6C;AAC7C,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,qBAAqB,eAAe;AACpC,qBAAqB,gBAAgB;AACrC;AACA,qCAAqC;AACrC,qCAAqC;AACrC;AACA,kBAAkB,aAAa;AAC/B;AACA,eAAe,mCAAmC;AAClD,iBAAiB;AACjB,iBAAiB,8CAA8C;AAC/D;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAa;AAC/B;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,uDAAuD,QAAQ;AAC/D;AACA;AACA,eAAe,SAAS;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA,sDAAsD;AACtD;AACA;;AAEA;AACA;;AAEA,kGAAkG;AAClG;AACA;AACA;;;AAGA;AACA;;AAEA;AACA,SAAS;AACT,2CAA2C;;AAE3C;AACA;;AAEA;AACA,WAAW;AACX;;;AAGA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+BAA+B,+BAA+B;AAC9D;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA,gCAAgC,iCAAiC;AACjE;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;;AAEA;;AAEA;;AAEA,uCAAuC;AACvC;;;AAGA,yBAAyB,2DAA2D;AACpF;AACA;AACA;AACA;AACA;AACA,QAAQ;;;AAGR;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA;AACA,SAAS;;AAET,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA,wDAAwD;;AAExD;AACA;;AAEA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAEgC;AACjC,qDAAG,aAAa,sDAAY;AAC5B;AACA,8BAA8B,2DAA2D;AACzF;AACA;AACA,YAAY,2DAA2D;AACvE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,G;;;;;;;;;;;;AChvBA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,2CAA2C;AAC3C,qCAAqC;AACrC,wCAAwC;AACxC,wCAAwC;AACxC;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,yCAAyC;AACtD;AACe;AACf;;AAEA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,aAAa,4BAA4B;AACzC,G;;;;;;;;;;;;ACjDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACS;AACL;AACM;AACL;AACC;AACC;AACD;AAC4G;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACoE;AACpE;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,cAAc;AAC/C;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,sBAAsB;;AAEtB;AACA;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA,wCAAwC;AACxC,oCAAoC;AACpC;AACA,aAAa,cAAc;AAC3B;AACA,aAAa,EAAE;AACf;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;AACA;AACA;AACA,iCAAiC,WAAW;AAC5C;AACA;AACA;AACA;AACA;AACA,eAAe,cAAc;AAC7B;AACA,eAAe,EAAE;AACjB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB,EAAE;AACnB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,cAAc;AAC7B;AACA,eAAe,EAAE;AACjB,eAAe,QAAQ;AACvB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA,UAAU,gEAAa;AACvB;;AAEA;AACA,OAAO;;;AAGP,kCAAkC;;AAElC,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;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA,0CAA0C;AAC1C;AACA,WAAW,kCAAkC,iBAAiB,6BAA6B;AAC3F,WAAW,aAAa;AACxB,aAAa,eAAe;AAC5B;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;;ACnFA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;;AAEtJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACgG;AACvE;AACK;AACI;AACC;AACnC;AACA;AACA,oBAAoB,6CAA6C;AACjE;AACA,qDAAqD,0BAA0B;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA,sBAAsB,wDAAM,GAAG,EAAE,qDAAY;AAC7C;AACA;AACA,sCAAsC,sDAAsD;AAC5F;AACA,aAAa,uCAAuC;AACpD,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,OAAO,YAAY;AAChC,aAAa,8CAA8C;AAC3D;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA,0FAA0F,aAAa;AACvG;AACA;;AAEA;AACA;AACA,QAAQ,uDAAM,aAAa,yDAAQ;AACnC;AACA;AACA;AACA,KAAK;;;AAGL,6BAA6B,qDAAY;AACzC,GAAG;;AAEH;AACA;AACA,sCAAsC,sDAAsD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,uCAAuC;AACpD,aAAa,OAAO;AACpB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,QAAQ,uDAAM,aAAa,yDAAQ;AACnC,iDAAiD;;;AAGjD;AACA;AACA;;AAEA;AACA,KAAK;;;AAGL,IAAI,qDAAY;;AAEhB;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,aAAa,KAAK;AAClB,eAAe,2CAA2C;AAC1D;AACA;AACA,WAAW,2EAAqB;AAChC;AACA,CAAC;AACc,8EAAe,EAAC;AAC/B;AACA;AACA,oEAAoE,gDAAgD;AACpH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,iBAAiB;AACjB;AACA,yBAAyB,uCAAuC;AAChE;AACA,cAAc,0CAA0C;AACxD,YAAY;AACZ,UAAU,8DAA8D;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACA;AACA,EAAE,qKAAe;;AAEjB;AACA,EAAE,mEAAa,yBAAyB;;;AAGxC;AACA;;AAEA,wDAAM,yBAAyB,qDAAY;AAC3C;AACA;AACA;AACA;AACA,cAAc,OAAO;AACrB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,SAAS;AACtB,aAAa,OAAO,YAAY;AAChC,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,2EAA2E;;;AAG3E;;AAEA;AACA;AACA,KAAK;AACL;;;AAGA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA,eAAe;AACf;AACA,aAAa,aAAa;;AAE1B;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB,aAAa,QAAQ;AACrB,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA,MAAM;AACN;AACA,aAAa,aAAa;;;AAG1B;AACA;;AAEA;AACA;;AAEA;AACA;AACA,CAAC,EAAE;AACH;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;;AAEpB;AACA,+DAA+D,oDAAG;AAClE;AACA;AACA,gDAAgD,iDAAiD;AACjG;AACA;AACA,G;;;;;;;;;;;;AC5QA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,8BAA8B;AAC3C;AACe;AACf,iBAAiB;;AAEjB;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC7BA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB;AACA;AACe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0C;AAC1C;AACA;AACA;AACA,WAAW,KAAK;AAChB,WAAW,KAAK;AAChB,aAAa,oCAAoC;AACjD;;AAEe;AACf,mBAAmB,6DAAY;AAC/B,mBAAmB,6DAAY;AAC/B,YAAY;;AAEZ;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC3BA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,OAAO;AACpB;AACe;AACf;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACvBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC8B;AAC9B;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa;AACb;;AAEe;AACf;AACA,QAAQ,+CAAM;AACd;AACA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC1BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACI;AACG;AACG;AACb;AACS;AACG;AACZ;AACqH;AACN;;AAEhJ,wDAAwD,QAAQ,mEAAmE,wHAAwH,gBAAgB,WAAW,yBAAyB,SAAS,wBAAwB,4BAA4B,cAAc,SAAS,8BAA8B,EAAE,qBAAqB,UAAU,EAAE,SAAS,EAAE,8JAA8J,EAAE,kDAAkD,SAAS,kBAAkB,2BAA2B,EAAE,mBAAmB,sBAAsB,8BAA8B,aAAa,EAAE,sBAAsB,eAAe,WAAW,EAAE,mBAAmB,MAAM,yDAAyD,EAAE,UAAU,uBAAuB,EAAE,EAAE,GAAG;;AAE79B,iDAAiD,gBAAgB,gEAAgE,wDAAwD,6DAA6D,sDAAsD,kHAAkH;;AAE9Z,sCAAsC,uDAAuD,uCAAuC,SAAS,OAAO,kBAAkB,EAAE,aAAa;;AAErL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACyB;AACK;AACJ;AACmB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA;AACA,aAAa,kDAAkD;AAC/D;;AAEe;AACf;AACA;AACA;AACA;AACA,aAAa,gDAAM;AACnB,eAAe,gDAAM;AACrB,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iCAAiC,gEAAgE;AACjG;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA,4CAA4C,yBAAyB;AACrE;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;;;AAGA,EAAE,mKAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,4CAA4C,iCAAiC;AAC7E,QAAQ,0BAA0B;AAClC,8BAA8B,iCAAiC;AAC/D;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,oBAAoB,gDAAM;AAC1B;AACA,OAAO;AACP;AACA;AACA;AACA,mDAAmD,0BAA0B;AAC7E;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6CAA6C,yBAAyB;AACtE,YAAY,iCAAiC;AAC7C;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,sCAAsC;AACvF;AACA;AACA;AACA,eAAe,YAAY;AAC3B,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,8CAAI;;AAEhC,0DAA0D;AAC1D;;;AAGA;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAED,qDAAG,yBAAyB,sDAAe;AAC3C;AACA,+CAA+C,sEAAsE;AACrH;AACA;AACA,aAAa,SAAS;AACtB,G;;;;;;;;;;;;AC/RA;AAAA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACe;AACf;AACA;AACA,CAAC,E;;;;;;;;;;;;AC5BD;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,KAAK;AAChB,aAAa,OAAO;AACpB;AACe;AACf;;AAEA;AACA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACxBA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB;AACe;AACf;AACA,C;;;;;;;;;;;;AClBA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa;AACb;AACe;AACf;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa;AACb;AACe;AACf;AACA,C;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa;AACb;AACe;AACf;AACA,C;;;;;;;;;;;;ACnBA;AAAA;AAAA;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa;AACb;AACe;AACf,+DAA+D;;AAE/D;AACA;AACA,GAAG;;;AAGH;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA2C;AACyG;;AAEpJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC8B;AACJ;AACkC;AACZ;AACT;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;A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CtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,gEAAgE;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA,aAAa,sEAAsE;AACnF;AACA;AACA,IAAI,qKAAe;;AAEnB,wBAAwB,wDAAO;AAC/B;AACA;AACA;AACA;AACA;AACA,gBAAgB,+DAA+D;AAC/E;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL,QAAQ,4DAAS;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,SAAS;AACrC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK,UAAU,0DAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB;;AAEA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,2BAA2B;AAC5C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,iBAAiB,2BAA2B;AAC5C;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C,iBAAiB,OAAO;AACxB;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gCAAgC;AACjD;;AAEA,GAAG;AACH;AACA;AACA;AACA,qCAAqC;;AAErC;AACA,yEAAyE;;AAEzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,WAAW,GAAG,YAAY,GAAG,aAAa;AACjF,QAAQ,cAAc,GAAG,aAAa,MAAM,cAAc;AAC1D;AACA;AACA,eAAe,2BAA2B;AAC1C,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,2BAA2B,+BAA+B;AAC1D;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,eAAe,2BAA2B;AAC1C,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,eAAe;AAClD;AACA;AACA,iBAAiB,2BAA2B;AAC5C;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA,UAAU,0DAAQ;AAClB;AACA;AACA;AACA,OAAO;AACP,2BAA2B,iEAAe;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB,mCAAmC;AACpD;;AAEA,GAAG;AACH;AACA;AACA,qBAAqB;;AAErB;;AAEA;AACA;AACA;;AAEA;AACA,8BAA8B,iCAAiC;AAC/D;AACA;AACA;AACA,SAAS;AACT;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA,cAAc,wDAAM;AACpB;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;AACJ;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,6CAA6C;;;AAG7B;;AAE3B;AACA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa;;;AAGb;AACA,OAAO,4DAAS;AAChB;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACvdA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,KAAK;AAChB;AACe;AACf;;AAEA;AACA;AACA;AACA,C;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACgC;AACN;AACI;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,0BAA0B;;AAE1B;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;;;AAGL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B;;AAEO;AACP;AACA;AACA,eAAe,6CAAI;AACnB,GAAG;AACH,CAAC;AACD;;AAEA;AACA;AACA;AACA,CAAC,EAAE;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,2BAA2B;AACtC,WAAW,OAAO;;AAElB;AACA;AACA;AACA,yBAAyB,6CAAI;AAC7B;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;;AAGA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,YAAY;AACvB,WAAW,SAAS;;;AAGpB;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,6CAAI;;AAEzB;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,2BAA2B;;;AAGtC;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,2BAA2B;;;AAGtC;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,2BAA2B;;;AAGtC;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,2BAA2B;AACtC,WAAW,2BAA2B;;;AAGtC;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa;;;AAGb;AACA,MAAM,wDAAO;AACb;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,kBAAkB;AAC7B,aAAa;;;AAGb;AACA,MAAM,wDAAO;AACb,wDAAwD;;AAExD,QAAQ,uDAAM;AACd;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,WAAW,kBAAkB;AAC7B,WAAW,OAAO;AAClB,aAAa;;;AAGb;AACA;AACA,iBAAiB,6CAAI;;AAErB;AACA;AACA,GAAG;AACH;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A,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,6CAA6C,mDAAS,qBAAqB,mDAAS;AACpF;AACA,wDAAwD;;AAExD,gCAAgC;;AAEhC,gGAAgG,eAAe;AAC/G;AACA;;AAEA;AACA;AACA,oDAAoD;AACpD;AACA;AACA;AACA;;AAEA;;AAEA,uBAAuB,sBAAsB;AAC7C,0DAA0D;;AAE1D;AACA;AACA;AACA;AACA,WAAW;;;AAGX;AACA;AACA;AACA;AACA,OAAO;;;AAGP;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL,MAAM,uDAAa;AACnB;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,4EAA4E,eAAe;AAC3F;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;;AAEA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACe,2EAAY,EAAC;AAC5B;AACA;AACA;AACA,uDAAuD,6CAA6C;AACpG;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB,kEAAkE;AACpF;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO,YAAY;AAC9B,WAAW,8CAA8C;AACzD;AACA;AACA;;AAEA;AACA;AACA,YAAY,UAAU,cAAc,WAAW;AAC/C;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO,YAAY;AAC9B,WAAW,8CAA8C;AACzD;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mEAAmE;AACrF;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,2DAA2D;AACrF,YAAY,2DAA2D,SAAS,YAAY;AAC5F;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO,YAAY;AAC9B,WAAW,8CAA8C;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB;AACA,WAAW,SAAS;AACpB;AACA;;AAEA;AACA;AACA;AACA,kDAAkD,uCAAuC;AACzF;AACA;AACA;AACA,WAAW,wCAAwC;AACnD,WAAW,KAAK;AAChB,aAAa,EAAE;AACf,gCAAgC,2DAA2D;AAC3F;AACA;;AAEA;AACA,yCAAyC,wCAAwC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,kCAAkC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB,aAAa;AACb;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB;;AAEO;AACP;AACA,gCAAgC,qDAAG;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,kCAAkC;AAC7C;;AAEO;AACP;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;;;AAGD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;;;AAGA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;AAGA,uBAAuB;;AAEvB,4BAA4B;;AAE5B,yBAAyB;AACzB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;;AAGL,mCAAmC;;AAEnC,qCAAqC;;AAErC;AACA;AACA;;AAEA,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B,iCAAiC;AAC3D;AACA;AACA,OAAO;;AAEP,KAAK;AACL;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA,iBAAiB,kCAAkC;AACnD;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;;;AAGA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA;AACA,aAAa,oBAAoB;AACjC,OAAO,wCAAwC;AAC/C,aAAa,gBAAgB;AAC7B,aAAa,UAAU;;;AAGvB;AACA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD,yBAAyB,oKAAc;AACvC;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA,8BAA8B,mDAAS;AACvC,2BAA2B,wKAAkB;AAC7C,yDAAyD,wKAAkB;AAC3E;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,CAAC;AACD;AACA,WAAW,kCAAkC;AAC7C,WAAW,OAAO;AAClB,WAAW,SAAS;;;AAGpB;AACA;;AAEA;AACA;;AAEA;AACA,wBAAwB,iCAAiC;AACzD;;AAEA,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wBAAwB,6BAA6B;AACrD;AACA;AACA;;AAEA;AACA,4BAA4B,sDAAsD;AAClF;AACA;AACA,WAAW,kCAAkC;AAC7C,WAAW,gBAAgB;AAC3B,G;;;;;;;;;;;;ACtsBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgD;AACL;AACD;;AAE1C;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0FAA0F,EAAE,SAAS,EAAE;AACvG;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACe,kEAAG,EAAC;AACnB;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;;AAEO;AACP;AACA;AACA;AACA,iFAAiF,EAAE,SAAS,EAAE;AAC9F;AACA;AACA;AACA,aAAa;AACb;;AAEO;AACP,0BAA0B;AAC1B;;AAEA;AACA;AACA,8CAA8C,EAAE;AAChD,GAAG,gBAAgB;AACnB;;AAEA;AACA,C;;;;;;;;;;;;ACrJA;AAAA;AAAA;AAAA;AAAsJ;;AAEtJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwB;AACxB;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA;AACA,EAAE,qKAAe;;AAEjB;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,wCAAwC,sDAAsD;AAC9F;AACA;AACA,cAAc;AACd;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;;AAEA,cAAc,oDAAG;AACjB;AACA;AACA;AACA;AACA;;AAEA,aAAa,oDAAG;AAChB;AACA,0CAA0C,kDAAkD;AAC5F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;;;;;;;;;;;;;AC9EA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACK;AACL;;AAExC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,sDAAsD;AAChE;AACA;AACA,UAAU,4CAA4C;AACtD;AACA;AACA,UAAU,uCAAuC;AACjD;AACA;AACA,UAAU,uCAAuC;AACjD;AACA;AACA,UAAU,sDAAsD,GAAG,uCAAuC;AAC1G;AACA;AACA;AACA;AACA,iBAAiB,WAAW,GAAG,WAAW,OAAO,WAAW,GAAG,WAAW;AAC1E;AACA,KAAK;AACL,UAAU,sCAAsC,WAAW,IAAI,GAAG,uCAAuC;AACzG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,QAAQ,sCAAsC;AAC9C;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAiE;AACrE,kCAAkC,sCAAsC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,iFAAiF,sCAAsC;AACvH,aAAa,MAAM;AACnB;AACe;AACf;;AAEA;AACA;AACA;AACA,IAAI;;;AAGJ;AACA;AACA;;AAEA;AACA;AACA,GAAG;;;AAGH,2DAA2D;;AAE3D;AACA,CAAC;AACD;AACA;AACA,2BAA2B,KAAK;AAChC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;AACb,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,aAAa,OAAO;;AAEpB;AACA;AACA,6DAA6D;;AAE7D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;;AAGH;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,oFAAoF;;AAEpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa;;;AAGb;AACA,iBAAiB,wCAAwC;AACzD;AACA;AACA;AACA;;AAEA,YAAY;AACZ,CAAC;AACD;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;;;AAGnB;AACA;AACA,CAAC;AACD;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,eAAe,mCAAmC,+CAA+C;;;AAG9G;AACA;AACA;AACA;AACA,gDAAgD,6EAA6E;AAC7H;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,CAAC;AACD;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,eAAe,mCAAmC,6BAA6B;;;AAG5F;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC3QA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa;AACb;AACe;AACf;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACvBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACG;AACZ;AACqH;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACiD;AACD;AACJ;AACpB;AACxB;AACA;AACA;AACA,gBAAgB,uCAAuC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;AACzB;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA;AACA,kBAAkB,sDAAa;AAC/B;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA,OAAO;;AAEP;AACA;AACA;AACA;AACA;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,iDAAiD,WAAW;AAC5D;AACA;AACA,eAAe,YAAY;AAC3B;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,iBAAiB;AAClE;AACA;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,GAAG;;AAEH;AACA,CAAC;;AAEkC;AACnC,oDAAG,eAAe,yDAAe;AACjC,oDAAG,eAAe,wDAAe,E;;;;;;;;;;;;ACvLjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACe;AACf;AACA,C;;;;;;;;;;;;ACpBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AAC4C;AACpB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,6BAA6B,yDAAyD;AACtF;AACA,qCAAqC,qCAAqC;AAC1E;AACA,WAAW,2CAA2C,gBAAgB,qCAAqC;AAC3G;AACA,aAAa,OAAO;AACpB;;AAEO;AACP;;AAEA;AACA;;AAEA;AACA;AACA,4DAA4D,qCAAqC;AACjG;AACA;AACA,iBAAiB,OAAO;AACxB;AACA,gBAAgB,sDAAa;AAC7B;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,oCAAoC,sBAAsB,yDAAyD;AAC5H;AACA;AACA;AACA;AACA,qBAAqB,qDAAqD;AAC1E;AACA;AACA;AACA,qCAAqC,qCAAqC;AAC1E;AACA;AACA;AACA,WAAW,6BAA6B;AACxC,aAAa,OAAO;AACpB;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;AAEO;AACP,OAAO,4CAAG;AACV;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;;AAEJ,qBAAqB,YAAY;AACjC;AACA;AACA,GAAG;;;AAGH,sBAAsB,aAAa;AACnC;AACA,GAAG;;;AAGH,wBAAwB,eAAe;AACvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB;;AAEA;AACA;AACA;AACA,YAAY,OAAO;AACnB,G;;;;;;;;;;;;ACtMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsJ;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACiD;AACI;AACrD;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,+FAA+F;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,mCAAmC,yDAAe;AAClD;AACA;AACA;AACA;AACA,aAAa,kCAAkC;AAC/C;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,yDAAO;AAClD,OAAO;AACP;AACA;AACA;AACA;AACA,eAAe,6BAA6B;AAC5C,YAAY,2CAA2C;AACvD,eAAe,SAAS;AACxB,QAAQ,0EAA0E;AAClF;AACA,eAAe,OAAO,YAAY;AAClC,eAAe,8CAA8C;AAC7D;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA,oBAAoB,gEAAc;AAClC,sCAAsC;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;;AAEA;AACA,SAAS,EAAE;;AAEX;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,8FAA8F,mBAAmB;AACjH;AACA,eAAe,qDAAqD;AACpE,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA,iDAAiD,yDAAO;AACxD;AACA;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;;;;;;;;;;;;;ACnJD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACA;AAC0G;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACkD;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,+DAA+D;AACrE;AACA,aAAa,OAAO;AACpB,aAAa,OAAO;AACpB,uEAAuE,kBAAkB;AACzF,aAAa,OAAO;AACpB;AACA,UAAU,uBAAuB;AACjC;AACA;AACA;;AAEA;;AAEA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA,eAAe,wCAAwC;AACvD;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA,4BAA4B,kCAAkC;AAC9D;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,8BAA8B,qCAAqC;AACnE;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,8BAA8B,+CAA+C;AAC7E;AACA;AACA;AACA;AACA,eAAe,+CAA+C,uBAAuB,kCAAkC;AACvH,0DAA0D,iDAAiD;AAC3G;AACA;AACA;AACA;AACA,gBAAgB;AAChB;;AAEA;AACA;AACA,2CAA2C,kBAAkB;AAC7D,QAAQ,yCAAyC,MAAM,4BAA4B;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,kBAAkB,MAAM;AACtF;AACA;AACA;AACA,cAAc;AACd;;;AAGA,EAAE,kKAAY;AACd;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;AACA,6BAA6B,sEAAS;;AAEtC;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,cAAc,4DAA4D;AAC1E,oDAAoD,kBAAkB,MAAM,uBAAuB;AACnG;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,GAAG;AACJ;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;;;AAGS;;AAE7B;AACA;AACA,C;;;;;;;;;;;;ACpKA;AAAA;AAAA;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACe;AACf,0FAA0F,aAAa;AACvG;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,C;;;;;;;;;;;;AClDA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACG;AACZ;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,qBAAqB;AACnD,qBAAqB;AACrB;AACA,WAAW,OAAO;AAClB,aAAa,IAAI;AACjB;AACe;AACf;;AAEA;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AC9BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsI;AACsB;AACpH;AACP;AACY;AACZ;AACQ;AACC;AACS;AACf;;AAEpC;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC0C;AACE;AACC;AAC7C;AACA;AACA;AACA;AACA;AACA,IAAI,kBAAkB;AACtB;AACA;AACA,MAAM;AACN,mBAAmB,yFAAyF;AAC5G,MAAM,sEAAsE;AAC5E;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,2DAAQ;AAChB;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,0BAA0B;AACxE;AACA;AACA;AACA;AACA,0CAA0C;AAC1C;AACA;AACA,0CAA0C;AAC1C;AACA;AACA;AACA,gBAAgB,uDAAa;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,4CAA4C;AAC5C;AACA;;AAEA;;AAEA;AACA;AACA,SAAS;AACT;;;AAGA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA,iFAAiF,aAAa;AAC9F;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAa;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,uDAAa;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAa;AAC/B;AACA,KAAK;AACL,6BAA6B,cAAc,OAAO;AAClD,kBAAkB,MAAM;AACxB,kBAAkB,MAAM,8DAA8D,gCAAgC;AACtH,kBAAkB,MAAM;;AAExB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,EAAE,cAAc,OAAO;AAC5B,kBAAkB,SAAS,SAAS,+BAA+B;AACnE,kBAAkB,SAAS,aAAa,mCAAmC;AAC3E,kBAAkB,wCAAwC;AAC1D,kBAAkB,MAAM;AACxB,kBAAkB,MAAM,8CAA8C,wDAAwD;AAC9H,kBAAkB,IAAI;AACtB,QAAQ,wCAAwC,EAAE;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,sFAAsF,eAAe;AACrG;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,uDAAa;AAC/B;;AAEA;AACA,wDAAwD;;AAExD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,OAAO;AACxB,iBAAiB,OAAO;AACxB;AACA,gBAAgB,uDAAa;AAC7B;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA,KAAK;;AAEL;AACA,4EAA4E,eAAe;AAC3F;AACA;;AAEA;AACA;AACA;AAC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C,mCAAmC;AACpE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS,mDAAmD;AAC5D;AACA;AACA,MAAM;AACN;AACA;AACA,WAAW,UAAU,mCAAmC,sBAAsB;;;AAG9E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,CAAC,8BAA8B,iBAAiB;AAChD,8BAA8B,kCAAkC;AAChE;AACA;AACA,WAAW,WAAW;AACtB,WAAW,OAAO;;;AAGlB;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,CAAC,oCAAoC,oBAAoB;AACzD,IAAI,4BAA4B,EAAE,gCAAgC;AAClE,qBAAqB,4BAA4B;AACjD;AACA;AACA,WAAW,UAAU,iCAAiC,sBAAsB;;;AAG5E;AACA;AACA;AACA,iBAAiB;AACjB;;AAEA;AACA;AACA,qEAAqE;AACrE;;AAEA;AACA;AACA;AACA,WAAW;AACX;AACA,OAAO;AACP;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,uDAAuD,mDAAmD;AAC1G;AACA;AACA,MAAM;AACN,mBAAmB,yFAAyF;AAC5G,MAAM,sEAAsE;AAC5E;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,eAAe,oBAAoB,WAAW,MAAM,WAAW;AACpF,KAAK;AACL;AACA,wBAAwB;AACxB;AACA,kBAAkB;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,EAAE;AACb;;AAEA;AACA;AACA;AACA;AACA,QAAQ,wEAAwE;AAChF;AACA;AACA;AACA;AACA,uDAAuD,WAAW,MAAM,WAAW;AACnF,+CAA+C,6BAA6B;AAC5E;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,4CAA4C,WAAW,MAAM,WAAW;AACxE,KAAK;AACL;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,WAAW,EAAE;AACb;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,cAAc;AACzB,WAAW,EAAE;AACb;;AAEA;AACA,UAAU,iCAAiC;AAC3C,IAAI,8CAA8C;AAClD;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,qDAAqD;AAC/F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;;AAEA;AACA,qCAAqC,YAAY;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,iEAAiE,oDAAoD;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG,mBAAmB;AAC3B;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,sDAAsD;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB,IAAI,IAAI,IAAI;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,KAAK,GAAG,mBAAmB;AAC3B;AACA,uBAAuB;AACvB;AACA;AACA,WAAW,OAAO;AAClB,G;;;;;;;;;;;;ACj3BA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,yCAAyC;AACtD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,8CAA8C;AAC3D,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACe,yEAAU,E;;;;;;;;;;;;ACzCzB;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEe,kEAAG,E;;;;;;;;;;;;ACxBlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACG;AACZ;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACwC;AACE;AAC1C;AACA;AACA;AACA,kBAAkB,qBAAqB;AACvC;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,aAAa,IAAI;AACjB;;AAEe;AACf,MAAM,+DAAa;AACnB,WAAW,4DAAW;AACtB,GAAG;AACH;AACA;AACA,C;;;;;;;;;;;;AC/BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACF;AACD;;AAEzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,+DAA+D;AACtH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mHAAmH;AACnH;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,wBAAwB;AACnC;;;AAGO;AACP,yGAAyG;AACzG;AACA;AACA;AACA;AACA,QAAQ,2DAA2D;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;;AAEO;AACP;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0DAA0D;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEO;AACP;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACvGA;AAAA;AAAA;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACe;AACf,iBAAiB;;AAEjB,iBAAiB,OAAO;AACxB;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACzBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa;AACb;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa;AACb;;AAEO;AACP;AACA,C;;;;;;;;;;;;ACnEA;AAAA;AAAA;AAAA;AAAA;AAAsI;;AAEtI;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACiD;AACL;AAC5C,oEAAoE,6JAAO;;AAE3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,yEAAyE;AAChG;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,uGAAuG;AAC7G,gBAAgB,kDAAkD;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,sDAAa;AACzB,CAAC;AACD,oCAAoC,8DAAO;AAC3C,C;;;;;;;;;;;;;AC/IA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACM;AACwG;AACN;;AAEhJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACsE;AAClB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,mEAAmE;AACvE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,IAAI,qKAAe;;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,6DAA6D;AAC1E,aAAa,iDAAiD;AAC9D;;;AAGA,EAAE,kKAAY;AACd;AACA;AACA,8BAA8B;;AAE9B;;AAEA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;AAEA,4BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,6DAA6D;AAC5E;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA,OAAO;;;AAGP;AACA;AACA,OAAO;AACP;;;AAGA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,OAAO;AACtB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO,EAAE;;AAET;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC;;AAEoC;AACrC,iFAAG,iBAAiB,kFAAY,EAAE;AAClC;AACA,WAAW,6DAA6D;AACxE,WAAW,6DAA6D;AACxE,aAAa,QAAQ;;AAErB;AACA;AACA,CAAC;AACD;AACA,WAAW,6DAA6D;AACxE,WAAW,6DAA6D;AACxE,aAAa;;;AAGb;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;;;AAGH;AACA,CAAC,sCAAsC,mEAAmE;AAC1G;AACA;AACA,WAAW,qBAAqB;AAChC,aAAa;;;AAGb;AACA;AACA;AACA;AACA,8BAA8B,kDAAkD;AAChF;AACA;AACA,WAAW,OAAO;AAClB,WAAW,6DAA6D;AACxE;AACA,WAAW,6DAA6D;AACxE;AACA,WAAW,iDAAiD;AAC5D,G;;;;;;;;;;;;AClMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;;AAEA;AACA;AACA;AAC8C;AACkB;AACZ;AACQ;AAC5D;AACA;AACA;AACA,WAAW;AACX;;AAEO;AACP;AACA;AACA;AACA,WAAW;AACX;;AAEO;AACP;AACA,4BAA4B,mCAAmC,QAAQ,yCAAyC;AAChH;AACA,WAAW,6BAA6B;AACxC,aAAa;AACb;;AAEO;AACP;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,uBAAuB,yCAAyC;AAChE;AACA;AACA;AACA,oBAAoB,6EAA6E;AACjG,4EAA4E,6BAA6B;AACzG,qBAAqB,sDAAsD;AAC3E;AACA;AACA,IAAI;AACJ,SAAS,qGAAqG;AAC9G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,kBAAkB;AAC5E;AACA,sCAAsC,uBAAuB;AAC7D;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,iDAAiD;AAC5D,WAAW,OAAO,YAAY;AAC9B,WAAW,gBAAgB,kDAAkD,gBAAgB;AAC7F;AACA,WAAW,QAAQ;AACnB,aAAa,mCAAmC;AAChD;;AAEA;;AAEO;AACP;;AAEA;AACA;AACA,OAAO,yEAAG;AACV;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA;AACA,0CAA0C,kDAAkD;AAC5F;AACA;AACA,WAAW,mCAAmC;AAC9C,WAAW,iDAAiD;AAC5D,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB;;AAEO;AACP,kBAAkB,uDAAc;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,IAAI,6BAA6B;AACjC;AACA,WAAW,mCAAmC;AAC9C,WAAW,gBAAgB;AAC3B,WAAW,iDAAiD;AAC5D;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,mCAAmC;AAC9C,aAAa;AACb;;AAEO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,uCAAuC,yDAAyD;AAChG;AACA,0DAA0D,oEAAoE;AAC9H;AACA;AACA;AACA;AACA,iBAAiB,6BAA6B;AAC9C,uBAAuB,qGAAqG;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD,kBAAkB;AAC3E;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,qDAAqD,kBAAkB;AACvE;AACA,MAAM;AACN;AACA;AACA;AACA;AACA,WAAW,mDAAmD;AAC9D,WAAW,iDAAiD;AAC5D,aAAa,mDAAmD;AAChE;;AAEO;AACP,mFAAmF;AACnF;;AAEA,OAAO,yEAAG;AACV;AACA,6FAA6F;;AAE7F;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oDAAoD;AAC1E;AACA;AACA,WAAW,gGAAgG;AAC3G;AACA,WAAW,gCAAgC;AAC3C,aAAa,sCAAsC;AACnD;;AAEO;AACP;;AAEA;AACA;A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ACrF;AACA;AACA,eAAe,iCAAiC;AAChD,eAAe,sDAAsD;AACrE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA;AACA;AACA;AACA,YAAY,0EAAG;AACf;;AAEA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA,OAAO;;;AAGP,WAAW,wDAAQ;AACnB,uCAAuC,gDAAQ;;AAE/C;AACA;AACA;AACA;;AAEA,oCAAoC;;AAEpC;AACA;AACA,OAAO;;;AAGP;;AAEA;AACA;AACA;AACA,gBAAgB,iEAAiE;AACjF;AACA;AACA,eAAe,iCAAiC;AAChD,eAAe,sDAAsD;AACrE;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,iCAAiC,gFAAQ,yBAAyB,gFAAQ;AAC1E,6BAA6B;AAC7B;;AAEA;AACA;AACA,OAAO;AACP;AACA,OAAO,sBAAsB,gFAAQ;AACrC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,kBAAkB;AACnC;;AAEA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,mDAAmD;;AAEnD;AACA;AACA;;AAEA;;AAEA;AACA;AACA,0DAA0D;;AAE1D;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB,kBAAkB;AACnC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;;AAE9D;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW;AACX;;AAEA;AACA,OAAO;AACP;;;AAGA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,QAAQ;AACvB;AACA,iBAAiB,kBAAkB;AACnC;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4DAA4D;AAC5D;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,oBAAoB,mEAAmE;AACvF;AACA;AACA,aAAa,wDAAwD;AACrE;AACA;AACA;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,QAAQ;AACzB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;;AAEA,6BAA6B,wDAAQ;AACrC;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;AACA;AACA;AACA,aAAa,mEAAmE;AAChF;AACA;AACA,eAAe,oCAAoC;AACnD;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,kBAAkB,kDAAkD;AACpE,QAAQ,8DAA8D;AACtE,QAAQ,+CAA+C;AACvD;AACA;AACA,eAAe,QAAQ;AACvB,iBAAiB;AACjB;;AAEA,GAAG;AACH;AACA;AACA;AACA;AACA,oDAAoD;AACpD;;AAEA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iDAAiD;AAChE;;AAEA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,iCAAiC;AAC7D;AACA,6BAA6B,kEAA0B;AACvD;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,CAAC,CAAC,4EAAM,EAAE;AACV;AACA,WAAW,OAAO;AAClB,aAAa;;;AAGgB;;AAE7B;AACA,oBAAoB,gFAAQ,0BAA0B,gFAAQ,yBAAyB,gFAAQ,uBAAuB,gFAAQ;AAC9H,CAAC;AACD;AACA,WAAW,qDAAqD;AAChE,aAAa;;;AAGb;AACA,SAAS,uFAAO;AAChB,CAAC;AACD;AACA,WAAW;AACX,aAAa;;;AAGb;AACA;AACA;AACA;AACA,KAAK;;;AAGL,QAAQ,wDAAQ;AAChB;AACA;;AAEA;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,mCAAmC;AAC9C,WAAW,wCAAwC;AACnD,aAAa;;;AAGb;AACA;AACA;AACA;;AAEA;AACA,CAAC;AACD;AACA,WAAW,oCAAoC;AAC/C,WAAW,kCAAkC;;;AAG7C;AACA;AACA,C;;;;;;;;;;;;ACvjBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACf;AACI;AACG;AACG;AACC;AACL;AACG;AACZ;AACqH;AACN;AAChB;AACU;AACkC;AACtB;AACtJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,SAAS;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,sKAAe;AACnC;AACA,4BAA4B,sKAAe;AAC3C;AACA,SAAS;AACT;AACA;AACA,eAAe,iLAA0B;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACyD;AACkC;AAClB;AACgB;AACtD;AACqC;AACxE;AACA;AACA;AACA;AACA,6CAA6C,6EAA6E;AAC1H;AACA,yCAAyC,6CAA6C;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,IAAI,gKAAS;AACb;AACA;AACA,QAAQ,qKAAe;AACvB;AACA;AACA,IAAI,mKAAY;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,GAAG,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA,kBAAkB,qFAAqF;AACvG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB,GAAG,kBAAkB;AACtC;AACA,SAAS;AACT;AACA;AACA;AACA,gBAAgB,2JAAI,CAAC,sKAAe;AACpC;AACA;AACA,uCAAuC,+BAA+B;AACtE;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,OAAO;AACtB,eAAe,eAAe;AAC9B,eAAe,SAAS;AACxB,eAAe,OAAO;AACtB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,uFAAW;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oFAAa,mFAAmF,uBAAuB;AACrJ;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,aAAa;AACb;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,iCAAiC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,eAAe,wEAAwE;AACvF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,0CAA0C,wDAAwD;AAClG;AACA;AACA,eAAe,wEAAwE;AACvF,eAAe,mCAAmC;AAClD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,iCAAiC;AACjF;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,yBAAyB;AACzB;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,aAAa;AACb;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,mGAAiB;AACzC,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC,CAAC,4EAAM;AAGN;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,kGAAgB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,wDAAQ;AACrC,CAAC;AACD;AACA;AACA,IAAI,qFAAqF;AACzF;AACA;AACA,aAAa,OAAO;AACpB;AACA,cAAc,oBAAoB;AAClC,cAAc,SAAS,sDAAsD;AAC7E;AACA,mEAAmE,6CAA6C;AAChH,cAAc,OAAO;AACrB,G;;;;;;;;;;;;ACtbA;AAAe,4f;;;;;;;;;;;ACAf;;AAEA;AACA,cAAc,mBAAO,CAAC,gVAAgM;AACtN,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,qJAAwF;AAC1G,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,gVAAgM;AACrN,sBAAsB,mBAAO,CAAC,gVAAgM;AAC9N,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;;;;;;;;;;;;ACrBA;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;;AAE7C;AACA,kBAAkB,KAAyB;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,8iBAA8iB,wZAAwZ,WAAW;;AAEn+B;AACA;AACA,cAAc;AACd,aAAa;AACb,eAAe;AACf,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,wxfAAwxf,inBAAinB,6BAA6B,yBAAyB;AAC/7gB,kBAAkB,4teAA4te,wKAAwK,2uZAA2uZ,wKAAwK,6gFAA6gF;AACtz9B,wBAAwB;AACxB,yBAAyB;AACzB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,iBAAiB;AACpC,qBAAqB,MAAM,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,uCAAuC;AACvC,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAO;AACT;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,YAUN;;AAEF,CAAC;;;;;;;;;;;;;;ACxVD;AAAA;AAAA;AAAwC;AACV;;AAE9B;AACA,eAAe,6DAAS,CAAC,gDAAI;;AAEd,uEAAQ,EAAC;;;;;;;;;;;;;ACNxB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACE;AACN;AACA;AACA;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,qDAAS;AACh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;;;;;;;;;;ACrB/B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACrBzB;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACpB9B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACtB1B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACxB3B;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,qBAAqB,+DAAW;AAChC;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AChB7B;AAAA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;ACrBjC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACG;AACR;AACE;AACD;AACS;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA,cAAc,2DAAO;AACrB,wBAAwB,+DAAW;AACnC,mCAAmC,4DAAQ;AAC3C,8CAA8C,gEAAY;AAC1D;AACA,6BAA6B,6DAAS;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,2DAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AChD7B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACpBxB;AAAA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACnBzB;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACzB3B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+EAAgB,EAAC;;;;;;;;;;;;;ACvBhC;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA,wBAAwB,8DAAU;AAClC;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACd3B;AAAA;AAAA;AAAA;AAAwC;AACA;AACI;;AAE5C;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACrBzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACQ;AACI;AACF;AACI;AACF;AACJ;AACI;AACI;AACN;AACI;AACZ;AACgB;AACA;AACE;AACjB;AACE;AACN;AACM;AACN;AACF;;AAE7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,6DAAQ;AACf;AACA;AACA,cAAc,4DAAO;AACrB;AACA,aAAa,mEAAc;AAC3B;AACA,aAAa,6DAAS;AACtB;AACA,GAAG;AACH,cAAc,2DAAM;AACpB;;AAEA,QAAQ,6DAAQ;AAChB,aAAa,+DAAW;AACxB;AACA;AACA,sCAAsC,GAAG,oEAAe;AACxD;AACA;AACA,YAAY,iEAAa,QAAQ,gEAAY;AAC7C,YAAY,+DAAW,QAAQ,8DAAU;AACzC;AACA,KAAK;AACL;AACA;AACA;AACA,eAAe,mEAAc;AAC7B;AACA;AACA;AACA,wBAAwB,iDAAK;AAC7B;AACA;AACA;AACA;AACA;;AAEA,MAAM,0DAAK;AACX;AACA;AACA,KAAK;AACL,GAAG,UAAU,0DAAK;AAClB;AACA;AACA,KAAK;AACL;;AAEA;AACA,gBAAgB,yDAAY,GAAG,sDAAU;AACzC,yBAAyB,iDAAI;;AAE7B;AACA,EAAE,6DAAS;AACX;AACA;AACA;AACA;AACA;AACA,IAAI,+DAAW;AACf,GAAG;AACH;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACpKzB;AAAA;AAAA;AAAkD;AACrB;;AAE7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,cAAc,wDAAI;AAClB;AACA,WAAW,kEAAc;AACzB;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACjB5B;AAAA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;AC1B9B;AAAA;AAAqC;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc,yEAAU,EAAC;;;;;;;;;;;;;AC7B1B;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA,gCAAgC,6BAA6B,EAAE;AAC/D;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACpBzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACU;AACQ;AAClB;AACE;AACF;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,iBAAiB,yDAAa;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,4DAAQ,SAAS,6DAAS;AACvC;AACA;AACA,eAAe,6DAAiB;AAChC;AACA;AACA;AACA,eAAe,oDAAQ;AACvB;AACA,iBAAiB,oDAAQ;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;AClE9B;AAAA;AAAA;AAA0C;AACQ;;AAElD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA,eAAe,kEAAc,CAAC,sDAAU;;AAEzB,uEAAQ,EAAC;;;;;;;;;;;;;ACbxB;AAAA;AAAA;AAAoD;AACF;;AAElD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA,oBAAoB,kEAAc,CAAC,2DAAe;;AAEnC,4EAAa,EAAC;;;;;;;;;;;;;ACb7B;AAAA;AAAsC;;AAEtC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA,EAAE,4DAAQ;AACV;AACA;AACA,GAAG;AACH;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACpBzB;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,4DAAQ;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC/B5B;AAAA;AAAA;AAAuC;AACF;;AAErC;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA,UAAU,6DAAS;AACnB;AACA;AACA;AACA,uDAAuD,6DAAS;AAChE;AACA;AACA;AACA,0BAA0B,4DAAQ;AAClC;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC/BxB;AAAA;AAAsC;;AAEtC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,EAAE,4DAAQ;AACV;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACpB1B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACvB7B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACtB3B;AAAA;AAAA;AAAwC;AACQ;;AAEhD;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA,4BAA4B,yDAAa;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,QAAQ,6DAAS;AACjB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACrC3B;AAAA;AAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA,cAAc,iEAAa;;AAEZ,sEAAO,EAAC;;;;;;;;;;;;;ACfvB;AAAA;AAAA;AAAoC;AACP;;AAE7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,2DAAO,mBAAmB,gDAAI;AACjD;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACf1B;AAAA;AAAA;AAA8C;AACjB;;AAE7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,gEAAY,mBAAmB,gDAAI;AACtD;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;ACf/B;AAAA;AAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA,mBAAmB,iEAAa;;AAEjB,2EAAY,EAAC;;;;;;;;;;;;;ACd5B;AAAA;AAAA;AAA4C;AACH;;AAEzC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA,SAAS,+DAAW;AACpB,WAAW,8DAAU;AACrB,GAAG;AACH;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AClB7B;AAAA;AAAA;AAAsC;AACN;;AAEhC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,EAAE;AACf;AACA;AACA,SAAS,4DAAQ;;AAEjB;AACA;;AAEA;AACA,oBAAoB,yDAAK;AACzB;AACA;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACvBvB;AAAA;AAAA;AAAwC;AACL;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,SAAS,2DAAO,oBAAoB,6DAAS;AAC7C;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACnB9B;AAAA;AAAA;AAAA;AAAkC;AACM;AACU;;AAElD;AACA;AACA;;AAEA;AACA,qBAAqB,kDAAM,GAAG,kDAAM;;AAEpC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS;AACf,MAAM,kEAAc;AACpB;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;AC3B1B;AAAA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACbtB;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AClBvB;AAAA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACZzB;AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACjB3B;AAAA;AAAA;AAAA;AAAgD;AACR;AACQ;;AAEhD;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,iEAAa;AACnB,MAAM,iEAAa,QAAQ,qDAAS;AACpC;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACnB3B;AAAA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;ACtB/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACU;AACQ;AAClB;AACE;AACF;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA,8BAA8B,6DAAiB,GAAG,yDAAa;AAC/D;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAc,4DAAQ,QAAQ,6DAAS;AACvC;AACA;AACA;AACA,YAAY,oDAAQ;AACpB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+EAAgB,EAAC;;;;;;;;;;;;;ACzEhC;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA,EAAE,8DAAU;AACZ;AACA,GAAG;AACH;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACpB5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACM;AACT;AACK;AACF;;AAEhC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA,SAAS,4DAAQ;AACjB,WAAW,0DAAM;AACjB,8CAA8C,yDAAK,CAAC,wDAAI;AACxD,oCAAoC,yDAAK;AACzC;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACvB1B;AAAA;AAAA;AAA0C;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY,WAAW,8DAAU;AAC1C;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;ACjB/B;AAAA;AAAA;AAA0C;AACG;;AAE7C;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY,WAAW,8DAAU;AAC1C;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;AChBjC;AAAA;AAAA;AAA0C;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY,WAAW,8DAAU;AAC1C;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACjB1B;AAAA;AAAA;AAAoD;AACP;;AAE7C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,0CAA0C,gEAAY,YAAY,gEAAY;AAC9E;AACA;AACA,SAAS,mEAAe;AACxB;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AC3B3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACY;AACF;AACI;AACZ;AACC;AACE;AACQ;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB,2DAAO;AACxB,iBAAiB,2DAAO;AACxB,qCAAqC,0DAAM;AAC3C,qCAAqC,0DAAM;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,4DAAQ;AAC3B,SAAS,4DAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,iDAAK;AAC/B,wBAAwB,gEAAY;AACpC,QAAQ,+DAAW;AACnB,QAAQ,8DAAU;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA4B,iDAAK;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,iDAAK;AAC7B,SAAS,gEAAY;AACrB;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;AClF/B;AAAA;AAAA;AAAkC;AACW;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY,WAAW,0DAAM;AACtC;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACjBzB;AAAA;AAAA;AAAgC;AACY;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL,sBAAsB,iDAAK;AAC3B;AACA;AACA;AACA;AACA,cAAc,+DAAW;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AC7D3B;AAAA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACXzB;AAAA;AAAA;AAAA;AAAA;AAAyC;AACH;AACD;AACC;;AAEtC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,OAAO,4DAAQ,WAAW,4DAAQ;AAClC;AACA;AACA,gBAAgB,8DAAU;AAC1B,sBAAsB,4DAAQ;AAC9B;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC9C5B;AAAA;AAAA;AAA0C;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY,WAAW,8DAAU;AAC1C;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACjB5B;AAAA;AAAA;AAAkC;AACW;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY,WAAW,0DAAM;AACtC;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACjBzB;AAAA;AAAA;AAAA;AAA0C;AACL;AACQ;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY;AACrB,IAAI,4DAAQ,mCAAmC,8DAAU;AACzD;;AAEe,+EAAgB,EAAC;;;;;;;;;;;;;AC3DhC;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACgB;AACvB;AACF;AACE;;AAErC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oDAAQ;AACnB;AACA;AACA,WAAW,2DAAO;AAClB,QAAQ,uEAAmB;AAC3B,QAAQ,+DAAW;AACnB;AACA,SAAS,4DAAQ;AACjB;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC9B5B;AAAA;AAAA;AAA4C;AACF;;AAE1C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA,OAAO,+DAAW;AAClB,WAAW,8DAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC7BxB;AAAA;AAAA;AAAA;AAAqC;AACO;AACE;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA,OAAO,4DAAQ;AACf,WAAW,gEAAY;AACvB;AACA,gBAAgB,+DAAW;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;AChC1B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B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACpB1B;AAAA;AAAA;AAAA;AAAwD;AACnB;AACA;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gCAAgC,4DAAQ;AACxC;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,SAAS,qEAAiB,eAAe,oDAAQ;AACjD;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;ACzC/B;AAAA;AAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iEAAiE;AACjE;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,4DAAQ;AAC5B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAQ;;AAE9B;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;AC/DjC;AAAA;AAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,sDAAE;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;AC7B9B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,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;AAEtD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,wBAAwB,oEAAgB;AACxC;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACf7B;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AChB3B;AAAA;AAAkC;;AAElC;AACA,kBAAkB,kDAAM,GAAG,kDAAM;AACjC;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACjB3B;AAAA;AAAsD;;AAEtD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA,wBAAwB,oEAAgB;AACxC;AACA;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;ACf/B;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,4DAAQ;;AAE9B;AACA;AACA;AACA,sBAAsB,4DAAQ;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+EAAgB,EAAC;;;;;;;;;;;;;ACxChC;AAAA;AAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,oEAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;AC3C/B;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACtC3B;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,YAAY,QAAQ;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,+EAAgB,EAAC;;;;;;;;;;;;;ACxChC;AAAA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACnBzB;AAAA;AAAA;AAA4C;AACQ;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,mEAAe;AACrB,KAAK;AACL,MAAM,+DAAW;AACjB;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACvC1B;AAAA;AAAA;AAA0C;AACA;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,WAAW;AAC7B,aAAa,OAAO;AACpB;AACA;AACA,SAAS,8DAAU,SAAS,8DAAU;AACtC;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACf3B;AAAA;AAAA;AAA0C;AACI;;AAE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A;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA,cAAc,0DAAM;AACpB;AACA,aAAa,8DAAU;AACvB;AACA;AACA,aAAa,8DAAU;AACvB;AACA,WAAW,+DAAW;AACtB;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AC7B7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACF;AACE;AACE;AACE;AACZ;AACI;AACJ;AACgB;AACb;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,gBAAgB;AAC3B,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,6DAAS;AACrD,wCAAwC,6DAAS;AACjD;;AAEA;AACA;AACA;;AAEA;AACA;AACA,qCAAqC,2DAAO;;AAE5C;AACA;AACA;AACA;;AAEA;AACA,IAAI,6DAAS;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,8DAAU;AAC3B,GAAG;AACH,aAAa,+DAAW;AACxB,GAAG;AACH,aAAa,iEAAa;AAC1B,GAAG;AACH,aAAa,wDAAY;AACzB;AACA,sBAAsB,uDAAW,GAAG,mDAAO;AAC3C,SAAS,mEAAe;AACxB;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACzG1B;AAAA;AAAyB;;AAEzB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,OAAO,sDAAE;AACT;AACA;AACA;AACA;;AAEe,qFAAsB,EAAC;;;;;;;;;;;;;AC5BtC;AAAA;AAAA;AAAwC;AACH;;AAErC;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;AACA,aAAa,EAAE;AACf;AACA;AACA,MAAM,4DAAQ,cAAc,4DAAQ;AACpC;AACA;AACA,IAAI,6DAAS;AACb;AACA;AACA;AACA;;AAEe,kFAAmB,EAAC;;;;;;;;;;;;;AC3BnC;AAAA;AAA+C;;AAE/C;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA,SAAS,iEAAa;AACtB;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;ACf/B;AAAA;AAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA,mBAAmB,kEAAc;;AAElB,2EAAY,EAAC;;;;;;;;;;;;;ACtE5B;AAAA;AAAwC;;AAExC;AACA;AACA,eAAe,6DAAS;AACxB,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAEc,6EAAc,EAAC;;;;;;;;;;;;;ACV9B;AAAA;AAAA;AAAA;AAAsC;AACE;AACF;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,oDAAQ;;AAE9D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,6DAAS;AACpB,iBAAiB,4DAAQ;AACzB;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AClF3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACQ;AACjB;AACmB;AACF;AACA;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,kDAAM,GAAG,kDAAM;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAyB,sDAAU,cAAc,sDAAU;AAC3D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,aAAa,sDAAE;;AAEf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oBAAoB,sDAAU;;AAE9B;AACA;AACA,4BAA4B,sDAAU;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,+DAAW;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;AC/G1B;AAAA;AAA0C;;AAE1C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,iBAAiB,8DAAU;AAC3B;AACA,iBAAiB,8DAAU;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACxF5B;AAAA;AAAkD;;AAElD;AACA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,cAAc;AACd,aAAa;AACb;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA,qBAAqB,kEAAc;;AAEpB,6EAAc,EAAC;;;;;;;;;;;;;ACpB9B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEe,+EAAgB,EAAC;;;;;;;;;;;;;ACrBhC;AAAA;AAAA;AAAA;AAAmC;AACG;AACM;;AAE5C;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,SAAS,+DAAW,CAAC,4DAAQ,kBAAkB,mDAAO;AACtD;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACfxB;AAAA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;;ACH1B;AAAA;AAAA;AAAA;AAAkD;AACR;AACb;;AAE7B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA,SAAS,kEAAc,SAAS,gDAAI,EAAE,sDAAU;AAChD;;AAE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;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACpEzB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACZ9B;AAAA;AAA8C;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA,cAAc,gEAAY;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;AClC/B;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,cAAc,gEAAY;;AAE1B;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AClB5B;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,gEAAY;AACrB;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACf5B;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA,cAAc,gEAAY;;AAE1B;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACzB5B;AAAA;AAAA;AAAA;AAA8B;AACU;AACZ;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,gDAAI;AACpB,gBAAgB,+CAAG,IAAI,qDAAS;AAChC,kBAAkB,gDAAI;AACtB;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACpB7B;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,eAAe,8DAAU;AACzB;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACjB9B;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA,SAAS,8DAAU;AACnB;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACf3B;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,SAAS,8DAAU;AACnB;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACf3B;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA,aAAa,8DAAU;AACvB;;AAEA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACrB3B;AAAA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACjB1B;AAAA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sFAAuB,EAAC;;;;;;;;;;;;;ACnBvC;AAAA;AAAmC;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,eAAe,2DAAO;AACtB;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACzB7B;AAAA;AAAA;AAAA;AAA4C;AACU;AACJ;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+DAAW;AACpC,yBAAyB,kEAAc;AACvC;AACA;AACA;AACA;AACA;AACA,yBAAyB,oEAAgB;AACzC,yBAAyB,kEAAc;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACzFzB;AAAA;AAAoC;;AAEpC;AACA,cAAc,mDAAO,QAAQ,mDAAO;;AAErB,sEAAO,EAAC;;;;;;;;;;;;;ACLvB;AAAA;AAAwC;;AAExC;AACA,mBAAmB,6DAAS;;AAEb,2EAAY,EAAC;;;;;;;;;;;;;ACL5B;AAAA;AAAoC;;AAEpC;AACA,iBAAiB,2DAAO;;AAET,yEAAU,EAAC;;;;;;;;;;;;;ACL1B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACnB5B;AAAA;AAA0C;;AAE1C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,mCAAmC,sDAAU;;AAE7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAEc,uEAAQ,EAAC;;;;;;;;;;;;;;AC7BxB;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACrB9B;AAAA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACt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AAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACzBxB;AAAA;AAAkD;;AAElD;AACA;AACA,QAAQ;AACR,OAAO;AACP,OAAO;AACP,SAAS;AACT,QAAQ;AACR;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA,uBAAuB,kEAAc;;AAEtB,+EAAgB,EAAC;;;;;;;;;;;;;ACpBhC;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AC3C3B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;ACvC9B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;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hB;AACI;AACQ;AACE;AACN;AACV;AACM;AACA;AACU;AACI;AACI;AACxB;AACA;AACc;AAChB;AACE;AACM;AACI;AACI;AACV;AACA;AACE;AACJ;AACY;AACI;AACA;AACI;AACI;AACA;AACd;AACI;AAChB;AACA;AACU;AACU;AACV;AACR;AACI;AACI;AACV;AACI;AACI;AACN;AACQ;AACJ;AACR;AACI;AACI;AACR;AACY;AACQ;AACZ;AACL;;;;;;;;;;;;;ACjE7C;AAAA;AAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAU;AACnB;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AC5BnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACF;AACQ;AACP;AACC;AACf;;AAE7B;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA,aAAa,kEAAc;AAC3B,MAAM,+DAAW,YAAY,+DAAW;AACxC,IAAI,8DAAU,SAAS,wDAAI;AAC3B;AACA;AACA;AACA;AACA,MAAM,+DAAW;AACjB;AACA;AACA,CAAC;;AAEc,qEAAM,EAAC;;;;;;;;;;;;;ACzDtB;AAAA;AAAA;AAAA;AAA0C;AACQ;AACjB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAAS;AACxB,UAAU;AACV;AACA,eAAe,kEAAc;AAC7B,EAAE,8DAAU,SAAS,0DAAM;AAC3B,CAAC;;AAEc,uEAAQ,EAAC;;;;;;;;;;;;;ACvCxB;AAAA;AAAA;AAAA;AAA0C;AACQ;AACjB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS,GAAG,SAAS,GAAG,SAAS;AAC9C,UAAU;AACV;AACA,mBAAmB,kEAAc;AACjC,EAAE,8DAAU,SAAS,0DAAM;AAC3B,CAAC;;AAEc,2EAAY,EAAC;;;;;;;;;;;;;ACrC5B;AAAA;AAAA;AAAA;AAA0C;AACQ;AACrB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS,GAAG,SAAS,GAAG,SAAS;AAC9C,UAAU;AACV;AACA,iBAAiB,kEAAc;AAC/B,EAAE,8DAAU,SAAS,wDAAI;AACzB,CAAC;;AAEc,yEAAU,EAAC;;;;;;;;;;;;;ACpC1B;AAAA;AAAA;AAAkC;AACI;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qBAAqB;AAChC,aAAa,MAAM;AACnB;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA,SAAS,4DAAQ,CAAC,kDAAM;;AAET,iEAAE,EAAC;;;;;;;;;;;;;ACtBlB;AAAA;AAAA;AAAA;AAAgC;AACM;AACH;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,cAAc,4DAAQ;AACtB;AACA,WAAW,yDAAK;AAChB,GAAG;AACH,WAAW,2DAAO;AAClB;AACA,CAAC;;AAEc,sEAAO,EAAC;;;;;;;;;;;;;AClCvB;AAAA;AAAuC;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACvCtB;AAAA;AAAA;AAAA;AAAA;AAAsC;AACI;AACF;AACU;;AAElD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA,kBAAkB,kEAAc,WAAW,6DAAS;AACpD;AACA;AACA,SAAS,8DAAU;AACnB,CAAC;;AAED;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACxDpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACY;AACvB;AACS;AACN;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4DAAQ;AACtB,EAAE,6DAAS;AACX,UAAU,yDAAK;AACf,IAAI,mEAAe,cAAc,wDAAI;AACrC,GAAG;AACH;AACA,CAAC;;AAEc,sEAAO,EAAC;;;;;;;;;;;;;ACxCvB;AAAA;AAAA;AAAA;AAAA;AAAsC;AACI;AACF;AACU;;AAElD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4DAAQ;AACtB;AACA;AACA,kBAAkB,kEAAc,WAAW,6DAAS;AACpD;AACA;AACA,SAAS,8DAAU;AACnB,CAAC;;AAED;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACnEvB;AAAA;AAAA;AAAyC;AACa;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAgB;AAChC;AACA,2BAA2B,8DAAU;AACrC,CAAC;;AAEc,wEAAS,EAAC;;;;;;;;;;;;;AC5BzB;AAAA;AAAA;AAAqC;AACI;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAU,CAAC,4DAAQ;AAC5B;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACtB1B;AAAA;AAAmC;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,gBAAgB,SAAS;AACzB,WAAW,SAAS;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,2DAAO;AAChB;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC3CzB;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,+DAAW;;AAEP,mEAAI,EAAC;;;;;;;;;;;;;ACzBpB;AAAA;AAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,+BAA+B;AACrC,MAAM,+BAA+B;AACrC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA,eAAe,iEAAM;AACrB;AACA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACrCrB;AAAA;AAAA;AAAA;AAAwC;AACU;AACX;;AAEvC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAc;AAC7B;AACA,GAAG;AACH,qBAAqB,6DAAS;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,6DAAS;AAClC;AACA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACjDrB;AAAA;AAAA;AAAwC;AACH;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA,YAAY,4DAAQ;AACpB;AACA;AACA,SAAS,6DAAS,CAAC,4DAAQ;AAC3B;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACtCrB;AAAA;AAAwC;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAS;AAClB;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACnCrB;AAAA;AAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAS;AAClB;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC5BzB;AAAA;AAAwC;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAS;AAClB;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACvC7B;AAAA;AAAwC;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAS;AAClB;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACzCzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmC;AACN;AACU;AACR;AACE;AACJ;AACQ;AACF;AACQ;AACE;AACV;AACU;AACV;AACE;AACE;AACR;AACJ;AACQ;AACI;AACN;AACU;AACV;AACA;AACQ;AACN;AACN;AACA;AACI;;AAElB;AACf,EAAE,4DAAO,EAAE,sDAAI,EAAE,gEAAS,EAAE,wDAAK,EAAE,0DAAM;AACzC,EAAE,sDAAI,EAAE,8DAAQ,EAAE,4DAAO,EAAE,oEAAW,EAAE,sEAAY;AACpD,EAAE,6DAAO,EAAE,uEAAY,EAAE,6DAAO,EAAE,+DAAQ,EAAE,iEAAS;AACrD,EAAE,yDAAK,EAAE,qDAAG,EAAE,6DAAO,EAAE,iEAAS,EAAE,2DAAM;AACxC,EAAE,qEAAW,EAAE,2DAAM,EAAE,2DAAM,EAAE,mEAAU,EAAE,6DAAO;AAClD,EAAE,uDAAI,EAAE,uDAAI,EAAE,2DAAM;AACpB,CAAC,EAAC;;;;;;;;;;;;;ACpCF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkD;AACN;AACU;AACR;AACE;AACJ;AACQ;AACF;AACQ;AACE;AACV;AACU;AACV;AACE;AACE;AACR;AACJ;AACQ;AACI;AACN;AACU;AACV;AACA;AACQ;AACN;AACN;AACA;AACI;AACE;;;;;;;;;;;;;AC5BlD;AAAA;AAAgD;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,yDAAa;AAC1B;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AChC7B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AC9BvB;AAAA;AAAA;AAAA;AAAA;AAAwC;AACI;AACJ;AACL;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,6DAAS,CAAC,2DAAO,UAAU,6DAAS,mBAAmB,+DAAW;AAC3E;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC1CtB;AAAA;AAAA;AAAA;AAAA;AAAgC;AACM;AACQ;AACR;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,SAAS;AACtB;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA,SAAS,iBAAiB;AAC1B;AACA;AACA,SAAS,qBAAqB;AAC9B;AACA;AACA;AACA;AACA,mBAAmB,wDAAY;;AAE/B,yBAAyB,4DAAQ;AACjC;AACA;AACA;AACA;AACA,GAAG;;AAEH,SAAS,4DAAQ;AACjB;AACA;AACA;AACA,UAAU,yDAAK;AACf,eAAe,yDAAK;AACpB;AACA;AACA,GAAG;AACH;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AC3DpB;AAAA;AAAA;AAAwC;AACM;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,iBAAiB;AACvB,MAAM;AACN;AACA;AACA,iCAAiC,mBAAmB,cAAc,EAAE,EAAE;AACtE,WAAW,iBAAiB;AAC5B;AACA;AACA,SAAS,gEAAY,CAAC,6DAAS;AAC/B;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AClCxB;AAAA;AAAA;AAAkD;AACrB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB;AACA,yBAAyB,mBAAmB,cAAc,EAAE,EAAE;AAC9D;AACA;AACA,yBAAyB,mBAAmB,cAAc,EAAE,EAAE;AAC9D;AACA;AACA;AACA,2BAA2B,kEAAc,iBAAiB,wDAAI;AAC9D;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;AC/B1B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACzBxB;AAAA;AAAA;AAAoD;AACE;;AAEtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA,cAAc,oEAAgB;AAC9B;AACA;AACA,GAAG;AACH,IAAI,mEAAe;AACnB;AACA,CAAC;;AAEc,sEAAO,EAAC;;;;;;;;;;;;;ACvCvB;AAAA;AAAA;AAA0C;AACA;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU;AACzB,uCAAuC,8DAAU;AACjD;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC1CtB;AAAA;AAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU;AACzB;AACA;AACA;;AAEA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACxDrB;AAAA;AAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU;AACzB;AACA;AACA;;AAEA;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACrD1B;AAAA;AAA2B;;AAEZ;AACf,EAAE,oDAAG;AACL,CAAC,EAAC;;;;;;;;;;;;;ACJF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACE;;;;;;;;;;;;;ACD5C;AAAA;AAAA;AAAA;AAAqC;AACV;AACU;;AAErC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS,4DAAQ;AACjB,MAAM,4DAAQ;AACd;AACA;AACA,iCAAiC,4DAAQ;AACzC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,uDAAG;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yDAAyD,uDAAG;AAC5D;;AAEA;AACA,eAAe,uDAAG;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC9LxB;AAAA;AAAA;AAA8C;AACT;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB,2CAA2C,wDAAY;AACvD;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;A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;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA,mBAAmB,iBAAiB,GAAG,iBAAiB;AACxD;AACA,+BAA+B,iBAAiB;AAChD,WAAW,iBAAiB;AAC5B;AACA,qBAAqB,4DAAQ;AAC7B,mBAAmB,wDAAI;AACvB,MAAM,qEAAiB;AACvB;AACA;AACA,SAAS,qEAAiB;AAC1B,MAAM,kEAAc,QAAQ,+DAAW,YAAY,6DAAiB;AACpE;AACA,CAAC;;AAEc,6EAAc,EAAC;;;;;;;;;;;;;ACvC9B;AAAA;AAA4D;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,aAAa,uEAAmB;AAChC;AACA,CAAC;;AAEc,qEAAM,EAAC;;;;;;;;;;;;;ACrBtB;AAAA;AAAA;AAAwC;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6DAAS;AAChD,SAAS,6DAAS;AAClB;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACrCpB;AAAA;AAAA;AAAwC;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6DAAS;AAChD;AACA,SAAS,6DAAS;AAClB;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACtCzB;AAAA;AAAA;AAA8C;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,oCAAoC;AAC1C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,wCAAwC,kBAAkB,EAAE;AAC5D;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS,QAAQ,gEAAY;AACnC;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;AC5C9B;AAAA;AAAA;AAA8C;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,kBAAkB,EAAE;AACvD;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS,QAAQ,gEAAY;AACnC;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC5CzB;AAAA;AAAA;AAAA;AAAsC;;;;;;;;;;;;;ACAtC;AAAA;AAAA;AAAA;AAA2C;;;;;;;;;;;;;ACA3C;AAAA;AAAA;AAAA;AAAA;AAAwC;AACM;AACP;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB,WAAW,gEAAY;;AAEvB;AACA;AACA;AACA,MAAM,6DAAS,CAAC,6DAAS;;AAEzB;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC1CxB;AAAA;AAAA;AAAA;AAAsC;;;;;;;;;;;;;ACAtC;AAAA;AAAA;AAAA;AAAwC;;;;;;;;;;;;;ACAxC;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,iEAAE,EAAC;;;;;;;;;;;;;ACpClB;AAAA;AAAA;AAAkD;AACb;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,WAAW,4DAAQ;AACnB;AACA,sCAAsC,0DAAc;AACpD;AACA;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC1CtB;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA,oCAAoC;AACpC;;AAEA;AACA;AACA,8BAA8B,KAAK;AACnC;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC/B5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;AACF;AACM;AACX;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM;AACN;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2DAAO,eAAe,sDAAU,GAAG,qDAAS;AACzD,eAAe,kEAAc;AAC7B;AACA;AACA,0BAA0B,gEAAY;AACtC;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACvDrB;AAAA;AAAA;AAAA;AAAuC;;;;;;;;;;;;;ACAvC;AAAA;AAAA;AAAA;AAA2C;;;;;;;;;;;;;ACA3C;AAAA;AAAA;AAAsC;AACY;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kEAAc;AACzD;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AC5CpB;AAAA;AAAA;AAAA;AAAA;AAA4C;AACF;AACI;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,MAAM,8CAA8C;AACpD,MAAM;AACN;AACA;AACA,gCAAgC,kBAAkB,EAAE;AACpD;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2DAAO,eAAe,uDAAW,GAAG,sDAAU;AAC3D,0BAA0B,gEAAY;AACtC;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC/CtB;AAAA;AAAA;AAA0C;AACH;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,gDAAgD;AACtD,MAAM;AACN;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8DAAU,CAAC,qDAAS;;AA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ACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+DAAW,CAAC,uDAAG;AACxB;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AC9B3B;AAAA;AAAA;AAAA;AAA4C;AACjB;AACY;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6DAAS;AAC7C,SAAS,+DAAW,CAAC,uDAAG;AACxB;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC9B5B;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+DAAW;AAC7B;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACrBvB;AAAA;AAA4C;;AAE5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,+DAAW;AAC7B;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACxB3B;AAAA;AAAA;AAA4C;AACL;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,6DAAS;AAC7C,SAAS,+DAAW;AACpB;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AChC5B;AAAA;AAA0C;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAU;AACnB;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AC3BpB;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAW;;AAER,oEAAK,EAAC;;;;;;;;;;;;;ACzBrB;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8DAAU;;AAEN,mEAAI,EAAC;;;;;;;;;;;;;AC1BpB;AAAA;AAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAU;;AAEX,wEAAS,EAAC;;;;;;;;;;;;;ACzBzB;AAAA;AAAA;AAAA;AAAA;AAAwC;AACF;AACQ;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,2DAAO,eAAe,qDAAS,GAAG,oDAAQ;AACvD,0BAA0B,gEAAY;AACtC;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACxCvB;AAAA;AAAA;AAAA;AAAA;AAAkD;AACF;AACF;AACX;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,2DAAO,eAAe,0DAAc,GAAG,yDAAa;AACjE,0BAA0B,gEAAY;AACtC;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC9B5B;AAAA;AAAA;AAAA;AAAoC;AACU;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO,SAAS,gEAAY,YAAY,kDAAM;AACpD;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACtCrB;AAAA;AAAA;AAAA;AAA8C;AACA;AACb;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,MAAM,gEAAY,SAAS,gEAAY,YAAY,kDAAM;AACzD;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACpC1B;AAAA;AAAA;AAA0C;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,mBAAmB,8DAAU,SAAS,gEAAY;AAClD;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACnCtB;AAAA;AAAA;AAAoD;AACN;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,mBAAmB,mEAAe,SAAS,gEAAY;AACvD;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACjC3B;AAAA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC3BzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+B;AACJ;AACM;AACJ;AACM;AACJ;AACU;AACJ;AACN;AACA;AACF;AACM;AACF;AACJ;AACQ;AACF;AACU;AACd;AACF;AACI;AACI;AACN;AACF;;AAEd;AACf,EAAE,wDAAK,EAAE,oDAAG,EAAE,0DAAM,EAAE,sDAAI,EAAE,4DAAO;AACnC,EAAE,wDAAK,EAAE,kEAAU,EAAE,8DAAQ,EAAE,wDAAK,EAAE,wDAAK;AAC3C,EAAE,uDAAI,EAAE,6DAAO,EAAE,2DAAM,EAAE,uDAAI,EAAE,+DAAQ;AACvC,EAAE,6DAAO,EAAE,uEAAY,EAAE,yDAAK,EAAE,uDAAI,EAAE,2DAAM;AAC5C,EAAE,+DAAQ,EAAE,yDAAK,EAAE,uDAAI;AACvB,CAAC,EAAC;;;;;;;;;;;;;AC9BF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACJ;AACM;AACJ;AACM;AACJ;AACU;AACJ;AACN;AACA;AACF;AACM;AACF;AACJ;AACQ;AACF;AACU;AACd;AACF;AACI;AACI;AACN;AACF;AACI;;;;;;;;;;;;;ACvBhD;AAAA;AAAA;AAAgD;AACnB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iEAAa,SAAS,wDAAI;AACzD;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC9BzB;AAAA;AAAA;AAAgD;AACf;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,iEAAa,SAAS,0DAAM;AAC3D;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AC9B3B;AAAA;AAAoC;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,2DAAO;AACnD;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AChCnB;AAAA;AAAA;AAAoD;AACE;;AAEtD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,UAAU;AACV;AACA,cAAc,oEAAgB;AAC9B;AACA;AACA,GAAG;AACH,IAAI,mEAAe;AACnB;AACA,CAAC;;AAEc,sEAAO,EAAC;;;;;;;;;;;;;ACxCvB;AAAA;AAAA;AAAkC;AACsC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6EAAyB,CAAC,kDAAM;;AAE1B,iEAAE,EAAC;;;;;;;;;;;;;AC5BlB;AAAA;AAAwE;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,6EAAyB;AACnC;AACA,CAAC;;AAEc,kEAAG,EAAC;;;;;;;;;;;;;AC7BnB;AAAA;AAAA;AAAoC;AACA;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB,OAAO,SAAS;AACjC,yBAAyB,gBAAgB,SAAS,GAAG;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAAO,eAAe,mDAAO;AACxD;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AClCnB;AAAA;AAAA;AAAwC;AACJ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2DAAO,eAAe,qDAAS;AAC1D;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACjCrB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACtBpB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACpBxB;AAAA;AAAA;AAAA;AAA4C;AACP;AACA;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4DAAQ;AAClB;AACA;AACA;AACA,GAAG;AACH,UAAU,4DAAQ;AAClB;AACA,WAAW,4DAAQ;AACnB,SAAS,+DAAW;AACpB;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACtDvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACD;AACN;AACE;AACN;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,+DAAW,4BAA4B,0DAAM;AAC5D,sCAAsC,6DAAS;;AAE/C;AACA;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;AACA,mBAAmB,+DAAW;AAC9B;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACpDxB;AAAA;AAAA;AAA4C;AACL;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6DAAS;AAC/C;AACA;AACA;AACA,SA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A;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,sBAAsB;AACjC;AACA,WAAW,KAAK;AAChB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAQ;AACxB;AACA;AACA,eAAe,+DAAW;;AAE1B,EAAE,4DAAQ;AACV,+BAA+B,yDAAK,sBAAsB,8DAAU;AACpE,GAAG;AACH;AACA,CAAC;;AAEc,wEAAS,EAAC;;;;;;;;;;;;;ACxCzB;AAAA;AAAA;AAAoD;AACP;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,kBAAkB,mEAAe,aAAa,kBAAkB,EAAE,MAAM,2DAAe;AACvF,SAAS,gEAAY;AACrB;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACnC3B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACzBvB;AAAA;AAAA;AAAA;AAAwD;AAChB;AACF;;AAEtC;AACA,wBAAwB,oDAAQ,IAAI,oDAAQ;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6DAAS,sBAAsB,6DAAiB;;AAEzE,4EAAa,EAAC;;;;;;;;;;;;;AC1B7B;AAAA;AAAA;AAAyC;AACJ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4DAAQ,mBAAmB,8DAAU;AAC/D;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AChC3B;AAAA;AAAA;AAA2C;AACE;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gEAAY,WAAW,+DAAW;AAC3C;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;AChCjC;AAAA;AAAA;AAA0C;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gEAAY,WAAW,8DAAU;AACtC;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC5BzB;AAAA;AAAA;AAA8B;AACS;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,6BAA6B,gDAAI;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,qDAAS;;AAE3B,uEAAQ,EAAC;;;;;;;;;;;;;;ACrCxB;AAAA;AAAA;AAAA;AAA0C;AACF;AACF;;AAEtC;AACA,iBAAiB,oDAAQ,IAAI,oDAAQ;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,6DAAS,eAAe,sDAAU;;AAE7C,qEAAM,EAAC;;;;;;;;;;;;;AC1BtB;AAAA;AAAA;AAA6C;AACE;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gEAAY,oCAAoC,iEAAa;AACtE;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACxBzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACJ;AACS;AACR;AACQ;AACN;AACO;AACC;;AAE7C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+DAAW;AACjB,OAAO,2DAAO;AACd,QAAQ,4DAAQ,WAAW,gEAAY,WAAW,+DAAW;AAC7D;AACA;AACA,YAAY,0DAAM;AAClB;AACA;AACA;AACA,MAAM,+DAAW;AACjB,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AC5EvB;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+DAAW;AACpB;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AClCvB;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,+DAAW;AAC3C;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACxC3B;AAAA;AAAA;AAAA;AAA0C;AACG;AACE;;AAE/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,gEAAY;AACnB;AACA;AACA,YAAY,8DAAU;AACtB;AACA,2EAA2E,iEAAa;AACxF;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACnCvB;AAAA;AAA8B;;AAE9B;AACA,qBAAqB,gDAAI;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACnCxB;AAAA;AAAA;AAA0C;AACL;;AAErC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,4DAAQ;AACf;AACA;AACA;AACA;AACA,YAAY,8DAAU;AACtB;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACpC1B;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,6DAAS;AACvD;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AChCzB;AAAA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AClCxB;AAAA;AAAA;AAAA;AAAwC;AACA;AACF;;AAEtC;AACA,gBAAgB,oDAAQ,IAAI,oDAAQ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAS,cAAc,qDAAS;;AAEzC,oEAAK,EAAC;;;;;;;;;;;;;AC1BrB;AAAA;AAAA;AAA4C;AACE;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA,sBAAsB,SAAS;AAC/B;AACA;AACA;AACA,8BAA8B,+DAAW,iBAAiB,gEAAY;AACtE;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACnCvB;AAAA;AAAA;AAA4C;AACE;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,+DAAW,iBAAiB,gEAAY;AACjD;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACxC3B;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACrCrB;AAAA;AAAA;AAA8C;AACJ;;AAE1C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,8DAAU;AAChB;AACA;AACA,SAAS,gEAAY;AACrB;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACvCxB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACxBrB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACrBtB;AAAA;AAAA;AAA0C;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gEAAY,WAAW,8DAAU;AACtC;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACrCxB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC9BxB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AC5B5B;AAAA;AAAA;AAAA;AAA0C;AACI;AACD;;AAE7C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,gEAAY,WAAW,8DAAU;AACxC;AACA;AACA,cAAc,gEAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AC7D7B;AAAA;AAAA;AAAA;AAA8C;AACN;AACF;;AAEtC;AACA,mBAAmB,oDAAQ,IAAI,oDAAQ;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,6DAAS,iBAAiB,wDAAY;;AAErD,uEAAQ,EAAC;;;;;;;;;;;;;AC1BxB;AAAA;AAAuC;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6DAAS;AAClB;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACpC7B;AAAA;AAAA;AAAA;AAAwC;AACA;AACF;;AAEtC;AACA,gBAAgB,oDAAQ,IAAI,oDAAQ;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,6DAAS,cAAc,qDAAS;;AAEzC,oEAAK,EAAC;;;;;;;;;;;;;AC1BrB;AAAA;AAAA;AAAA;AAA0C;AACP;AACU;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO,WAAW,gEAAY,WAAW,8DAAU;AACzD;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC7BxB;AAAA;AAAA;AAA0C;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gEAAY,WAAW,8DAAU;AACtC;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC5BxB;AAAA;AAAA;AAAA;AAAsD;AACd;AACF;;AAEtC;AACA,uBAAuB,oDAAQ,IAAI,oDAAQ;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,6DAAS,qBAAqB,4DAAgB;;AAErE,2EAAY,EAAC;;;;;;;;;;;;;AC1B5B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACrB3B;AAAA;AAAA;AAAkC;AACW;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gEAAY,WAAW,0DAAM;AACtC;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC3BzB;AAAA;AAAA;AAA0C;AACG;;AAE7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,gEAAY,WAAW,8DAAU;AAC1C;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC3BzB;AAAA;AAAA;AAAwC;AACM;;AAE9C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,8CAA8C;AACpD,MAAM;AACN;AACA;AACA;AACA,+BAA+B,mCAAmC;AAClE,WAAW,8CAA8C;AACzD;AACA;AACA;AACA,WAAW,4BAA4B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,SAAS,gEAAY,oCAAoC,6DAAS;AAClE;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACpDxB;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACzBpB;AAAA;AAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAgB;AAChC;AACA,CAAC;;AAEc,wEAAS,EAAC;;;;;;;;;;;;;AC3BzB;AAAA;AAAA;AAAoD;AACE;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,4BAA4B;AAClC,MAAM;AACN;AACA;AACA;AACA;AACA,IAAI;AACJ,UAAU,OAAO,4BAA4B,QAAQ,8BAA8B;AACnF;AACA;AACA,UAAU,UAAU,4BAA4B,YAAY,8BAA8B;AAC1F;AACA,YAAY,oEAAgB;AAC5B,EAAE,mEAAe;AACjB,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;;;;;;ACnCrB;AAAA;AAAA;AAAA;AAAgD;AACV;AACK;;AAE3C;AACA;AACA;AACA;AACA;AACA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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC0C;AACI;AACJ;AACM;AACI;AACQ;AACJ;AAChB;AACU;AACF;AACJ;AACM;AACA;AACI;AACE;AACF;AACV;AACE;AACA;AACA;AACA;AACQ;AACQ;AACR;AACN;AACE;AACF;AACJ;AACQ;AACI;AACJ;AACF;AACF;AACF;AACU;AACJ;AACJ;AACM;AACF;AACQ;AACd;AACA;AACU;AACI;AACI;AAChB;AACJ;AACU;AACU;AACV;AACV;AACU;AACF;AACF;AACI;AACd;AACQ;AACY;AACd;AACE;AACQ;AACZ;AACI;AACJ;AACU;AACJ;AACE;AACU;AACJ;AACZ;AACI;AACQ;AACE;AACV;AACQ;AACE;AAChB;AACE;AACF;AACU;AACJ;AACU;AACd;AACU;AACR;AACU;AACJ;AACA;AACI;AAChB;AACQ;AACV;AACE;AACA;AACI;AACF;AACQ;AACF;AACE;AACF;AACA;AACU;AACI;AACI;AACpB;AACI;AACJ;AACM;AACI;AACR;AACY;AACJ;AACY;AAChB;AACF;AACJ;AACM;AACJ;AACA;AACQ;AACR;AACE;AACI;AACF;AACF;AACN;AACI;AACQ;AACZ;AACM;AACN;AACE;AACI;AACA;AACQ;AACE;AACV;AACU;AAChB;AACM;AACA;AACQ;AACF;AACJ;AACA;AACF;AACR;AACU;AACR;AACF;AACI;AACJ;AACc;AACH;AACD;AACE;AAChB;AACE;AACA;AACQ;AACI;AACJ;AACgB;AACxB;AACI;AACF;AACI;AACE;AACJ;AACQ;AACN;AACI;AACV;AACI;AACA;AACM;AACJ;AACJ;AACA;AACF;AACA;AACM;AACJ;AACI;AACJ;AACM;AACN;AACQ;AACE;AACF;AACV;AACM;AACI;AACA;AACF;AACU;AACN;AACV;AACI;AACF;AACM;AACI;AACZ;AACM;AACI;AACI;AACV;AACA;AACF;AACU;AACV;AACE;AACU;AACV;AACA;AACA;AACE;AACN;AACI;AACE;AACJ;AACE;AACQ;AACd;AACQ;AACA;AACN;AACE;AACQ;AACV;AACI;AACU;AACI;AACA;AACI;AACI;AACA;AACd;AACI;AACd;AACE;AACM;AACE;AACF;AACA;AACE;AACA;AACJ;AACA;AACV;AACI;AACF;AACA;AACU;AACU;AACV;AACZ;AACU;AACgB;AAChB;AACR;AACE;AACI;AACE;AACE;AACE;AACR;AACI;AACF;AACE;AACF;AACI;AACN;AACc;AACA;AACV;AACF;AACI;AACV;AACM;AACI;AACF;AACN;AACM;AACN;AACI;AACI;AACV;AACI;AACI;AACA;AACN;AACA;AACQ;AACN;AACQ;AACF;AACE;AACV;AACI;AACF;AACI;AACF;AACJ;AACF;AACU;AACM;AACL;AACO;AACX;AACE;AACW;AACD;AACH;AAClB;AACI;AACI;AACR;AACY;AACQ;AACZ;AACJ;;;;;;;;;;;;;AC1U9C;AAAA;AAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAgB;AAChC;AACA,CAAC;;AAEc,wEAAS,EAAC;;;;;;;;;;;;;AC1BzB;AAAA;AAAoD;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,mEAAe;;AAEjB,yEAAU,EAAC;;;;;;;;;;;;;ACrB1B;AAAA;AAAA;AAAkC;AACsC;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,6EAAyB,CAAC,kDAAM;;AAE1B,iEAAE,EAAC;;;;;;;;;;;;;AC5BlB;AAAA;AAAwE;;AAExE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,6EAAyB;AACnC;AACA,CAAC;;AAEc,kEAAG,EAAC;;;;;;;;;;;;;AC7BnB;AAAA;AAAA;AAAA;AAAA;AAAsC;AACQ;AACV;AACD;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA,MAAM,mBAAmB;AACzB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2DAAO,eAAe,oDAAQ,GAAG,mDAAO;AACrD,0BAA0B,gEAAY;AACtC;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;ACpDnB;AAAA;AAAA;AAAA;AAAoD;AACV;AACI;;AAE9C;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,IAAI;AACJ,UAAU;AACV;AACA;AACA;AACA,aAAa,gEAAY;;AAEzB,EAAE,8DAAU;AACZ,IAAI,mEAAe;AACnB,GAAG;AACH;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACnCvB;AAAA;AAAA;AAAA;AAAoD;AACV;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA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B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AAChE;AACA,kCAAkC,YAAY,EAAE;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAQ,QAAQ,gEAAY;AACrC;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC9BtB;AAAA;AAAsC;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,oDAAQ;AACjD;AACA;;AAEA;AACA,gBAAgB,oDAAQ;;AAET,sEAAO,EAAC;;;;;;;;;;;;;ACxEvB;AAAA;AAAA;AAAwC;AACU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,UAAU,QAAQ,iBAAiB,GAAG,iBAAiB;AACvD;AACA,YAAY,kEAAc;AAC1B,EAAE,6DAAS;AACX,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;;;;;;ACtCrB;AAAA;AAAA;AAAwC;AACU;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA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AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA,UAAU;AACV;AACA;AACA;AACA,sBAAsB,2DAAO;AAC7B;AACA;AACA;;AAEA,UAAU;AACV;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AClC3B;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AChBpB;AAAA;AAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,SAAS,gDAAI;AACb;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;ACtBnB;AAAA;AAAA;AAAoC;AACG;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,2DAAO,QAAQ,6DAAS;AAC3D;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AC5BnB;AAAA;AAAA;AAAA;AAAoC;AACE;AACC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS;AACf,SAAS,4DAAQ;AACjB,WAAW,2DAAO;AAClB,GAAG;AACH;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC/BtB;AAAA;AAAA;AAAA;AAA+B;AACI;AACF;;AAElB;AACf,EAAE,wDAAK,EAAE,4DAAO,EAAE,0DAAM;AACxB,CAAC,EAAC;;;;;;;;;;;;;ACNF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACI;AACF;AACF;;;;;;;;;;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AClB,WAAW,4DAAQ;AACnB;AACA;AACA,GAAG;AACH,EAAE,8DAAU,SAAS,gEAAY;AACjC;AACA,aAAa,6DAAS,iEAAiE,2DAAe;AACtG;AACA;AACA;AACA,IAAI,6DAAS;AACb;AACA;AACA,CAAC;;AAEc,mEAAI,EAAC;;;;;;;;;;;;;ACxDpB;AAAA;AAAA;AAAA;AAA8C;AACb;AACA;;AAEjC;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA,SAAS,0DAAM,SAAS,0DAAM,CAAC,gEAAY;AAC3C;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC5BtB;AAAA;AAAiC;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAAM;AACf;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACxBpB;AAAA;AAAA;AAA4C;AACT;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,qCAAqC;AAChD;AACA,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,2DAAO;AACd;AACA;AACA;AACA,OAAO,2DAAO;AACd;AACA;AACA,SAAS,+DAAW;AACpB;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AC9CvB;AAAA;AAAA;AAAsC;AACI;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,8DAAU,CAAC,oDAAQ;;AAEf,mEAAI,EAAC;;;;;;;;;;;;;ACvBpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACM;AACM;AACE;AACR;AACE;AACF;AACH;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,yBAAyB;AACpC;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAQ;AACvB,0CAA0C,2DAAO;AACjD,MAAM,4DAAQ,gBAAgB,6DAAS,CAAC,wDAAY;AACpD,MAAM,4DAAQ,CAAC,+DAAW,iBAAiB,6DAAS,CAAC,wDAAY;;AAEjE;AACA,SAAS,4DAAQ;AACjB;AACA;;AAEA;AACA;AACA;AACA,WAAW,yDAAK;AAChB,GAAG;AACH,CAAC;;AAEc,uEAAQ,EAAC;;;;;;;;;;;;;AC5DxB;AAAA;AAAA;AAA0C;AACA;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,8DAAU,CAAC,sDAAU;;AAEtB,wEAAS,EAAC;;;;;;;;;;;;;AC7BzB;AAAA;AAAA;AAAwC;AACE;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8DAAU,CAAC,qDAAS;;AAEpB,uEAAQ,EAAC;;;;;;;;;;;;;AC7BxB;AAAA;AAAA;AAAA;AAAA;AAAgD;AACN;AACH;AACF;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB,WAAW,6DAAS;;AAEpB,2BAA2B,8DAAU;AACrC;AACA;AACA;AACA;AACA;AACA,IAAI,iEAAa;AACjB;AACA,IAAI,iEAAa;AACjB;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AChDnB;AAAA;AAAA;AAAA;AAAA;AAAgD;AACN;AACH;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB,WAAW,6DAAS;;AAEpB,2BAA2B,8DAAU;AACrC;AACA,gBAAgB,iEAAa;AAC7B;AACA;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACtCtB;AAAA;AAAA;AAAA;AAAA;AAAgD;AACN;AACH;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB,WAAW,6DAAS;;AAEpB,2BAA2B,8DAAU;AACrC;AACA,OAAO,iEAAa;AACpB;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACtCxB;AAAA;AAAA;AAA8B;AACO;;AAErC;AACA;;AAEA;AACA,qBAAqB,gDAAI;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,wBAAwB,4DAAQ;AAChC;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC1CxB;AAAA;AAAA;AAAA;AAAA;AAAsC;AACI;AACF;AACU;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,4DAAQ;AACtB,gBAAgB,kEAAc,WAAW,6DAAS;AAClD,SAAS,8DAAU;AACnB,CAAC;;AAED;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACjDvB;AAAA;AAAA;AAAA;AAAA;AAAsC;AACI;AACF;AACU;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,KAAK;AAChB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAAQ;AAC3B,gBAAgB,kEAAc,WAAW,6DAAS;AAClD,SAAS,8DAAU;AACnB,CAAC;;AAED;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;AChD5B;AAAA;AAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,gDAAgD;AACtD,MAAM,+CAA+C;AACrD,MAAM;AACN;AACA;AACA,mCAAmC,iBAAiB,EAAE;AACtD;AACA;AACA;AACA,uBAAuB,4BAA4B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAgB;AAChC;AACA,CAAC,cAAc,iBAAiB,EAAE;;AAEnB,wEAAS,EAAC;;;;;;;;;;;;;AC1CzB;AAAA;AAAA;AAAsC;AACA;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA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A,WAAW,iBAAiB,GAAG,iBAAiB;AAChD;AACA;AACA;AACA,MAAM,+DAAW;AACjB;AACA;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;AC/B3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACJ;AACQ;AACY;AAChB;AACF;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,qBAAqB;AAChC,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAQ;AACrB;AACA,eAAe,0DAAM;;AAErB,EAAE,8DAAU,QAAQ,4DAAQ;AAC5B,WAAW,2DAAO;AAClB,GAAG,OAAO,4DAAgB;;AAE1B;AACA,CAAC;;AAEc,qEAAM,EAAC;;;;;;;;;;;;;AC1CtB;AAAA;AAAA;AAAA;AAA0C;AACQ;AACb;;AAErC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,kEAAc;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA,KAAK;AACL,cAAc,4DAAQ;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,8DAAU;AACnB;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACjFtB;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,+DAAW;;AAER,oEAAK,EAAC;;;;;;;;;;;;;AC7CrB;AAAA;AAA4C;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,+DAAW;;AAEb,yEAAU,EAAC;;;;;;;;;;;;;ACxC1B;AAAA;AAAA;AAA0C;AACJ;;AAEtC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,qBAAqB;AAChC,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,YAAY,4DAAQ;AACpB,SAAS,8DAAU;AACnB,CAAC;;AAEc,oEAAK,EAAC;;;;;;;;;;;;;AChCrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACN;AACQ;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA,IAAI,IAAI;AACR,UAAU,8BAA8B;AACxC;AACA;AACA,aAAa,2DAAO,eAAe,uDAAW,GAAG,sDAAU;AAC3D;;AAEA,0BAA0B,gEAAY,uCAAuC,oDAAQ;AACrF;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AClDtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsD;AACN;AACF;AACJ;AACP;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,aAAa,2DAAO,eAAe,4DAAgB,GAAG,sDAAU;AAChE;;AAEA,0BAA0B,gEAAY,uCAAuC,yDAAa;AAC1F;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACnC3B;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACF;AACI;AACX;AACF;;AAEjC;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM;AACN;AACA;AACA,gCAAgC,kBAAkB,EAAE;AACpD;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2DAAO,eAAe,uDAAW,GAAG,sDAAU;AAC3D,0BAA0B,0DAAM,CAAC,gEAAY;AAC7C;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC7CtB;AAAA;AAAA;AAA8C;AACJ;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,cAAc,gEAAY;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,8DAAU;AACZ;AACA;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACpDtB;AAAA;AAAA;AAAA;AAAA;AAA0C;AACQ;AACX;AACF;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,kEAAc;AAC7B;AACA,GAAG;AACH,QAAQ,6DAAS;AACjB;AACA,SAAS,8DAAU,CAAC,4DAAQ;AAC5B;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACpCtB;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,gBAAgB;AAC3B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAQ;;AAEvB;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AC5BvB;AAAA;AAAA;AAAsC;AACC;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6DAAS;AACjD,SAAS,4DAAQ;AACjB;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACvCpB;AAAA;AAAA;AAAA;AAAsC;AACG;AACT;;AAEhC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,+BAA+B,EAAE;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAQ;;AAEjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,yDAAK;AACzD;AACA;AACA;AACA;AACA,aAAa,8DAAU;AACvB;AACA;AACA;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;ACvDtB;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+DAAW;AACjB,WAAW,4DAAQ,eAAe,8DAAU;AAC5C;AACA,YAAY,0DAAM;AAClB;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AC7CpB;AAAA;AAAA;AAAA;AAAwC;AACU;AACX;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,kEAAc;AACrD;AACA;AACA;AACA;AACA,gCAAgC,6DAAS;AACzC,uCAAuC,6DAAS;AAChD;AACA,SAAS,6DAAS;AAClB;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACpCrB;AAAA;AAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAgB;AAChC;AACA,CAAC;;AAEc,wEAAS,EAAC;;;;;;;;;;;;;AC3BzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACM;AACR;AACH;AACe;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mCAAmC;AACzC,MAAM;AACN;AACA;AACA;AACA,kBAAkB,oCAAoC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,2DAAO,eAAe,qDAAS,GAAG,oDAAQ;AACvD,eAAe,kEAAc;AAC7B;AACA;AACA,0BAA0B,gEAAY;AACtC;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AClDpB;AAAA;AAAA;AAAA;AAAA;AAA4C;AACA;AACN;AACY;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,yBAAyB;AACpC;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM;AACN;AACA;AACA,iCAAiC,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAQ;AACrB;AACA;AACA;AACA;AACA,oBAAoB,kEAAc;AAClC;AACA,GAAG,wBAAwB,kEAAc;AACzC;AACA;AACA,SAAS,+DAAW,aAAa,+DAAW;AAC5C,CAAC;;AAEc,qEAAM,EAAC;;;;;;;;;;;;;AC/CtB;AAAA;AAAoD;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mEAAe;AACxB;;AAEe,0EAAW,EAAC;;;;;;;;;;;;;ACvB3B;AAAA;AAAA;AAA8C;AACU;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA,6BAA6B,SAAS,eAAe,YAAY,EAAE;AACnE;AACA;AACA;AACA,6BAA6B,SAAS;AACtC;AACA;AACA;AACA,SAAS,qEAAiB,eAAe,gEAAY;AACrD;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AChC7B;AAAA;AAAA;AAAoD;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAe;AAC/B,0BAA0B,sDAAE;AAC5B;AACA;AACA;AACA;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AC9B7B;AAAA;AAAoD;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,mEAAe;AACxB;;AAEe,8EAAe,EAAC;;;;;;;;;;;;;ACxB/B;AAAA;AAAA;AAA8C;AACU;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA,iCAAiC,SAAS,eAAe,YAAY,EAAE;AACvE;AACA;AACA;AACA,iCAAiC,SAAS;AAC1C;AACA;AACA;AACA,SAAS,qEAAiB,eAAe,gEAAY;AACrD;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;AChCjC;AAAA;AAAA;AAAoD;AAC3B;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mEAAe;AAC/B,QAAQ,sDAAE;AACV;AACA;AACA;AACA;AACA;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;AC9BjC;AAAA;AAAkD;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAc;AACpB;AACA;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;ACvB1B;AAAA;AAAA;AAA8C;AACI;;AAElD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,kEAAc,QAAQ,gEAAY;AACxC;AACA;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACzB5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACN;AACE;AACQ;AACb;AACW;AACX;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,kEAAc;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA,+BAA+B,4DAAQ;AACvC;AACA,gBAAgB,gEAAY;AAC5B,sBAAsB,8DAAU;AAChC,aAAa,6DAAS,CAAC,iEAAa;AACpC;AACA;AACA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;ACnDrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAgC;AACQ;AACF;AACE;AACD;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,6DAAS;AACjD,SAAS,4DAAQ;AACjB;AACA,oBAAoB,6DAAS;;AAE7B;AACA,MAAM,6DAAS;AACf;AACA,WAAW,yDAAK;AAChB,GAAG;AACH;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AC9DtB;AAAA;AAAA;AAAsD;AACb;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAgB;AAChC,uCAAuC,8DA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACjBxB;AAAA;AAA4D;;AAE5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,eAAe,uEAAmB;AAClC;AACA,CAAC;;AAEc,uEAAQ,EAAC;;;;;;;;;;;;;ACrBxB;AAAA;AAAA;AAAoC;AACC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO,QAAQ,oDAAQ;AAC7B;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;ACvBnB;AAAA;AAAA;AAA8C;AACV;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS;AAChE;AACA,iCAAiC,YAAY,EAAE;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO,QAAQ,gEAAY;AACjC;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;AChCrB;AAAA;AAAwC;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,6DAAS;AAC3B;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACrBpB;AAAA;AAAA;AAAwC;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6DAAS;AAChD,SAAS,6DAAS;AAClB;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;ACpCpB;AAAA;AAAA;AAAwC;AACD;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,6DAAS;AAChD;AACA,SAAS,6DAAS;AAClB;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACtCzB;AAAA;AAAA;AAA8C;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,oCAAoC;AAC1C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,wCAAwC,kBAAkB,EAAE;AAC5D;AACA;AACA;AACA,4BAA4B,qCAAqC;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS,QAAQ,gEAAY;AACnC;AACA;;AAEe,6EAAc,EAAC;;;;;;;;;;;;;AC5C9B;AAAA;AAAA;AAA8C;AACN;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,kBAAkB,EAAE;AACvD;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS,QAAQ,gEAAY;AACnC;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC5CzB;AAAA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;AC5BnB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6C;AACV;AACO;AACwB;AACZ;AACnB;AACe;AACrB;AACmB;AACK;AAChB;;AAErC;AACA,yCAAyC;AACzC;AACA,yDAAyD;;AAEzD;AACA;AACA;AACA;AACA,wBAAwB,MAAM,aAAa,OAAO;;AAElD;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,OAAO;AAClB;AACA,YAAY,OAAO;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA,aAAa,sBAAsB;AACnC,iBAAiB,UAAU;AAC3B;AACA;AACA,kEAAkE,2BAA2B,EAAE;AAC/F,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA,wDAAwD;AACxD,aAAa,mBAAmB;AAChC;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C,aAAa,oBAAoB;AACjC;AACA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA;AACA;AACA,iDAAiD,2BAA2B,EAAE;AAC9E,oCAAoC,aAAa,eAAe,EAAE;AAClE,aAAa,8BAA8B;AAC3C;AACA;AACA;AACA,oDAAoD,qCAAqC;AACzF;AACA;AACA;AACA;AACA,sDAAsD,qBAAqB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,YAAY;AACnD,sCAAsC,QAAQ;AAC9C,aAAa,qBAAqB;AAClC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,4DAAgB,+BAA+B,4DAAgB;;AAEhF,eAAe,kEAAc;AAC7B;AACA;AACA,WAAW,6DAAQ;AACnB,YAAY,gEAAY,GAAG,qBAAqB,kEAAsB;;AAEtE,gBAAgB,gEAAY,GAAG,qCAAqC,kEAAsB;AAC1F,oBAAoB,wDAAI;AACxB,sBAAsB,8DAAU;;AAEhC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,yDAAa;AAClC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,qEAAqE,4DAAgB;;AAErF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,mBAAmB;AAC7C;AACA;AACA;AACA;AACA,wCAAwC;;AAExC;AACA,mDAAmD;AACnD;AACA;AACA,yBAAyB,EAAE;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,2BAA2B,iCAAiC;AAC5D,UAAU;AACV;AACA;AACA,kBAAkB;;AAElB,eAAe,2DAAO;AACtB;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,MAAM,2DAAO;AACb;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC5PxB;AAAA;AAAA;AAAA;AAAA;AAAiC;AACK;AACI;AACM;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,YAAY,oDAAQ;;AAEpB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,cAAc,sDAAU;;AAExB;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA,iBAAiB,yDAAa;;AAE9B;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA,UAAU,WAAW,kDAAM;AAC3B;AACA;;AAEe,+EAAgB,EAAC;;;;;;;;;;;;;AClEhC;AAAA;AAAA;AAAqC;AACA;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,oBAAoB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,4DAAQ;AACd;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;AACA;AACA;AACA,GAAG;AACH;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACpExB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AC3BpB;AAAA;AAAA;AAAA;AAAwC;AACM;AACP;;AAEvC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS;AACf;AACA;AACA;AACA;AACA;;AAEA,aAAa,gEAAY;AACzB;;AAEA,eAAe,6DAAS;AACxB;AACA;AACA;AACA;AACA;;AAEe,oEAAK,EAAC;;;;;;;;;;;;;AClDrB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAkC;AACM;AACN;AACS;AACN;AACe;AACV;AACA;AACM;AACf;;AAEjC;AACA;AACA;;AAEA;AACA,kBAAkB,kDAAM,GAAG,kDAAM;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+DAAW;AACjB,WAAW,4DAAQ,UAAU,iEAAa,UAAU,6DAAS;AAC7D;AACA;AACA,WAAW,mEAAe;AAC1B;AACA,YAAY,0DAAM;AAClB,6BAA6B,sDAAU,oBAAoB,sDAAU,GAAG,kDAAM;;AAE9E;AACA;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;ACzDvB;AAAA;AAAqC;;AAErC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,4DAAQ;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACzCxB;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,4DAAQ;AACvB;;AAEA;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACnCzB;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,gFAAiB,EAAC;;;;;;;;;;;;;ACtBjC;AAAA;AAAA;AAAA;AAA2C;;;;;;;;;;;;;ACA3C;AAAA;AAAA;AAAwC;AACD;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6DAAS,CAAC,6DAAS;AACpC;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACrCxB;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AC3BvB;AAAA;AAAA;AAAqC;AACA;;AAErC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,4DAAQ;AACd;AACA;AACA,MAAM,4DAAQ;AACd;AACA,YAAY,4DAAQ;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;ACjExB;AAAA;AAAA;AAAgD;AACnB;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,iEAAa,CAAC,gDAAI;;AAEjB,sEAAO,EAAC;;;;;;;;;;;;;AC7BvB;AAAA;AAAA;AAAgD;AACf;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iEAAa,CAAC,kDAAM;;AAErB,wEAAS,EAAC;;;;;;;;;;;;;AC7BzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsC;AACE;AACL;AACE;AACS;AACd;AACK;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,2DAAO;AACb,WAAW,4DAAQ,QAAQ,iDAAK;AAChC;AACA,SAAS,4DAAQ,oBAAoB,6DAAS,CAAC,gEAAY,CAAC,4DAAQ;AACpE;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AChCtB;AAAA;AAAA;AAA0C;AACT;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA,SAAS,8DAAU,QAAQ,0DAAM;AACjC;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;AC/B7B;AAAA;AAAA;AAAwC;AACD;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,6DAAS,CAAC,6DAAS;AACzB;AACA;;AAEe,4EAAa,EAAC;;;;;;;;;;;;;ACpC7B;AAAA;AAA8C;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,gEAAY;AAC1C;;AAEe,uEAAQ,EAAC;;;;;;;;;;;;;AC3BxB;AAAA;AAAqC;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,4DAAQ;AACjB;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AC3BvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAwC;AACE;AACA;AACI;AACA;AACX;AACE;AACI;AACJ;AACQ;;AAE7C;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,gBAAgB,yBAAyB;AACzC;AACA,IAAI,IAAI;AACR,UAAU;AACV;AACA;AACA,cAAc,2DAAO;AACrB,2BAA2B,4DAAQ,YAAY,gEAAY;;AAE3D,aAAa,gEAAY;AACzB;AACA;AACA;AACA;AACA;AACA,aAAa,4DAAQ;AACrB,oBAAoB,8DAAU,SAAS,8DAAU,CAAC,gEAAY;AAC9D;AACA;AACA;AACA;AACA;AACA,eAAe,qDAAS,GAAG,sDAAU;AACrC;AACA,GAAG;AACH;AACA;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AChEzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACN;AACQ;AACI;AACJ;AACX;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA;AACA,2BAA2B,gEAAY;AACvC;AACA;AACA,mBAAmB,iEAAa;AAChC,mBAAmB,iEAAa;AAChC,cAAc,mEAAe;AAC7B,YAAY,iEAAa;;AAEzB,SAAS,6DAAS;AAClB;;AAEe,mEAAI,EAAC;;;;;;;;;;;;;AChDpB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACN;AACQ;AACA;AACX;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA;AACA,2BAA2B,gEAAY;AACvC;AACA;AACA,mBAAmB,iEAAa;AAChC,YAAY,iEAAa,aAAa,iEAAa;;AAEnD,SAAS,6DAAS;AAClB;;AAEe,sEAAO,EAAC;;;;;;;;;;;;;AC1CvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACN;AACY;AACJ;AACX;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,YAAY,OAAO;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,4DAAQ;AACnB;AACA;AACA;AACA,2BAA2B,gEAAY;AACvC;AACA;AACA,mBAAmB,iEAAa;AAChC,cAAc,mEAAe,aAAa,iEAAa;;AAEvD,SAAS,6DAAS;AAClB;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;AC1CzB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8C;AACN;AACE;AACL;AACA;AACK;AACM;AACT;AACF;;AAErC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,cAAc;AACzB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA,MAAM,4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;;;;;;;;;;;;;AC5CrB;AAAA;AAAA;AAAA;AAAgC;AACM;AACP;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,yDAAK;AACpB;AACA;AACA;AACA,SAAS,4DAAQ;AACjB,WAAW,yDAAK;AAChB,GAAG;AACH;;AAEe,wEAAS,EAAC;;;;;;;;;;;;;ACtCzB;AAAA;AAAA;AAA0C;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA,6CAA6C,cAAc,EAAE;AAC7D;AACA;AACA;AACA,6CAA6C,sBAAsB,EAAE;AACrE;AACA;AACA;AACA;AACA,mCAAmC,8DAAU,eAAe,gEAAY;AACxE;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AClCtB;AAAA;AAAA;AAA0C;AACI;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,UAAU,OAAO,WAAW;AAC5B;AACA;AACA;AACA,mCAAmC,8DAAU,eAAe,gEAAY;AACxE;;AAEe,yEAAU,EAAC;;;;;;;;;;;;;AChC1B;AAAA;AAAsD;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,oEAAgB;AAChC;AACA,CAAC;;AAEc,wEAAS,EAAC;;;;;;;;;;;;;AC1BzB;AAAA;AAAoD;;AAEpD;AACA;AACA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A;AACA,UAAU;AACV;AACA;AACA,SAAS,yDAAK;AACd;;AAEe,2EAAY,EAAC;;;;;;;;;;;;;ACjC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA4C;AACI;AACN;AACP;AACU;AACC;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,gEAAY,YAAY,2DAAO,8BAA8B,uDAAW;AAC9E,yBAAyB,yDAAa;AACtC;AACA;AACA;AACA,aAAa,gEAAY;AACzB;AACA;AACA,aAAa,yDAAa;AAC1B;;AAEA;AACA,mBAAmB,sDAAU;AAC7B;;AAEe,qEAAM,EAAC;;;;;;;;;;;;;AClJtB;AAAA;AAAA;AAAA;AAAA;AAA4C;AACI;AACb;AACN;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uDAAW;AAClC;AACA;AACA,oBAAoB,uDAAW;AAC/B;AACA;AACA;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ACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;;AAEA;AACA;AACA,wCAAwC,WAAW;AACnD;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,oCAAoC,cAAc;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC,kBAAkB;AACnD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB;;AAEjB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,iBAAiB;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY;AACZ;AACA;;AAEA;AACA,YAAY;AACZ;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,8CAA8C,QAAQ;AACtD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;;AAEA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA,8CAA8C,QAAQ;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA,EAAE,KAA0B,oBAAoB,SAAE;AAClD;;AAEA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACxtBA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;;IAEqBK,U;;;;;;;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;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA6D;AAClB;AAC5B;AACf;;AAEA,aAAa,sDAAO,0BAA0B,+DAAgB;AAC9D;AACA;AACA;AACA,GAAG;AACH;AACA,2BAA2B,sDAAO,uCAAuC,sDAAO,YAAY,sDAAO;AACnG;AACA;;AAEA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAA;AAAA;AAAA;AAAmD;AACD;AACnC;AACf;AACA,oCAAoC,iEAAgB;AACpD;AACA;AACA,yCAAyC,0DAAW;AACpD,sFAAsF,iEAAgB;AACtG,C;;;;;;;;;;;;ACTA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAyD;AACpB;AACS;AACA;AACI;AACd;AACrB;AACf,sBAAsB,mDAAI,sBAAsB,mDAAI;;AAEpD;AACA,2BAA2B,iEAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,aAAa,0DAAS,mBAAmB,+DAAc;AACvD;;AAEA,wBAAwB,6DAAc;AACtC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,+DAAc;AACzB;;AAEA;AACA,C;;;;;;;;;;;;ACtCA;AAAA;AAAA;AAAA;AAA8Q,CAAgB,gUAAG,EAAC,C;;;;;;;;;;;ACAlS;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,8BAA8B;AAC9B;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,+BAA+B;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAE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A,KARA;AASA,gBATA,wBASA,OATA,EASA;AACA;AACA;AACA,KAZA;AAaA,YAbA,sBAaA;AAAA;AACA;AACA,KAfA;AAgBA;AACA,uBAjBA,iCAiBA;AAAA;;AACA;AACA;AACA,OAFA,MAEA;AACA;AACA,OALA,CAMA;;;AACA;AACA;AACA;;AACA;;AACA;AACA;AACA;AACA,KA/BA;AAgCA,iBAhCA,2BAgCA;AAAA;;AACA;AACA;AACA;AACA;;AACA;AACA,KAtCA;AAuCA,mBAvCA,6BAuCA;AACA;AACA;AACA;AACA;AACA,KA5CA;AA6CA,8BA7CA,wCA6CA;AACA;AACA,qEADA;AAEA,qDAFA;AAGA,mBAHA,CAGA;;AAHA,SAIA;AACA,oBADA;AAEA,qBAFA;AAGA,wBAHA;AAIA;AAJA,OAJA,EAUA;AACA;AADA,OAVA;AAcA,KA5DA;AA6DA,kBA7DA,0BA6DA,SA7DA,EA6DA;AACA;AACA;AACA,KAhEA;AAiEA,aAjEA,uBAiEA;AACA;AACA,8BACA,8GADA,EAEA,+BAFA;AAIA;AACA;;AAEA;AACA,8BACA,2GADA,EAEA,+BAFA;AAIA;AACA;;AAEA;AACA,KAnFA;AAoFA;AACA,sBArFA,gCAqFA;AACA;AACA;AACA,KAxFA;AAyFA,0BAzFA,oCAyFA;AACA;AACA;AACA,KA5FA;AA6FA,sBA7FA,gCA6FA;AAAA;;AAAA;AAAA;;AACA;AACA;AACA,sDACA;AACA;AACA;AACA;;AACA,uFAJA,CAKA;;AACA;;AACA;AAAA;AAAA;AACA;;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,WAHA;AAIA,SAtBA,EAuBA;AACA;AACA;;AACA;;AACA;AACA;AAAA;AAAA;AACA;AACA,SA9BA;AAgCA,OAlCA,MAkCA;AACA;AAAA;AAAA;AACA;AACA,KAnIA;AAoIA;AACA,gBArIA,0BAqIA;AAAA;;AACA;AACA;AACA;AACA;AAAA;AAAA;AACA;AA1IA,GAhJA;AA4RA,SA5RA,qBA4RA;AAAA;;AACA;AACA,0BAFA,CAGA;;AACA;AACA;;AACA;;AACA;AACA;AACA;AACA,KANA,EAMA,KANA,CAMA;AACA;AACA,KARA,EAJA,CAaA;;AACA;AACA;;AACA;AACA,KAHA;AAIA,GA9SA;AAgTA,SAhTA,qBAgTA;AAAA;;AACA;AACA;AACA,4EAHA,CAIA;;AACA,wBALA,CAOA;;AACA;AACA;AACA,KAFA,EARA,CAYA;;AACA,wDAbA,CAeA;;AACA,2CAhBA,CAgBA;;AACA;AACA;AACA,KAFA;AAIA,4CArBA,CAqBA;;AACA;AACA;AACA,KAFA;AAIA,qCA1BA,CA0BA;;AACA;AACA;;AACA;AACA;AACA;AACA;AACA,OAJA,MAIA;AACA;AACA;AACA,KATA;AAUA;AArVA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChMA;AACA;AAEA;AACA,oCADA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA,KADA;AAEA;AAAA;AAAA;AAAA;AAFA,GAFA;AAMA,MANA,kBAMA;AACA;AACA;AADA;AAGA,GAVA;AAWA;AACA;AACA,SADA,iBACA;AACA;AACA,OAHA;AAIA,SAJA,eAIA,QAJA,EAIA;AACA;AACA;AACA;AAPA,KADA;AAUA,kBAVA,4BAUA;AACA;AACA,KAZA;AAaA,uBAbA,iCAaA;AACA;AACA,KAfA;AAgBA,2BAhBA,qCAgBA;AACA;AACA;AAlBA,GAXA;AA+BA;AACA,sBADA,8BACA,eADA,EACA;AACA;AACA,KAHA;AAIA,iBAJA,2BAIA;AAAA;;AACA;AACA;AACA;AACA,oEACA,mDADA;AAEA,SAHA;;AAIA;;AAEA;;AACA;AACA;AACA;AACA,OAXA;AAYA;AACA;AAnBA,GA/BA;AAoDA,SApDA,qBAoDA;AACA;AACA;AAtDA,G;;;;;;;;;;;;;;;;;;;;AC1BA;AACA;AAEA;AAEA;AACA,6BADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA,gBATA,0BASA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBADA;AAEA;AAFA;AAIA,OALA;AAMA;AACA;AA1BA,GAlBA;AA8CA;AACA,eADA,uBACA,KADA,EACA;AACA;AACA;AACA;;AACA;AACA,KANA;AAOA,kBAPA,0BAOA,KAPA,EAOA;AACA;AACA;AACA;AACA;AAXA;AA9CA,G;;;;;;;;;;;;ACLA;AAAA;AAAA;AACA;AACA,yBADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AAAA;AAAA,OADA;AAEA,SAFA,eAEA,QAFA,EAEA;AACA;AACA;AAJA;AATA;AAlBA,G;;;;;;;;;;;;ACDA;AAAA;AAAA;AAAA;AAAA;AAEA;AACA;AACA,yBADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AAAA;AAAA,OADA;AAEA,SAFA,eAEA,QAFA,EAEA;AACA;AACA;AAJA;AATA;AAlBA,G;;;;;;;;;;;;ACHA;AAAA;AAAA;AAEA;AACA,+BADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AAAA;AAAA,OADA;AAEA,SAFA,eAEA,QAFA,EAEA;AACA;AACA;AAJA;AATA,GAlBA;AAkCA;AACA,eADA,uBACA,KADA,EACA;AACA;AACA;AACA;;AACA;AACA;AANA,GAlCA;AA0CA,SA1CA,qBA0CA;AACA;AACA;AACA;AACA;AA9CA,G;;;;;;;;;;;;;;;;;;;;ACFA;AAEA;AACA,+BADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AAAA;AAAA,OADA;AAEA,SAFA,eAEA,QAFA,EAEA;AAAA;;AACA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,qBACA,kDADA,EAEA,mDAFA,GAGA,IAHA,CAGA;AACA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,SALA;AAMA;AAXA;AATA,GAlBA;AAyCA;AACA,eADA,uBACA,KADA,EACA;AACA;AACA;AACA;;AACA;AACA;AANA;AAzCA,G;;;;;;;;;;;;ACFA;AAAA;AAAA;AAEA;AACA,wBADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA,eATA,uBASA,KATA,EASA;AACA;AACA;AACA;;AACA;AACA;AAdA;AAlBA,G;;;;;;;;;;;;;;;;;;ACGA;AACA;AACA,kBADA;AAEA;AACA;;;;;;;;;;;;AAWA;;;;;;;;;;;AAdA,G;;;;;;;;;;;;ACNA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AAEA;AAEA;AACA,gCADA;AAEA,+EAFA;AAGA;AAAA;AAAA,GAHA;AAIA;AACA;;;;;;;;;;;AAWA;AAAA;AAAA;AAAA;AAZA,GAJA;AAkBA,MAlBA,kBAkBA;AACA;;;;AAIA;AACA;AADA;AAGA,GA1BA;AA2BA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AAAA;AAAA,OADA;AAEA,SAFA,eAEA,QAFA,EAEA;AACA;AACA;AAJA,KATA;AAeA,cAfA,wBAeA;AACA;AACA;AAAA;AAAA;AACA;;AACA;AACA,KApBA;AAqBA,kBArBA,4BAqBA;AACA;AACA,KAvBA;AAwBA,iBAxBA,2BAwBA;AACA;AACA,0BADA;AAEA,2BAFA;AAGA,sBAHA;AAIA,uBAJA;AAKA;AALA;AAOA;AACA,KAjCA;AAkCA,UAlCA,oBAkCA;AACA;AACA,KApCA;AAqCA,WArCA,qBAqCA;AACA;AACA,KAvCA;AAwCA,WAxCA,qBAwCA;AACA;AACA,KA1CA;AA2CA,YA3CA,sBA2CA;AACA;AACA;AA7CA;AA3BA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACsBA;AACA;AAEA;AACA,uBADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AACA;AACA;AACA;;AACA;AACA,OANA;AAOA,SAPA,eAOA,QAPA,EAOA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AAfA,KATA;AA0BA,qBA1BA,+BA0BA;AACA;AACA;AACA;;AACA;AACA;AA/BA;AAlBA,G;;;;;;;;;;;;;;;;;;;;AChCA;AACA;AAEA;AAEA;AACA,0BADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AAAA;AAAA,OADA;AAEA,SAFA,eAEA,QAFA,EAEA;AAAA;AAAA;AAFA,KATA;AAaA,oBAbA,8BAaA;AACA;AACA;AACA;AACA;AACA,SAFA;AAGA;AACA;;AACA;AACA,KAtBA;AAuBA,qBAvBA,+BAuBA;AACA;AACA;AACA;;AACA;AACA;AA5BA,GAlBA;AAgDA;AACA,UADA,kBACA,KADA,EACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,KARA;AASA,UATA,kBASA,KATA,EASA;AACA;AACA;AACA;AACA;;AACA;AAEA;AAhBA;AAhDA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACeA;AACA;AAEA;AACA,sBADA;AAEA,+EAFA;;AAGA;;;;;;;;;;;;AAWA;;;;AAIA;AACA;;;;;;;;AAQA;AACA,SADA,iBACA;AAAA;AAAA;AADA,KATA;AAYA,qBAZA,+BAYA;AACA;AACA;AACA;;AACA;AACA;AAjBA;AAlBA,G;;;;;;;;;;;;ACvBA;AAAA;AAAA;AAAA;AAEA;AACA,2BADA;AAEA;AACA;AAAA;AAAA;AAAA,KADA;AAEA;AAAA;AAAA;AAAA,KAFA;AAGA;AAAA;AAAA;AAAA,KAHA;AAIA;AAAA;AAAA;AAAA,KAJA;AAKA;AAAA;AAAA,KALA;AAMA;AAAA;AAAA;AAAA,KANA;AAOA;AAAA;AAAA;AAAA,KAPA;AAQA;AAAA;AAAA;AARA,GAFA;AAYA,MAZA,kBAYA;AACA;AACA;AADA;AAGA,GAhBA;AAiBA;AACA;AACA,SADA,iBACA;AAAA;AAAA,OADA;AAEA,SAFA,eAEA,QAFA,EAEA;AACA;AACA;AAJA,KADA;AAOA,cAPA,wBAOA;AACA;AACA;AACA;;AACA;AACA,KAZA;AAaA,YAbA,sBAaA;AACA;AACA,KAfA;AAgBA,aAhBA,uBAgBA;AACA;AACA;AACA;;AACA;AACA,KArBA;AAsBA,aAtBA,uBAsBA;AACA;AACA;AACA;;AACA;AACA;AA3BA;AAjBA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AAEA;AAEA;AACA;AAAA;AAAA;AAAA;AAAA,GADA;AAEA,0EAFA;AAGA;AACA;AAAA;AAAA;AAAA;AADA,GAHA;AAMA,MANA,kBAMA;AACA;AACA,0BADA;AAEA,iBAFA;AAGA,iCAHA;AAIA,4BAJA;AAKA;AALA;AAOA,GAdA;AAeA;AACA,gBADA,0BACA;AACA;AACA;AAHA,GAfA;AAoBA;AACA,aADA,qBACA,aADA,EACA;AACA;AACA;AACA;;AACA;AACA;AACA;;AACA;AACA,KATA;AAUA,0BAVA,kCAUA,OAVA,EAUA;AAAA;;AAAA;AACA;AACA;;AACA;AACA;AACA;;AAEA;AACA;AACA,OAFA,EAEA,CAFA;AAIA;AAEA;AACA;AAAA;AAAA;AAAA;AAEA;AACA,KA3BA;AA4BA,eA5BA,yBA4BA;AACA;AACA,KA9BA;AA+BA,qBA/BA,6BA+BA,QA/BA,EA+BA,OA/BA,EA+BA;AAAA;;AACA;AACA;AAAA;AAAA;AACA;AACA,KAnCA;AAoCA,wBApCA,gCAoCA,QApCA,EAoCA,OApCA,EAoCA;AACA;AACA;AACA;AACA,kFAJA,CAKA;;AACA;AAEA;AACA,KA7CA;AA8CA,cA9CA,sBA8CA,OA9CA,EA8CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KArDA;AAsDA,iBAtDA,yBAsDA,OAtDA,EAsDA;AACA;AACA,wBADA;AAEA,2CAFA;AAGA,uBAHA;AAIA,sCAJA;AAKA;AALA,SAMA;AACA,oBADA;AAEA,qBAFA;AAGA,wBAHA;AAIA;AAJA,OANA;AAaA,KApEA;AAqEA,gBArEA,0BAqEA;AACA;AACA,oCADA;AAEA,uBAFA;AAGA,sCAHA;AAIA;AAJA,SAKA;AACA,oBADA;AAEA,qBAFA;AAGA,wBAHA;AAIA;AAJA,OALA;AAYA,KAlFA;AAmFA,mBAnFA,2BAmFA,aAnFA,EAmFA,OAnFA,EAmFA;AAAA;;AACA,uBACA,gFADA,EAEA;AACA,yBADA;AAEA,oCAFA;AAGA,sCAHA;AAIA;AAJA,OAFA,EAQA;AACA,oBADA;AAEA,qBAFA;AAGA,wBAHA;AAIA;AAJA,OARA,EAcA;AACA;AACA;;AACA;AACA;AACA;AACA,SANA;AAOA;AACA;;AACA;AACA;AACA;AACA;AAZA,OAdA;AA6BA,KAjHA;AAkHA,eAlHA,uBAkHA,SAlHA,EAkHA;AAAA;;AACA;AACA;AACA;AACA;;AACA;AACA,KAxHA;AAyHA,uBAzHA,+BAyHA,QAzHA,EAyHA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA,WAFA;AAGA;AACA;AACA,SARA;AASA,OAXA;AAYA;AACA;AACA,KA3IA;AA4IA,qBA5IA,6BA4IA,QA5IA,EA4IA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA;AACA;AACA,WAFA,MAEA;AACA;AACA;;AACA;AACA;AACA,WAFA;AAGA;AACA;AACA,SAZA;AAaA,OAhBA;AAiBA;AACA,KAjKA;AAkKA,wBAlKA,gCAkKA,QAlKA,EAkKA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAHA;AAIA;AACA,KA3KA;AA4KA,sBA5KA,8BA4KA,QA5KA,EA4KA;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA,OAHA;AAIA;AACA,KApLA;AAqLA,kBArLA,0BAqLA,OArLA,EAqLA;AACA;AACA,uBACA,2EADA,EAEA;AACA,wBADA;AAEA,wBAFA;AAGA,uBAHA;AAIA,sCAJA;AAKA;AALA,OAFA,EASA;AACA;AADA,OATA;AAaA,KApMA;AAqMA,6BArMA,qCAqMA,QArMA,EAqMA;AAAA;;AACA;AACA;AACA;AAAA,eACA,kFADA;AAAA;AAGA;AACA;AAAA;AAAA;AAAA;AACA;AACA,KA9MA;AA+MA,WA/MA,mBA+MA,OA/MA,EA+MA;AAAA;;AACA;AACA;AAAA,iBACA,sDACA,EADA,GAEA,sDACA,CADA,GAEA,CALA;AAAA;AAOA;AACA;;A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,CACA,4BADA;AAEA,sEACA,gBADA,CACA,6BADA;AAEA;AAnDA,G;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACGA;AACA,sBADA;AAEA;AACA;AAAA;AAAA;AAAA;AADA;AAFA,G;;;;;;;;;;;;AC3BA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,4DAA4D;AACjE;AACA;AACA;AACA;AACA,aAAa,4CAA4C;AACzD;AACA,sCAAsC,SAAS,eAAe,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+BAA+B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,0DAA0D;AACnE;AACA;AACA;AACA,8BAA8B,SAAS,4BAA4B,EAAE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,eAAe,EAAE;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,gDAAgD;AACvE;AACA;AACA;AACA,2BAA2B,8CAA8C;AACzE;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8CAA8C;AACzE;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8CAA8C;AACzE;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,8CAA8C;AACzE;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,gDAAgD;AAC3E;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,mCAAmC,SAAS,sBAAsB,EAAE;AACpE;AACA;AACA;AACA;AACA,yBAAyB,qCAAqC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,uCAAuC,iCAAiC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,kDAAkD;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,mCAAmC,SAAS,sBAAsB,EAAE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,uBAAuB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC,yCAAyC;AACzC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oDAAoD;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,+BAA+B;AAC/B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,oDAAoD;AACvE;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,2BAA2B,SAAS,0BAA0B,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yCAAyC;AAC/E;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B,SAAS,0BAA0B,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,yCAAyC;AAC/E;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,SAAS,eAAe,EAAE;AACnC;AACA;AACA,mCAAmC,SAAS,uBAAuB,EAAE;AACrE;AACA;AACA;AACA;AACA,8BAA8B,MAAM,gCAAgC,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACpmBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,gDAAgD;AAC9D;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;AACA,SAAS,kCAAkC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AClGA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,mBAAmB,oCAAoC,gBAAgB,EAAE;AACzE;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACrFA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,mBAAmB,oCAAoC,gBAAgB,EAAE;AACzE;AACA;AACA,iBAAiB,oCAAoC;AACrD;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,qBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,uBAAuB,mCAAmC;AAC1D;AACA;AACA;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACrFA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,mBAAmB,oCAAoC,gBAAgB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC9FA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,mBAAmB,oCAAoC,gBAAgB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC9FA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,mBAAmB,oCAAoC,gBAAgB,EAAE;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC9FA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,eAAe,2CAA2C,EAAE;AACjE;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,0BAA0B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,mBAAmB,oCAAoC,gBAAgB,EAAE;AACzE;AACA;AACA;AACA;AACA,SAAS,oEAAoE;AAC7E;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,wBAAwB,SAAS,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,yCAAyC;AAC3D,qBAAqB;AACrB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACjEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iBAAiB,oCAAoC,gBAAgB,EAAE;AACvE;AACA;AACA,eAAe,oCAAoC;AACnD;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,sBAAsB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yCAAyC;AACvD,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;AC7EA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iBAAiB,oCAAoC,gBAAgB,EAAE;AACvE;AACA;AACA,eAAe,oCAAoC;AACnD;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yCAAyC;AACvD,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;ACnFA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,0BAA0B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iBAAiB,oCAAoC,gBAAgB,EAAE;AACvE;AACA;AACA;AACA;AACA,cAAc,6CAA6C;AAC3D,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,yCAAyC;AACvD,iBAAiB;AACjB,KAAK;AACL;AACA;AACA;AACA;;;;;;;;;;;;;;AC3CA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gEAAgE;AACrE;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,eAAe;AACf;AACA;AACA;AACA,mBAAmB,8CAA8C;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC;AACtC,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,kDAAkD,YAAY;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,4CAA4C,YAAY;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2CAA2C;AAC9D;AACA;AACA;AACA,8BAA8B,2CAA2C;AACzE;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA,uBAAuB,iCAAiC;AACxD;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA,4BAA4B;AAC5B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACvMA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,KAAK;AACL;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB,eAAe;AACf;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,8BAA8B,qCAAqC;AACnE;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA,qBAAqB,4BAA4B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA,wBAAwB,mCAAmC;AAC3D;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,yBAAyB,oCAAoC;AAC7D,2BAA2B,uCAAuC;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,oCAAoC,SAAS,8BAA8B,EAAE;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC5HA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gCAAgC;AACrC;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA,2BAA2B,4BAA4B;AACvD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA,2BAA2B,+CAA+C;AAC1E;AACA,yCAAyC,2BAA2B;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,uCAAuC,mCAAmC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC,6BAA6B;AAC9D;AACA;AACA,2BAA2B,+CAA+C;AAC1E;AACA,yCAAyC,2BAA2B;AACpE;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,uCAAuC,mCAAmC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,uCAAuC,0BAA0B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qCAAqC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,iCAAiC,gCAAgC;AACjE;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,2BAA2B;AAC3B,mCAAmC,4BAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;AACA;AACA,iBAAiB,0DAA0D;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA;AACA,0BAA0B;AAC1B,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnUA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,eAAe;AACf;AACA,2BAA2B,+BAA+B;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B;AACtD,4BAA4B,iCAAiC;AAC7D,+BAA+B,yCAAyC;AACxE,iCAAiC,wBAAwB;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC,yCAAyC;AAC1E,mCAAmC,wBAAwB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iCAAiC,yCAAyC;AAC1E,mCAAmC,wBAAwB;AAC3D;AACA;AACA;AACA;AACA,2BAA2B,4CAA4C;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,4BAA4B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,SAAS,qBAAqB,EAAE;AACxD;AACA;AACA;AACA,eAAe,qBAAqB;AACpC;AACA,qCAAqC,SAAS,+BAA+B,EAAE;AAC/E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC7HA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,OAAO,qEAAqE;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,qCAAqC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA,+BAA+B,mCAAmC;AAClE;AACA;AACA,+BAA+B,0CAA0C;AACzE;AACA;AACA;AACA;AACA,+BAA+B,sCAAsC;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oCAAoC,+BAA+B;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,iCAAiC,mCAAmC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,qCAAqC,2BAA2B;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iCAAiC,0CAA0C;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B,qCAAqC,uCAAuC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,iCAAiC,sCAAsC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA,mCAAmC;AACnC,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,uCAAuC,4BAA4B;AACnE,0CAA0C,yBAAyB;AACnE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA,2CAA2C,4BAA4B;AACvE,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,2BAA2B,oCAAoC;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,mCAAmC,4BAA4B;AAC/D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;;;;;;;;;;;;;;ACxjBA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,gCAAgC,+BAA+B,EAAE;AACtE;AACA;AACA;AACA,SAAS,qDAAqD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC9DA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA,OAAO,oEAAoE;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA,2BAA2B,qCAAqC;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAA4D;AAC/E;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,yCAAyC,mCAAmC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,iDAAiD,2BAA2B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mCAAmC,2CAA2C;AAC9E;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA,yCAAyC,mCAAmC;AAC5E,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,yCAAyC,mCAAmC;AAC5E,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,iDAAiD,4BAA4B;AAC7E,oDAAoD,yBAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qCAAqC,oCAAoC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qCAAqC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,4DAA4D;AAC/E;AACA,+BAA+B,+BAA+B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA,yCAAyC,mCAAmC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,sCAAsC;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,wCAAwC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,+BAA+B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mCAAmC,sCAAsC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC,iDAAiD,2BAA2B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mCAAmC,yCAAyC;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,qCAAqC;AACrC;AACA;AACA;AACA;AACA,mCAAmC,2CAA2C;AAC9E;AACA,+CAA+C,6BAA6B;AAC5E;AACA;AACA,yCAAyC,mCAAmC;AAC5E,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,yCAAyC,mCAAmC;AAC5E,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA,iDAAiD,4BAA4B;AAC7E,oDAAoD,yBAAyB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA,+CAA+C,yBAAyB;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA,qCAAqC,oCAAoC;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,qCAAqC;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA,6CAA6C,4BAA4B;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;;;;;;;;;;;;;;AC7wCA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,iCAAiC;AACrD,eAAe,mCAAmC;AAClD;AACA,qBAAqB,yCAAyC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA,qBAAqB,yCAAyC;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,8BAA8B,SAAS,gBAAgB,EAAE;AACzD,8BAA8B,SAAS,sBAAsB,EAAE;AAC/D;AACA;AACA,8BAA8B,SAAS,eAAe,EAAE;AACxD;AACA;AACA;AACA;AACA;AACA,eAAe,2CAA2C,iBAAiB,EAAE;AAC7E;AACA;AACA;AACA;;;;;;;;;;;;;;ACpEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,eAAe;AAC/B,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB;AAClB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AChFA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,4BAA4B,6BAA6B,EAAE;AAChE,kBAAkB,SAAS,gCAAgC,EAAE;AAC7D;AACA;AACA;AACA;;;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,yDAAyD;AAC7E,eAAe,+BAA+B;AAC9C,iBAAiB,qBAAqB;AACtC,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA,WAAW,6DAA6D;AACxE;AACA;AACA,0BAA0B,mCAAmC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oCAAoC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C;AACA;AACA;AACA,aAAa,kEAAkE;AAC/E;AACA,yBAAyB,qBAAqB;AAC9C,2BAA2B,2BAA2B;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,2CAA2C;AACpE,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,0BAA0B;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,0BAA0B;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,oCAAoC;AACtE,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,0BAA0B;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,0BAA0B;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA,qBAAqB,iCAAiC;AACtD,uBAAuB,qBAAqB;AAC5C,yBAAyB,qBAAqB;AAC9C,yBAAyB,iDAAiD;AAC1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,kCAAkC;AACnD,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,qBAAqB;AAC3C;AACA;AACA;;;;;;;;;;;;;;ACtLA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,2BAA2B;AAC/C;AACA;AACA;AACA;AACA,gBAAgB;AAChB,OAAO;AACP;AACA;AACA;AACA,WAAW,2BAA2B;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,uBAAuB;AACvD;AACA;AACA;AACA;AACA;AACA,eAAe,+BAA+B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,6BAA6B,SAAS,YAAY,EAAE;AACpD;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;AC5FA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,iBAAiB,+BAA+B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB;AACjB,WAAW;AACX,uBAAuB,SAAS,wBAAwB,EAAE;AAC1D;AACA,kBAAkB,6BAA6B;AAC/C;AACA,iBAAiB,mDAAmD;AACpE,mBAAmB,iCAAiC;AACpD,qBAAqB,qBAAqB;AAC1C,uBAAuB,gCAAgC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,sDAAsD;AAC3E;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC,yBAAyB;AACzB;AACA,oCAAoC,6BAA6B;AACjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,uBAAuB;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD,yBAAyB,kCAAkC;AAC3D,2BAA2B,qBAAqB;AAChD,6BAA6B,2BAA2B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB,mCAAmC,2BAA2B;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yCAAyC;AAC1D;AACA;AACA;AACA;AACA,oBAAoB,0CAA0C;AAC9D,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,iBAAiB;AACjB,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACnRA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,yDAAyD;AAC7E,eAAe,+BAA+B;AAC9C,iBAAiB,8BAA8B;AAC/C;AACA;AACA,kBAAkB;AAClB;AACA;AACA,WAAW,8DAA8D;AACzE;AACA,uBAAuB,uBAAuB;AAC9C,yBAAyB,6BAA6B;AACtD;AACA;AACA;AACA;AACA,4BAA4B;AAC5B,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,sCAAsC;AAClE;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA,kCAAkC,SAAS,UAAU,GAAG,EAAE;AAC1D;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,kCAAkC,SAAS,aAAa,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,YAAY,cAAc,EAAE;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA,iBAAiB,SAAS,0CAA0C,EAAE;AACtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,uDAAuD;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,uBAAuB,6BAA6B;AACpD;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sCAAsC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,6BAA6B;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA,uBAAuB,qCAAqC;AAC5D,yBAAyB,2BAA2B;AACpD;AACA;AACA;AACA;AACA;AACA,4BAA4B,uBAAuB;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,kCAAkC;AACnD,mBAAmB,8BAA8B;AACjD;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA,mBAAmB,yCAAyC;AAC5D;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACvQA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,qCAAqC;AACzD,eAAe,+BAA+B;AAC9C,gBAAgB,6BAA6B;AAC7C;AACA;AACA;AACA,eAAe,4BAA4B;AAC3C,iBAAiB,iCAAiC;AAClD,mBAAmB,qBAAqB;AACxC,qBAAqB,4BAA4B;AACjD,yBAAyB,SAAS,4BAA4B,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC,yBAAyB,uBAAuB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,eAAe,uCAAuC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACzEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA,oBAAoB,yDAAyD;AAC7E,eAAe,+BAA+B;AAC9C,iBAAiB,8BAA8B;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,uDAAuD;AACtE;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,oBAAoB,qDAAqD;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,eAAe,8BAA8B;AAC7C,iBAAiB,kCAAkC;AACnD,mBAAmB,yCAAyC;AAC5D;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,iBAAiB;AACvC,mBAAmB;AACnB,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACxEA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd,KAAK;AACL;AACA,iBAAiB,SAAS,oCAAoC,EAAE;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,iBAAiB,0CAA0C;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;ACpCA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,uBAAuB;AAC3C,cAAc;AACd,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,iEAAiE;AACxE;AACA,mBAAmB,mDAAmD;AACtE,qBAAqB,6CAA6C;AAClE,uBAAuB,wBAAwB;AAC/C,uBAAuB,wBAAwB;AAC/C,uBAAuB,wBAAwB;AAC/C,uBAAuB,wBAAwB;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,0BAA0B,iBAAiB;AAC3C;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,YAAY;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,YAAY;AACtD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9MA,mBAAO,CAAC,wGAAmC;AAC3C,mBAAO,CAAC,8FAA8B;AACtC,iBAAiB,mBAAO,CAAC,4EAAqB;;;;;;;;;;;;ACF9C,mBAAO,CAAC,sGAAkC;AAC1C,iBAAiB,mBAAO,CAAC,4EAAqB;;;;;;;;;;;;ACD9C,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,qGAAgC;AACxC,iBAAiB,mBAAO,CAAC,iGAA8B;;;;;;;;;;;;ACFvD,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,qGAAgC;AACxC,iBAAiB,mBAAO,CAAC,+FAA6B;;;;;;;;;;;;ACFtD,mBAAO,CAAC,uGAAiC;AACzC,mBAAO,CAAC,qGAAgC;AACxC,mBAAO,CAAC,+FAA6B;AACrC,mBAAO,CAAC,6EAAoB;AAC5B,mBAAO,CAAC,6FAA4B;AACpC,mBAAO,CAAC,mFAAuB;AAC/B,mBAAO,CAAC,uFAAyB;AACjC,iBAAiB,mBAAO,CAAC,yEAAkB;;;;;;;;;;;;ACP3C,mBAAO,CAAC,oGAAiC;AACzC,cA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AAC,oEAAW;AAC/B,kBAAkB,mBAAO,CAAC,8EAAgB;AAC1C,WAAW,mBAAO,CAAC,0EAAc;AACjC,iBAAiB,mBAAO,CAAC,8EAAgB;AACzC,kBAAkB,mBAAO,CAAC,8EAAgB;AAC1C,cAAc,mBAAO,CAAC,gEAAS;AAC/B,eAAe,mBAAO,CAAC,8FAAwB;AAC/C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,6BAA6B;AAC7B,0BAA0B;AAC1B,0BAA0B;AAC1B,qBAAqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;AC/IA;AACA,cAAc,mBAAO,CAAC,sEAAY;AAClC,WAAW,mBAAO,CAAC,8FAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACRa;AACb,aAAa,mBAAO,CAAC,oEAAW;AAChC,cAAc,mBAAO,CAAC,oEAAW;AACjC,WAAW,mBAAO,CAAC,gEAAS;AAC5B,YAA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ACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,kCAAkC,2BAA2B;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;;;;;;;;;;;ACpEA,eAAe,mBAAO,CAAC,8DAAQ;AAC/B;;AAEA;AACA;AACA,iCAAiC,qBAAqB;AACtD;AACA,iCAAiC,SAAS,EAAE;AAC5C,CAAC,YAAY;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,SAAS,qBAAqB;AAC3D,iCAAiC,aAAa;AAC9C;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;;;;;ACrBA;AACA,UAAU;AACV;;;;;;;;;;;;ACFA;;;;;;;;;;;;ACAA;;;;;;;;;;;;ACAA,WAAW,mBAAO,CAAC,8DAAQ;AAC3B,eAAe,mBAAO,CAAC,0EAAc;AACrC,UAAU,mBAAO,CAAC,8DAAQ;AAC1B,cAAc,mBAAO,CAAC,0EAAc;AACpC;AACA;AACA;AACA;AACA,cAAc,mBAAO,CAAC,kEAAU;AAChC,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,GAAG,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA;AACA,eAAe,mBAAO,CAAC,0EAAc;AACrC,UAAU,mBAAO,CAAC,4EAAe;AACjC,kBAAkB,mBAAO,CAAC,kFAAkB;AAC5C,eAAe,mBAAO,CAAC,4EAAe;AACtC,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,4EAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CA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AqB;AACrB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8EAA8E,OAAO;AACrF;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC,qBAAqB;AACrB,0BAA0B;AAC1B,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;;;;;;;;;;;;AC/Ia;AACb,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,cAAc,mBAAO,CAAC,wDAAS;AAC/B,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,YAAY,mBAAO,CAAC,4DAAW;AAC/B,wBAAwB,mBAAO,CAAC,0EAAkB;AAClD,WAAW,mBAAO,CAAC,sDAAQ;AAC3B,eAAe,mBAAO,CAAC,sFAAwB;AAC/C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,qBAAqB;AACrB,0BAA0B;AAC1B;A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9B,cAAc,mBAAO,CAAC,8DAAY;AAClC,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,iBAAiB,mBAAO,CAAC,sEAAgB;;AAEzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA,yBAAyB,4CAA4C;AACrE;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;AACvC;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB,aAAa;AAC3D;AACA;AACA;AACA;AACA,6CAA6C,WAAW;AACxD;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA,kBAAkB;AAClB;AACA,gBAAgB;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,qCAAqC;AACrE;AACA;AACA,2BAA2B,gCAAgC;AAC3D;AACA;AACA;;;;;;;;;;;;;AC/Fa;AACb;AACA,eAAe,mBAAO,CAAC,kEAAc;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZA,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,WAAW,mBAAO,CAAC,kEAAc;AACjC,kBAAkB,mBAAO,CAAC,0EAAkB;AAC5C,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,gBAAgB,mBAAO,CAAC,8FAA4B;AACpD;AACA;AACA;AACA,uCAAuC,iBAAiB,EAAE;AAC1D;AACA;AACA;AACA;AACA;AACA,mEAAmE,gBAAgB;AACnF;AACA;AACA,GAAG,4CAA4C,gCAAgC;AAC/E;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACxBA,iBAAiB,mBAAO,CAAC,4DAAW;;;;;;;;;;;;ACApC;AACA;AACA;AACA;AACA;AACA,yCAAyC;;;;;;;;;;;;ACLzC,uBAAuB;AACvB;AACA;AAC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CL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpDA,aAAa,mBAAO,CAAC,4DAAW;AAChC,gBAAgB,mBAAO,CAAC,wDAAS;AACjC;AACA;AACA;AACA,aAAa,mBAAO,CAAC,sDAAQ;;AAE7B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,uCAAuC,sBAAsB,EAAE;AAC/D;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;;ACpEa;AACb;AACA,gBAAgB,mBAAO,CAAC,oEAAe;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACjBa;AACb;AACA,kBAAkB,mBAAO,CAAC,sEAAgB;AAC1C,cAAc,mBAAO,CAAC,sEAAgB;AACtC,WAAW,mBAAO,CAAC,sEAAgB;AACnC,UAAU,mBAAO,CAAC,oEAAe;AACjC,eAAe,mBAAO,CAAC,kEAAc;AACrC,cAAc,mBAAO,CAAC,8DAAY;AAClC;;AAEA;AACA,6BAA6B,mBAAO,CAAC,0DAAU;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,UAAU,EAAE;AAChD,mBAAmB,sCAAsC;AACzD,CAAC,qCAAqC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC;;;;;;;;;;;;ACrCD;AACA,eAAe,mBAAO,CAAC,kEAAc;AACrC,UAAU,mBAAO,CAAC,oEAAe;AACjC,kBAAkB,mBAAO,CAAC,0EAAkB;AAC5C,eAAe,mBAAO,CAAC,oEAAe;AACtC,yBAAyB;AACzB;;AAEA;AACA;AACA;AACA,eAAe,mBAAO,CAAC,oEAAe;AACtC;AACA;AACA;AACA;AACA;AACA,EAAE,mBAAO,CAAC,wDAAS;AACnB,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;;;;;;ACxCA,eAAe,mBAAO,CAAC,kEAAc;AACrC,qBAAqB,mBAAO,CAAC,4EAAmB;AAChD,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C;;AAEA,YAAY,mBAAO,CAAC,sEAAgB;AACpC;AACA;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;AACA;AACA;;;;;;;;;;;;ACfA,SAAS,mBAAO,CAAC,kEAAc;AAC/B,eAAe,mBAAO,CAAC,kEAAc;AACrC,cAAc,mBAAO,CAAC,sEAAgB;;AAEtC,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACZA,UAAU,mBAAO,CAAC,oEAAe;AACjC,iBAAiB,mBAAO,CAAC,0EAAkB;AAC3C,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,kBAAkB,mBAAO,CAAC,wEAAiB;AAC3C,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,qBAAqB,mBAAO,CAAC,4EAAmB;AAChD;;AAEA,YAAY,mBAAO,CAAC,sEAAgB;AACpC;AACA;AACA;AACA;AACA,GAAG,YAAY;AACf;AACA;;;;;;;;;;;;ACfA;AACA,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,WAAW,mBAAO,CAAC,sEAAgB;AACnC,iBAAiB;;AAEjB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;AClBA;AACA,YAAY,mBAAO,CAAC,wFAAyB;AAC7C,iBAAiB,mBAAO,CAAC,0EAAkB;;AAE3C;AACA;AACA;;;;;;;;;;;;ACNA;;;;;;;;;;;;ACAA;AACA,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,oEAAe;AACtC;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;ACZA,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,mBAAmB,mBAAO,CAAC,4EAAmB;AAC9C,eAAe,mBAAO,CAAC,oEAAe;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBA;AACA,YAAY,mBAAO,CAAC,wFAAyB;AAC7C,kBAAkB,mBAAO,CAAC,0EAAkB;;AAE5C;AACA;AACA;;;;;;;;;;;;ACNA,cAAc;;;;;;;;;;;;ACAd;AACA,cAAc,mBAAO,CAAC,4DAAW;AACjC,WAAW,mBAAO,CAAC,wDAAS;AAC5B,YAAY,mBAAO,CAAC,0DAAU;AAC9B;AACA,6BAA6B;AAC7B;AACA;AACA,qDAAqD,OAAO,EAAE;AAC9D;;;;;;;;;;;;ACTA,kBAAkB,mBAAO,CAAC,sEAAgB;AAC1C,cAAc,mBAAO,CAAC,sEAAgB;AACtC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,aAAa,mBAAO,CAAC,oEAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACpBA,gBAAgB,mBAAO,CAAC,4DAAW;AACnC,YAAY,mBAAO,CAAC,sEAAgB;AACpC,SAAS,mBAAO,CAAC,kEAAc;AAC/B;;AAEA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;ACRD;AACA;AACA,YAAY;AACZ,GAAG;AACH,YAAY;AACZ;AACA;;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,2BAA2B,mBAAO,CAAC,4FAA2B;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACXA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACPA,eAAe,mBAAO,CAAC,gEAAa;AACpC;AACA;AACA;AACA;;;;;;;;;;;;ACJA,aAAa,mBAAO,CAAC,4DAAW;AAChC,WAAW,mBAAO,CAAC,wDAAS;AAC5B,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,gBAAgB,mBAAO,CAAC,oFAAuB;AAC/C;AACA;;AAEA,mBAAO,CAAC,wDAAS;AACjB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;;;AC9BY;;AAEb,cAAc,mBAAO,CAAC,8DAAY;AAClC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpBa;;AAEb,kBAAkB,mBAAO,CAAC,0DAAU;;AAEpC;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACJA;AACA;AACA,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA,cAAc,mBAAO,CAAC,sDAAQ,iBAAiB,mBAAO,CAAC,sEAAgB;AACvE;AACA;AACA,OAAO,YAAY,cAAc;AACjC;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA;;;;;;;;;;;;;ACxBa;AACb,aAAa,mBAAO,CAAC,4DAAW;AAChC,SAAS,mBAAO,CAAC,kEAAc;AAC/B,kBAAkB,mBAAO,CAAC,sEAAgB;AAC1C,cAAc,mBAAO,CAAC,sDAAQ;;AAE9B;AACA;AACA;AACA;AACA,sBAAsB,aAAa;AACnC,GAAG;AACH;;;;;;;;;;;;ACZA,UAAU,mBAAO,CAAC,kEAAc;AAChC,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,UAAU,mBAAO,CAAC,sDAAQ;;AAE1B;AACA,oEAAoE,iCAAiC;AACrG;;;;;;;;;;;;ACNA,aAAa,mBAAO,CAAC,4DAAW;AAChC,UAAU,mBAAO,CAAC,sDAAQ;AAC1B;AACA;AACA;;;;;;;;;;;;ACJA,WAAW,mBAAO,CAAC,wDAAS;AAC5B,aAAa,mBAAO,CAAC,4DAAW;AAChC;AACA,kDAAkD;;AAElD;AACA,qEAAqE;AACrE,CAAC;AACD;AACA,QAAQ,mBAAO,CAAC,8DAAY;AAC5B;AACA,CAAC;;;;;;;;;;;;ACXD;AACA,eAAe,mBAAO,CAAC,kEAAc;AACrC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,cAAc,mBAAO,CAAC,sDAAQ;AAC9B;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACRa;AACb,YAAY,mBAAO,CAAC,0DAAU;;AAE9B;AACA;AACA;AACA,yCAAyC,cAAc;AACvD,GAAG;AACH;;;;;;;;;;;;ACRA,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,cAAc,mBAAO,CAAC,8DAAY;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;AChBA,sBAAsB;AACtB,eAAe,mBAAO,CAAC,kEAAc;AACrC,cAAc,mBAAO,CAAC,8DAAY;;AAElC;AACA;AACA;AACA;;;;;;;;;;;;ACPA,cAAc,mBAAO,CAAC,4DAAW;AACjC,YAAY,mBAAO,CAAC,0DAAU;AAC9B,cAAc,mBAAO,CAAC,8DAAY;AAClC;AACA;AACA;AACA;AACA;AACA,0FAA0F;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;;;;;;;;;;AClBA;AACA,eAAe,mBAAO,CAAC,kEAAc;AACrC,aAAa,mBAAO,CAAC,0EAAkB;AACvC,cAAc,mBAAO,CAAC,8DAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACfa;AACb,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,cAAc,mBAAO,CAAC,8DAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,QAAQ,MAAM;AACd;AACA;;;;;;;;;;;;ACXA,cAAc,mBAAO,CAAC,4DAAW;AACjC,cAAc,mBAAO,CAAC,8DAAY;AAClC,YAAY,mBAAO,CAAC,0DAAU;AAC9B,aAAa,mBAAO,CAAC,kEAAc;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA;AACA;;;;;;;;;;;;ACDA,UAAU,mBAAO,CAAC,sDAAQ;AAC1B,aAAa,mBAAO,CAAC,4DAAW;AAChC,WAAW,mBAAO,CAAC,wDAAS;AAC5B,UAAU,mBAAO,CAAC,oEAAe;AACjC,aAAa,mBAAO,CAAC,4DAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,mBAAO,CAAC,sDAAQ;AACtB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACnFA,gBAAgB,mBAAO,CAAC,oEAAe;AACvC;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AoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,mBAAmB,kCAAkC;AACrD,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,eAAe,uCAAuC;AACtD;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA,uBAAuB,0BAA0B;AACjD;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,yBAAyB,KAAK;AAChD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB,wBAAwB;AACxB,gBAAgB;AAChB,oBAAoB;AACpB,wBAAwB;AACxB,gBAAgB;AAChB,oBAAoB;AACpB;AACA,uBAAuB,mBAAO,CAAC,wEAAiB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0DAA0D,oBAAoB;AAC9E,mBAAO,CAAC,kFAAsB;AAC9B,mBAAO,CAAC,sEAAgB;AACxB,UAAU,mBAAO,CAAC,wDAAS;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,gDAAgD,mBAAO,CAAC,sEAAgB;AACxE;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC7RD;AACA,cAAc,mBAAO,CAAC,4DAAW;AACjC,aAAa,mBAAO,CAAC,0EAAkB;AACvC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,YAAY,mBAAO,CAAC,0DAAU;AAC9B,WAAW,mBAAO,CAAC,wDAAS;AAC5B,kBAAkB,mBAAO,CAAC,4DAAW,eAAe;;AAEpD;AACA;AACA;AACA,gBAAgB;AAChB,mCAAmC,cAAc;AACjD,CAAC;AACD;AACA,0BAA0B,cAAc;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AC9CD,aAAa,mBAAO,CAAC,4DAAW;AAChC,wBAAwB,mBAAO,CAAC,sFAAwB;AACxD,SAAS,mBAAO,CAAC,kEAAc;AAC/B,WAAW,mBAAO,CAAC,sEAAgB;AACnC,eAAe,mBAAO,CAAC,kEAAc;AACrC,aAAa,mBAAO,CAAC,0DAAU;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,IAAI,mBAAO,CAAC,sEAAgB,sBAAsB,mBAAO,CAAC,0DAAU;AACpE,MAAM,mBAAO,CAAC,sDAAQ;AACtB;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,kBAAkB,EAAE;AAC5C,0BAA0B,gBAAgB;AAC1C,KAAK;AACL;AACA,oCAAoC,iBAAiB;AACrD;AACA;AACA,EAAE,mBAAO,CAAC,gEAAa;AACvB;;AAEA,mBAAO,CAAC,sEAAgB;;;;;;;;;;;;;AC1CX;AACb,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,mBAAO,CAAC,4DAAW;AACnB;AACA;AACA;AACA,CAAC;AACD;AACA,CAAC;;;;;;;;;;;;ACRD;AACA,IAAI,mBAAO,CAAC,sEAAgB,wBAAwB,mBAAO,CAAC,kEAAc;AAC1E;AACA,OAAO,mBAAO,CAAC,0DAAU;AACzB,CAAC;;;;;;;;;;;;;ACJY;;AAEb,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,yBAAyB,mBAAO,CAAC,wFAAyB;AAC1D,iBAAiB,mBAAO,CAAC,wFAAyB;;AAElD;AACA,mBAAO,CAAC,oEAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;ACvCY;;AAEb,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,yBAAyB,mBAAO,CAAC,wFAAyB;AAC1D,iBAAiB,mBAAO,CAAC,wFAAyB;AAClD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAO,CAAC,oEAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;;;;;;;;;;;;;ACrHY;;AAEb,eAAe,mBAAO,CAAC,kEAAc;AACrC,gBAAgB,mBAAO,CAAC,oEAAe;AACvC,iBAAiB,mBAAO,CAAC,wFAAyB;;AAElD;AACA,mBAAO,CAAC,oEAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;;AC9BY;;AAEb,eAAe,mBAAO,CAAC,kEAAc;AACrC,eAAe,mBAAO,CAAC,kEAAc;AACrC,yBAAyB,mBAAO,CAAC,sFAAwB;AACzD,yBAAyB,mBAAO,CAAC,wFAAyB;AAC1D,eAAe,mBAAO,CAAC,kEAAc;AACrC,qBAAqB,mBAAO,CAAC,wFAAyB;AACtD,iBAAiB,mBAAO,CAAC,sEAAgB;AACzC,YAAY,mBAAO,CAAC,0DAAU;AAC9B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,yBAAyB,EAAE;;AAEhE;AACA,mBAAO,CAAC,oEAAe;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA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,sEAAgB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,sBAAsB,uBAAuB,WAAW,IAAI;AAC5D,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA,KAAK;AACL;AACA,sBAAsB,mCAAmC;AACzD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE,gCAAgC;AAChG;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,EAAE,mBAAO,CAAC,sEAAgB;AAC1B,EAAE,mBAAO,CAAC,oEAAe;AACzB;;AAEA,sBAAsB,mBAAO,CAAC,8DAAY;AAC1C;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,kBAAkB;;AAE5E;AACA;AACA;AACA,oBAAoB,uBAAuB;;AAE3C,oDAAoD,6BAA6B;;AAEjF;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,0BAA0B,eAAe,EAAE;AAC3C,0BAA0B,gBAAgB;AAC1C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA,8CAA8C,YAAY,EAAE;;AAE5D;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;A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AAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;;;;;;AC3EA;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;;AAE7C;AACA,kBAAkB,KAAyB;AAC3C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,8iBAA8iB,wZAAwZ,WAAW;;AAEn+B;AACA;AACA,cAAc;AACd,aAAa;AACb,eAAe;AACf,YAAY;AACZ;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA,wxfAAwxf,inBAAinB,6BAA6B,yBAAyB;AAC/7gB,kBAAkB,4teAA4te,wKAAwK,2uZAA2uZ,wKAAwK,6gFAA6gF;AACtz9B,wBAAwB;AACxB,yBAAyB;AACzB;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0DAA0D;AAC1D;;AAEA;AACA,8BAA8B;AAC9B;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC,mBAAmB,iBAAiB;AACpC,qBAAqB,MAAM,YAAY;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,wCAAwC,EAAE;AAC1C,KAAK;AACL;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB;AACnC,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA,uCAAuC;AACvC,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,4DAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,EAAE,IAEU;AACZ;AACA,EAAE,mCAAO;AACT;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,YAUN;;AAEF,CAAC;;;;;;;;;;;;;ACxVD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,UAAU,QAAQ,iBAAiB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACx7DA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,qDAAY;AAClC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;;AAEA;;;;;;;;;;;;ACXA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,SAAS,mBAAO,CAAC,yCAAM;;AAEvB;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,EAAE;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,+CAAS;AAC7B,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,+CAAS;AAC7B,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,QAAQ;AACnB;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpKA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,oBAAo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AO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,YAAY,mBAAO,CAAC,iDAAU;AAC9B,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACXA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9CA,aAAa,mBAAO,CAAC,mDAAW;AAChC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;AACnC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3DA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,0BAA0B,mBAAO,CAAC,6EAAwB;AAC1D,eAAe,mBAAO,CAAC,qDAAY;AACnC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,eAAe,mBA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M;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,uDAAa;AACpC,cAAc,mBAAO,CAAC,mDAAW;AACjC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,eAAe,mBAAO,CAAC,uDAAa;AACpC,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,wBAAwB,mBAAO,CAAC,yEAAsB;AACtD,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvEA,eAAe,mBAAO,CAAC,uDAAa;AACpC,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,aAAa,mBAAO,CAAC,mDAAW;AAChC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,cAAc,mBAAO,CAAC,mDAAW;AACjC,YAAY,mBAAO,CAAC,iDAAU;AAC9B,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,YAAY;AACvB,aAAa,YAAY;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,yDAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;;AClCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,aAAa,mBAAO,CAAC,mDAAW;;AAEhC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA,uBAAuB,mBAAO,CAAC,uEAAqB;;AAEpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,mBAAmB;AAC9B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,sBAAsB,mBAAO,CAAC,qEAAoB;;AAElD;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,WAAW,OAAO,WAAW;AAC7B,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA,wBAAwB;;AAExB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,WAAW;AAC7B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO,WAAW;AAC7B,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;;AAEA;;;;;;;;;;;;ACLA,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,WAAW,mBAAO,CAAC,6CAAQ;;AAE3B;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,+CAA+C;AAChF;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxBA,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,WAAW,mBAAO,CAAC,6CAAQ;AAC3B,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA,WAAW,QAAQ;AACnB;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;ACVA,eAAe,mBAAO,CAAC,uDAAa;AACpC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClFA,aAAa,mBAAO,CAAC,mDAAW;AAChC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,SAAS,mBAAO,CAAC,yCAAM;AACvB,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/GA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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AAEA;;;;;;;;;;;;ACzDA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,cAAc,mBAAO,CAAC,qDAAY;AAClC,eAAe,mBAAO,CAAC,qDAAY;AACnC,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,QAAQ;AACrB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;A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;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACZA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClBA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,WAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;;AAEA;;;;;;;;;;;;ACLA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;;AAEA;;;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,+DAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;;;;;;;;;;;;AC7BA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA,cAAc,mBAAO,CAAC,qDAAY;AAClC,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACfA,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;;;;;;;;;;;ACjBA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACdA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACbA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,UAAU,mBAAO,CAAC,6CAAQ;AAC1B,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,oBAAoB,mBAAO,CAAC,iEAAkB;;AAE9C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;;;;;;;;;;;;AC1BA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,cAAc;AAC3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,EAAE;AACjD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3CA,gBAAgB,mBAAO,CAAC,yDAAc;;AAEtC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA,mBAAmB,SAAS,GAAG,SAAS;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,SAAS;AACtB;AACA;AACA,wCAAwC,SAAS;AACjD;AACA;AACA,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,eAAe,mBAAO,CAAC,qDAAY;AACnC,UAAU,mBAAO,CAAC,2CAAO;AACzB,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,WAAW,OAAO,YAAY;AAC9B,WAAW,QAAQ;AACnB;AACA,WAAW,OAAO;AAClB;AACA,WAAW,QAAQ;AACnB;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,8CAA8C,kBAAkB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9LA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;AACjC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,YAAY,OAAO;AACnB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM;AACN;AACA;AACA;AACA,mBAAmB,oCAAoC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvDA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA,MAAM,8CAA8C;AACpD,MAAM;AACN;AACA;AACA,gCAAgC,kBAAkB,EAAE;AACpD;AACA;AACA;AACA,oBAAoB,4BAA4B;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/CA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,EAAE;AACf;AACA;AACA;AACA,MAAM,+CAA+C;AACrD,MAAM,gDAAgD;AACtD,MAAM;AACN;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD;AACA;AACA;AACA,kBAAkB,2BAA2B;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA,MAAM,qCAAqC;AAC3C,MAAM,qCAAqC;AAC3C,MAAM;AACN;AACA;AACA,mCAAmC,2BAA2B,EAAE;AAChE;AACA;AACA;AACA,uBAAuB,kCAAkC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtDA,iBAAiB,mBAAO,CAAC,6CAAQ;;;;;;;;;;;;ACAjC,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACrBA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,aAAa;AAC1B;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,cAAc,iBAAiB;AAC/B;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACxCA,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB,QAAQ,OAAO,SAAS,EAAE;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,cAAc,mBAAO,CAAC,qDAAY;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,aAAa,QAAQ;AACrB;AACA;AACA,0BAA0B,gBAAgB,SAAS,GAAG;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpBA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,EAAE;AACb,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,sBAAsB,mBAAO,CAAC,qEAAoB;AAClD,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA,6BAA6B,kBAAkB,EAAE;AACjD;AACA;AACA;AACA;AACA;AACA,8CAA8C,kBAAkB,EAAE;AAClE;AACA;AACA;;AAEA;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzBA,iBAAiB,mBAAO,CAAC,yDAAc;AACvC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChCA,yDAAW,mBAAO,CAAC,+CAAS;AAC5B,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA,kBAAkB,KAA0B;;AAE5C;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;;ACrCA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,cAAc,mBAAO,CAAC,mDAAW;AACjC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5EA,kBAAkB,mBAAO,CAAC,6DAAgB;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AClCA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,iBAAiB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7DA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;AACjC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7BA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,mBAAmB,mBAAO,CAAC,6DAAgB;;AAE3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC1BA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,eAAe,mBAAO,CAAC,uDAAa;AACpC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,oBAAoB,mBAAO,CAAC,iEAAkB;AAC9C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,kBAAkB,mBAAO,CAAC,2DAAe;;AAEzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACnBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,cAAc,mBAAO,CAAC,qDAAY;AAClC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,iBAAiB;AAC3B;AACA;AACA;AACA,MAAM,mBAAmB;AACzB,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpDA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,aAAa,mBAAO,CAAC,mDAAW;AAChC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC5BA,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,aAAa,SAAS;AACtB;AACA;AACA,iBAAiB;AACjB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACxEA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,YAAY,SAAS,GAAG,SAAS;AACjC;AACA;AACA;AACA,UAAU,QAAQ,iBAAiB,GAAG,iBAAiB;AACvD;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AChBA,WAAW,mBAAO,CAAC,+CAAS;;AAE5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA,eAAe,mBAAO,CAAC,uDAAa;AACpC,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,qBAAqB;AAChC,aAAa,OAAO;AACpB;AACA;AACA,iBAAiB;AACjB;AACA;AACA,UAAU;AACV;AACA;AACA,4BAA4B;AAC5B,CAAC;;AAED;;;;;;;;;;;;ACxBA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,uBAAuB,mBAAO,CAAC,uEAAqB;AACpD,YAAY,mBAAO,CAAC,iDAAU;AAC9B,YAAY,mBAAO,CAAC,iDAAU;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,aAAa,SAAS;AACtB;AACA;AACA;AACA,MAAM,OAAO,SAAS,EAAE;AACxB,MAAM,OAAO,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,cAAc,mBAAO,CAAC,mDAAW;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb,aAAa,EAAE;AACf;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,aAAa,yBAAyB;AACtC;AACA;AACA,IAAI,IAAI;AACR,UAAU,8BAA8B;AACxC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;AClDA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpDA,eAAe,mBAAO,CAAC,uDAAa;AACpC,aAAa,mBAAO,CAAC,mDAAW;AAChC,kBAAkB,mBAAO,CAAC,2DAAe;AACzC,eAAe,mBAAO,CAAC,qDAAY;AACnC,iBAAiB,mBAAO,CAAC,2DAAe;;AAExC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA,WAAW,iBAAiB;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC7CA,gBAAgB,mBAAO,CAAC,yDAAc;AACtC,qBAAqB,mBAAO,CAAC,mEAAmB;AAChD,gBAAgB,mBAAO,CAAC,uDAAa;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACpCA,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,kBAAkB,mBAAO,CAAC,6DAAgB;AAC1C,eAAe,mBAAO,CAAC,uDAAa;AACpC,qBAAqB,mBAAO,CAAC,mEAAmB;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB,WAAW,yBAAyB;AACpC;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM,8BAA8B;AACpC,MAAM;AACN;AACA;AACA,iCAAiC,eAAe,EAAE;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,CAAC;;AAED;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjBA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACzCA,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;;;;;;;;;;;ACnCA,eAAe,mBAAO,CAAC,qDAAY;AACnC,eAAe,mBAAO,CAAC,qDAAY;;AAEnC;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACjEA,iBAAiB,mBAAO,CAAC,2DAAe;AACxC,aAAa,mBAAO,CAAC,iDAAU;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA,aAAa,SAAS;AACtB,UAAU;AACV;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC/BA,mBAAmB,mBAAO,CAAC,+DAAiB;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC3BA,mBAAmB,mBAAO,CAAC,+DAAiB;AAC5C,eAAe,mBAAO,CAAC,uDAAa;;AAEpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,aAAa,MAAM;AACnB;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,SAAS,GAAG,SAAS,GAAG,SAAS;AAC/C,WAAW,SAAS,GAAG,SAAS;AAChC;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,QAAQ;AAC3B;AACA;;AAEA;AACA;AACA;AACA,eAAe,QAAQ;;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,qBAAqB;AACpC,eAAe,OAAO;AACtB,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,gBAAgB;AAChB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,iBAAiB;AACjB;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,iBAAiB;AACjB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB;AAChB;AACA;AACA;AACA;AACA;;AAEA,8CAA8C,EAAE;AAChD;AACA;;AAEA;AACA;AACA;AACA,gBAAgB,OAAO;AACvB,gBAAgB,QAAQ;AACxB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB,mBAAmB,aAAa;AAChC,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,uBAAuB,uCAAuC;AAC9D;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B,mBAAmB,MAAM;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB,mBAAmB,MAAM;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,sBAAsB;;AAE7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,MAAM;AACzB,mBAAmB,SAAS;AAC5B,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,OAAO;AAC9B,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,uBAAuB,MAAM;AAC7B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,iBAAiB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,OAAO;AAC1B,mBAAmB,SAAS;AAC5B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B,mBAAmB,QAAQ;AAC3B;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA,mDAAmD,kBAAkB;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,mBAAmB,MAAM;AACzB,mBAAmB,SAAS;AAC5B,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA,2BAA2B,yBAAyB;AACpD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,SAAS;AACxB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,aAAa;AAC5B,eAAe,OAAO;AACtB;AACA;AACA;AACA;AACA,uDAAuD;AACvD;;AAEA;AACA;AACA;AACA,eAAe,OAAO;AACtB,eAAe,QAAQ;AACvB;AACA;AACA;AACA;AACA;AACA,mDAAmD;AACnD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,MAAM;AACrB,eAAe,QAAQ;AACvB,gBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA,QAAQ,KAA6B;AACrC;AACA;;AAEA;AACA,QAAQ,IAA0C;AAClD,QAAQ,mCAAO;AACf;AACA,SAAS;AAAA,oGAAC;AACV;AACA,CAAC;;;;;;;;;;;;ACjiCD;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AA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,0CAA0C,sCAAsC,qCAAqC,eAAe,EAAE,UAAU,eAAe,sBAAsB,mDAAmD,0EAA0E,6BAA6B,YAAY,gCAAgC,6BAA6B,YAAY,0BAA0B;AACtsS,iC;;;;;;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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CA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa;AACb;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,SAAS;AACpB,WAAW,EAAE;AACb;AACA;AACA;;AAEA;;AAEA,2BAA2B;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,EAAE;AACb,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,aAAa,IAAI;AACjB,aAAa,OAAO;AACpB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,SAAS,KAAW,IAAI,iDAAW;AACnC;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA,kCAAkC,gDAAgD,EAAE;AACpF,qCAAqC,uCAAuC,EAAE;AAC9E;AACA;;AAEA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;;AAEA;AACA;AACA,oCAAoC,8BAA8B,EAAE;AACpE,uCAAuC,6BAA6B;AACpE;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;;AAEA,CAAC;;;;;;;;;;;;;ACvND;;AAEA;AACA,cAAc,mBAAO,CAAC,kaAA2M;AACjO,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,6GAAgD;AAClE,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AAC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D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA,YAAY,uBAAuB;AACnC;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC7NA;AAAA;AAAA;AACA;AACA;AACA;AACe;AACf;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,wBAAwB;AAC3D,KAAK;AACL;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC1BA;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA,oBAAoB;AACpB;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,+BAA+B,sBAAsB;;AAErD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,oBAAoB;;AAEpB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gCAAgC;;AAEhC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oBAAoB,aAAa;AACjC;AACA,qBAAqB,cAAc;AACnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,aAAa,kBAAkB;AAC/B;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;AACA;AACA;;AAEA;AACA,2DAA2D;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAiC;AACjC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB,yBAAyB;AAC9C;AACA;AACA,wBAAwB;AACxB;AACA,4BAA4B,4BAA4B;AACxD,4BAA4B,gCAAgC;AAC5D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,yDAAyD,UAAU;AACnE,iBAAiB,wBAAwB,OAAO,uBAAuB;AACvE;AACA;AACA,iBAAiB,2BAA2B;AAC5C;AACA;AACA;AACA;;AAEA;AACA,UAAU,oBAAoB;AAC9B;AACA;AACA;AACA;AACA;AACA,SAAS,OAAO;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,QAAQ,IAAqC;AAC7C;AACA;;AAEA;AACA;AACA,6CAA6C;AAC7C,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA,OAAO,kDAAkD;AACzD;AACA;AACA;AACA;AACA,OAAO;AACP,mCAAmC,gEAAgE;AACnG;AACA;AACA;AACA,gCAAgC;AAChC;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA,uBAAuB,SAAS;AAChC;AACA,2CAA2C;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,uBAAuB,OAAO,gCAAgC;AAC/E,wDAAwD,oBAAoB;AAC5E;AACA;AACA;AACA,2BAA2B,gEAAgE;AAC3F,OAAO;AACP,YAAY,IAAqC;AACjD;AACA;AACA,mCAAmC,iCAAiC;AACpE;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,2DAA2D,oBAAoB;AAC/E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,qBAAqB,kBAAkB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA,sDAAsD,gCAAgC;AACtF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,kBAAkB,KAAqC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,6BAA6B,uBAAuB;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,KAAqC;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,6BAA6B;AACzD;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,UAAU,IAAqC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,wBAAwB;AACnD;AACA;AACA;AACA;AACA,+BAA+B,yBAAyB;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,yBAAyB;AAC1D;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,qBAAqB,8BAA8B;AACnD;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4EAA4E;AAC5E;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,aAAa,gBAAgB;AAC7B;AACA;AACA;AACA,wCAAwC,kBAAkB;AAC1D,KAAK;AACL,wCAAwC,kBAAkB;AAC1D,KAAK;AACL,wCAAwC,0BAA0B;AAClE,KAAK;AACL,wCAAwC,iBAAiB;AACzD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA,mCAAmC;AACnC,mCAAmC;AACnC,2CAA2C;AAC3C,2BAA2B;AAC3B,2BAA2B;AAC3B,4BAA4B;AAC5B,4BAA4B;AAC5B,2BAA2B;AAC3B,2BAA2B;AAC3B;AACA,uBAAuB;AACvB;AACA;AACA;AACA,cAAc,QAAQ;AACtB;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,eAAe,oBAAoB;AACnC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC,eAAe,EAAE,uBAAuB,UAAU,EAAE;AACpF;AACA;;AAEA;AACA,mDAAmD,6CAA6C;AAChG;AACA;;AAEA;AACA;AACA;AACA;AACA,2BAA2B,6CAA6C;AACxE;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,2BAA2B;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qDAAqD;AACrD,GAAG;AACH,yCAAyC;AACzC;;AAEA,iCAAiC,wCAAwC;AACzE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wDAAwD,mBAAmB;AAC3E;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,aAAa;AACpC,uBAAuB,aAAa;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iFAAiF;AACjF,4BAA4B;AAC5B;AACA,2BAA2B;AAC3B,wBAAwB,iEAAiE;AACzF,YAAY,0FAA0F;AACtG,MAAM,KAAK,0CAA0C;AACrD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,kBAAkB;AAC/D,sBAAsB,+CAA+C;AACrE,iDAAiD;;AAEjD;AACA,sDAAsD;AACtD;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C;AAC3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,2BAA2B;AACtD,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;;AAEA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,6CAA6C,EAAE;AACtD;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,UAAU;AACV;AACA,uCAAuC,SAAS;AAChD;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,wBAAwB;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,eAAe;AACf;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,4BAA4B,EAAE;AAClF,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,oDAAoD,+BAA+B,EAAE;AACrF,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,8CAA8C,aAAa;;AAE3D;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iCAAiC,qCAAqC;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2CAA2C,uCAAuC,EAAE;AACpF;AACA;AACA;AACA,6CAA6C,2CAA2C,EAAE;AAC1F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qCAAqC,8BAA8B,EAAE;AACrE;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,kCAAkC,uCAAuC;;AAEzE,qCAAqC,0BAA0B;;AAE/D;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8CAA8C;AAC9C;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,wCAAwC,gBAAgB;AACxD;AACA;AACA,gEAAgE,sBAAsB,EAAE;AACxF;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,wBAAwB;AAC3C;AACA;AACA;AACA;AACA;AACA,WAAW,uBAAuB;AAClC,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,2BAA2B;AAClD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,yBAAyB,EAAE;AACjF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,QAAQ,IAC+B;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAC6B;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;AAEA,sBAAsB,EAAE,iBAAiB,EAAE;AAC3C,+BAA+B;;AAE/B;AACA;AACA;AACA;AACA,CAAC;;;;AAID;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,kBAAkB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC,OAAO;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,OAAO;AACP,OAAO;AACP,SAAS;AACT,QAAQ;AACR,QAAQ;AACR,OAAO;AACP,QAAQ;AACR;AACA,2CAA2C;AAC3C,8DAA8D;;AAE9D;AACA;AACA,qDAAqD,2DAA2D;;AAEhH;AACA;AACA,6CAA6C,2BAA2B,EAAE;AAC1E;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,KAAqC;AAC/C,kFAAkF,6BAA6B;AAC/G;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,OAAO;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,uGAAuG;AACzH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,wBAAwB,eAAe;AACvC,sBAAsB,aAAa;;AAEnC;AACA;AACA;AACA,kCAAkC,UAAU;AAC5C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA,oCAAoC,UAAU;AAC9C,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,4BAA4B,eAAe;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,iDAAiD;;AAEnF;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,WAAW,6DAA6D;AACxE;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6DAA6D,uBAAuB,EAAE;AACtF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAI;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;;AAEA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;AACA,eAAe;AACf;AACA,WAAW;AACX;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAqC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gEAAgE;AAChE;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,oBAAoB;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO,4BAA4B;AACnC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,OAAO;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA,KAAK;AACL;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,wBAAwB,EAAE;AAC1D;AACA;AACA;;AAEA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6CAA6C,OAAO;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA;AACA;AACA;AACA,uDAAuD,WAAW;AAClE;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qCAAqC,2CAA2C,GAAG;;AAEnF;AACA,kCAAkC;AAClC,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,qBAAqB,sCAAsC;AAC3D;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,wBAAwB;AACxB;;AAEA;AACA,mDAAmD,4BAA4B,EAAE;AACjF;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B,+EAA+E;AAC7G,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,4CAA4C,gCAAgC,EAAE;AAC9E,yCAAyC,0CAA0C,EAAE;AACrF;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,2BAA2B;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA,sCAAsC,iDAAiD;AACvF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;;;;;AAMA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA,uCAAuC,iDAAiD;AACxF;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,6BAA6B;AAChD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,uCAAuC;AACjF;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA,MAAM;AACN;;AAEA;AACA,eAAe;;AAEf;AACA;AACA;AACA,aAAa,oBAAoB;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,6BAA6B;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,6GAA6G;AACjI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA,8BAA8B,OAAO;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,sUAAsU;AACrV;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,6BAA6B,kBAAkB,iCAAiC,4EAA4E,qBAAqB,aAAa,GAAG,EAAE,kBAAkB;AACrN;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB,yCAAyC,EAAE;AACpE;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA,YAAY,0EAA0E;AACtF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,sBAAsB,EAAE;AACtE;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA,+DAA+D,oCAAoC,EAAE;AACrG;AACA;AACA;AACA;AACA,+DAA+D,gCAAgC,EAAE;AACjG;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mFAAmF;AACnF;AACA;AACA;AACA;AACA,OAAO,EAAE,EAAE;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,kBAAkB,mCAAmC;AACrD;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,6EAA6E,GAAG;;AAEhF;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,0BAA0B;AAC/C;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA,6BAA6B,+BAA+B;AAC5D,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kBAAkB;AAClB,kBAAkB,eAAe;AACjC;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA,GAAG;AACH,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA;AACA,8CAA8C,mBAAmB,EAAE;AACnE;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,uBAAuB,EAAE;AACvE,SAAS;AACT,gDAAgD,qBAAqB,EAAE;AACvE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,YAAY,KAAqC;AACjD;AACA;;AAEA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc,KAAqC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;;AAEA;AACA,2BAA2B,aAAoB;AAC/C;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;;ACxtXnB;AAAA;AAAA;AAAA;AAAA;AAAuC;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,gBAAgB;AACpE;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA,WAAW,mDAAW,GAAG;AACzB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,iCAAiC;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAO,CAAC,+EAAe;AAClD;AACA;AACA,YAAY,KAAqC,EAAE,EAE1C;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,iBAAiB,2CAA2C;AAC9E;AACA;AACA;AACA;AACA,qCAAqC,cAAc,EAAE;AACrD;AACA;AACA;AACA,gDAAgD;AAChD,qBAAqB,GAAG,8BAA8B;AACtD,iBAAiB;AACjB,8DAA8D,aAAa,EAAE;AAC7E;AACA;AACA,2DAA2D;AAC3D,2DAA2D,gBAAgB;AAC3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,oCAAoC;AAC1D,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE;AACjE,yDAAyD;AACzD,0CAA0C;AAC1C,qBAAqB;AACrB,iBAAiB;AACjB;AACA,sBAAsB,iCAAiC;AACvD,sBAAsB,wBAAwB;AAC9C,oEAAoE;AACpE;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,aAAa;AAC/C;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8EAA8E;AAC9E;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,qBAAqB,oCAAoC;AACzD,sBAAsB;AACtB,4FAA4F;AAC5F;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD;AACA,6DAA6D;AAC7D,qDAAqD;AACrD;AACA;AACA,2CAA2C;AAC3C;AACA,iBAAiB;AACjB;AACA,qBAAqB,iCAAiC;AACtD,sBAAsB,wBAAwB;AAC9C,qEAAqE;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,uBAAuB,SAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E;AAC1E;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,CAAC;;AAEc,8EAAe,EAAC;AACS;AACxC;;;;;;;;;;;;;ACtQA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,yBAAyB;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,cAAc;AACzB,YAAY;AACZ;;;AAGA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,cAAc,qBAAqB;;AAE/D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,sCAAsC;;AAEtC;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAY,IAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,oCAAoC,EAAE;AAClE;AACA;;AAEA;AACA,4BAA4B;AAC5B,uEAAuE,EAAE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA,gCAAgC;AAChC,8BAA8B;;AAE9B,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,uBAAuB,EAAE;;AAE9D;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH,4CAA4C,oCAAoC,EAAE;;AAElF;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA,kDAAkD,kCAAkC,EAAE;;AAEtF;AACA,gDAAgD,yBAAyB,EAAE;AAC3E;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA,6CAA6C,6CAA6C,EAAE;AAC5F;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,kBAAkB;AACnD;AACA,wBAAwB,uBAAuB,EAAE;AACjD;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B,yBAAyB,EAAE;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,uBAAuB,2CAA2C;AAClE,KAAK;AACL;AACA,wBAAwB,0CAA0C;AAClE;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,gDAAgD;;AAEhD;AACA;;AAEA;AACA;AACA;AACA;AACA,wBAAwB,4BAA4B,EAAE;AACtD;AACA,KAAK;AACL,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4BAA4B;AAC5D,QAAQ,IAAqC;AAC7C;AACA;AACA,GAAG,GAAG,yBAAyB;AAC/B;;AAEA;AACA;AACA,yCAAyC,mBAAmB,EAAE;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED,oDAAoD;AACpD;AACA;AACA;AACA;AACA,CAAC,EAAE;;AAEH;AACA;AACA,8BAA8B,UAAU,qBAAqB,EAAE,EAAE;AACjE,2CAA2C,UAAU,0BAA0B,EAAE,EAAE;AACnF;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEmG;AACpF,wEAAS,EAAC;;;;;;;;;;;;ACl6BzB;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACrBA;;AAEA;AACA,cAAc,mBAAO,CAAC,sVAA2M;AACjO,4CAA4C,QAAS;AACrD;AACA;AACA,UAAU,mBAAO,CAAC,uHAA0D;AAC5E,8CAA8C,qCAAqC;AACnF;AACA,GAAG,IAAU;AACb;AACA;AACA,qBAAqB,sVAA2M;AAChO,sBAAsB,mBAAO,CAAC,sVAA2M;AACzO,uDAAuD,QAAS;AAChE;AACA,IAAI;AACJ;AACA;AACA,gCAAgC,UAAU,EAAE;AAC5C,C;;;;;;;;;;;;ACrBA;AAAA;AAAA;AAAA;AAAA;AAA8F;AACvC;AACL;AACsC;;;AAGxF;AACuF;AACvF,gBAAgB,2GAAU;AAC1B,EAAE,yEAAM;AACR,EAAE,0FAAM;AACR,EAAE,mGAAe;AACjB;AACA;AACA;AACA;;AAEA;;AAEA;AACA,IAAI,IAAU;AACd,YAAY,mBAAO,CAAC,wGAAwG;AAC5H,cAAc,mBAAO,CAAC,+CAAK;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,sBAAsB,sHAAsD,EAAE;AAAA;AAC9E;AACA,gBAAgB,0FAAM;AACtB,yBAAyB,mGAAe;AACxC,OAAO;AACP,KAAK;AACL;AACA;AACA;AACe,gF;;;;;;;;;;;;ACvCf;AAAA;AAAA,wCAA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","file":"js/questionedit.js","sourcesContent":[" \tfunction hotDisposeChunk(chunkId) {\n \t\tdelete installedChunks[chunkId];\n \t}\n \tvar parentHotUpdateCallback = (typeof self !== 'undefined' ? self : this)[\"webpackHotUpdate\"];\n \t(typeof self !== 'undefined' ? self : this)[\"webpackHotUpdate\"] = // eslint-disable-next-line no-unused-vars\n \tfunction webpackHotUpdateCallback(chunkId, moreModules) {\n \t\thotAddUpdateChunk(chunkId, moreModules);\n \t\tif (parentHotUpdateCallback) parentHotUpdateCallback(chunkId, moreModules);\n \t} ;\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadUpdateChunk(chunkId) {\n \t\tvar script = document.createElement(\"script\");\n \t\tscript.charset = \"utf-8\";\n \t\tscript.src = __webpack_require__.p + \"\" + chunkId + \".\" + hotCurrentHash + \".hot-update.js\";\n \t\tif (null) script.crossOrigin = null;\n \t\tdocument.head.appendChild(script);\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotDownloadManifest(requestTimeout) {\n \t\trequestTimeout = requestTimeout || 10000;\n \t\treturn new Promise(function(resolve, reject) {\n \t\t\tif (typeof XMLHttpRequest === \"undefined\") {\n \t\t\t\treturn reject(new Error(\"No browser support\"));\n \t\t\t}\n \t\t\ttry {\n \t\t\t\tvar request = new XMLHttpRequest();\n \t\t\t\tvar requestPath = __webpack_require__.p + \"\" + hotCurrentHash + \".hot-update.json\";\n \t\t\t\trequest.open(\"GET\", requestPath, true);\n \t\t\t\trequest.timeout = requestTimeout;\n \t\t\t\trequest.send(null);\n \t\t\t} catch (err) {\n \t\t\t\treturn reject(err);\n \t\t\t}\n \t\t\trequest.onreadystatechange = function() {\n \t\t\t\tif (request.readyState !== 4) return;\n \t\t\t\tif (request.status === 0) {\n \t\t\t\t\t// timeout\n \t\t\t\t\treject(\n \t\t\t\t\t\tnew Error(\"Manifest request to \" + requestPath + \" timed out.\")\n \t\t\t\t\t);\n \t\t\t\t} else if (request.status === 404) {\n \t\t\t\t\t// no update available\n \t\t\t\t\tresolve();\n \t\t\t\t} else if (request.status !== 200 && request.status !== 304) {\n \t\t\t\t\t// other failure\n \t\t\t\t\treject(new Error(\"Manifest request to \" + requestPath + \" failed.\"));\n \t\t\t\t} else {\n \t\t\t\t\t// success\n \t\t\t\t\ttry {\n \t\t\t\t\t\tvar update = JSON.parse(request.responseText);\n \t\t\t\t\t} catch (e) {\n \t\t\t\t\t\treject(e);\n \t\t\t\t\t\treturn;\n \t\t\t\t\t}\n \t\t\t\t\tresolve(update);\n \t\t\t\t}\n \t\t\t};\n \t\t});\n \t}\n\n \tvar hotApplyOnUpdate = true;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentHash = \"46adb7e886a3a900b3f1\";\n \tvar hotRequestTimeout = 10000;\n \tvar hotCurrentModuleData = {};\n \tvar hotCurrentChildModule;\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParents = [];\n \t// eslint-disable-next-line no-unused-vars\n \tvar hotCurrentParentsTemp = [];\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateRequire(moduleId) {\n \t\tvar me = installedModules[moduleId];\n \t\tif (!me) return __webpack_require__;\n \t\tvar fn = function(request) {\n \t\t\tif (me.hot.active) {\n \t\t\t\tif (installedModules[request]) {\n \t\t\t\t\tif (installedModules[request].parents.indexOf(moduleId) === -1) {\n \t\t\t\t\t\tinstalledModules[request].parents.push(moduleId);\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\thotCurrentParents = [moduleId];\n \t\t\t\t\thotCurrentChildModule = request;\n \t\t\t\t}\n \t\t\t\tif (me.children.indexOf(request) === -1) {\n \t\t\t\t\tme.children.push(request);\n \t\t\t\t}\n \t\t\t} else {\n \t\t\t\tconsole.warn(\n \t\t\t\t\t\"[HMR] unexpected require(\" +\n \t\t\t\t\t\trequest +\n \t\t\t\t\t\t\") from disposed module \" +\n \t\t\t\t\t\tmoduleId\n \t\t\t\t);\n \t\t\t\thotCurrentParents = [];\n \t\t\t}\n \t\t\treturn __webpack_require__(request);\n \t\t};\n \t\tvar ObjectFactory = function ObjectFactory(name) {\n \t\t\treturn {\n \t\t\t\tconfigurable: true,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: function() {\n \t\t\t\t\treturn __webpack_require__[name];\n \t\t\t\t},\n \t\t\t\tset: function(value) {\n \t\t\t\t\t__webpack_require__[name] = value;\n \t\t\t\t}\n \t\t\t};\n \t\t};\n \t\tfor (var name in __webpack_require__) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(__webpack_require__, name) &&\n \t\t\t\tname !== \"e\" &&\n \t\t\t\tname !== \"t\"\n \t\t\t) {\n \t\t\t\tObject.defineProperty(fn, name, ObjectFactory(name));\n \t\t\t}\n \t\t}\n \t\tfn.e = function(chunkId) {\n \t\t\tif (hotStatus === \"ready\") hotSetStatus(\"prepare\");\n \t\t\thotChunksLoading++;\n \t\t\treturn __webpack_require__.e(chunkId).then(finishChunkLoading, function(err) {\n \t\t\t\tfinishChunkLoading();\n \t\t\t\tthrow err;\n \t\t\t});\n\n \t\t\tfunction finishChunkLoading() {\n \t\t\t\thotChunksLoading--;\n \t\t\t\tif (hotStatus === \"prepare\") {\n \t\t\t\t\tif (!hotWaitingFilesMap[chunkId]) {\n \t\t\t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t\t\t}\n \t\t\t\t\tif (hotChunksLoading === 0 && hotWaitingFiles === 0) {\n \t\t\t\t\t\thotUpdateDownloaded();\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t};\n \t\tfn.t = function(value, mode) {\n \t\t\tif (mode & 1) value = fn(value);\n \t\t\treturn __webpack_require__.t(value, mode & ~1);\n \t\t};\n \t\treturn fn;\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotCreateModule(moduleId) {\n \t\tvar hot = {\n \t\t\t// private stuff\n \t\t\t_acceptedDependencies: {},\n \t\t\t_declinedDependencies: {},\n \t\t\t_selfAccepted: false,\n \t\t\t_selfDeclined: false,\n \t\t\t_selfInvalidated: false,\n \t\t\t_disposeHandlers: [],\n \t\t\t_main: hotCurrentChildModule !== moduleId,\n\n \t\t\t// Module API\n \t\t\tactive: true,\n \t\t\taccept: function(dep, callback) {\n \t\t\t\tif (dep === undefined) hot._selfAccepted = true;\n \t\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function() {};\n \t\t\t\telse hot._acceptedDependencies[dep] = callback || function() {};\n \t\t\t},\n \t\t\tdecline: function(dep) {\n \t\t\t\tif (dep === undefined) hot._selfDeclined = true;\n \t\t\t\telse if (typeof dep === \"object\")\n \t\t\t\t\tfor (var i = 0; i < dep.length; i++)\n \t\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n \t\t\t\telse hot._declinedDependencies[dep] = true;\n \t\t\t},\n \t\t\tdispose: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\taddDisposeHandler: function(callback) {\n \t\t\t\thot._disposeHandlers.push(callback);\n \t\t\t},\n \t\t\tremoveDisposeHandler: function(callback) {\n \t\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n \t\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n \t\t\t},\n \t\t\tinvalidate: function() {\n \t\t\t\tthis._selfInvalidated = true;\n \t\t\t\tswitch (hotStatus) {\n \t\t\t\t\tcase \"idle\":\n \t\t\t\t\t\thotUpdate = {};\n \t\t\t\t\t\thotUpdate[moduleId] = modules[moduleId];\n \t\t\t\t\t\thotSetStatus(\"ready\");\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"ready\":\n \t\t\t\t\t\thotApplyInvalidatedModule(moduleId);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"prepare\":\n \t\t\t\t\tcase \"check\":\n \t\t\t\t\tcase \"dispose\":\n \t\t\t\t\tcase \"apply\":\n \t\t\t\t\t\t(hotQueuedInvalidatedModules =\n \t\t\t\t\t\t\thotQueuedInvalidatedModules || []).push(moduleId);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\t// ignore requests in error states\n \t\t\t\t\t\tbreak;\n \t\t\t\t}\n \t\t\t},\n\n \t\t\t// Management API\n \t\t\tcheck: hotCheck,\n \t\t\tapply: hotApply,\n \t\t\tstatus: function(l) {\n \t\t\t\tif (!l) return hotStatus;\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\taddStatusHandler: function(l) {\n \t\t\t\thotStatusHandlers.push(l);\n \t\t\t},\n \t\t\tremoveStatusHandler: function(l) {\n \t\t\t\tvar idx = hotStatusHandlers.indexOf(l);\n \t\t\t\tif (idx >= 0) hotStatusHandlers.splice(idx, 1);\n \t\t\t},\n\n \t\t\t//inherit from previous dispose call\n \t\t\tdata: hotCurrentModuleData[moduleId]\n \t\t};\n \t\thotCurrentChildModule = undefined;\n \t\treturn hot;\n \t}\n\n \tvar hotStatusHandlers = [];\n \tvar hotStatus = \"idle\";\n\n \tfunction hotSetStatus(newStatus) {\n \t\thotStatus = newStatus;\n \t\tfor (var i = 0; i < hotStatusHandlers.length; i++)\n \t\t\thotStatusHandlers[i].call(null, newStatus);\n \t}\n\n \t// while downloading\n \tvar hotWaitingFiles = 0;\n \tvar hotChunksLoading = 0;\n \tvar hotWaitingFilesMap = {};\n \tvar hotRequestedFilesMap = {};\n \tvar hotAvailableFilesMap = {};\n \tvar hotDeferred;\n\n \t// The update info\n \tvar hotUpdate, hotUpdateNewHash, hotQueuedInvalidatedModules;\n\n \tfunction toModuleId(id) {\n \t\tvar isNumber = +id + \"\" === id;\n \t\treturn isNumber ? +id : id;\n \t}\n\n \tfunction hotCheck(apply) {\n \t\tif (hotStatus !== \"idle\") {\n \t\t\tthrow new Error(\"check() is only allowed in idle status\");\n \t\t}\n \t\thotApplyOnUpdate = apply;\n \t\thotSetStatus(\"check\");\n \t\treturn hotDownloadManifest(hotRequestTimeout).then(function(update) {\n \t\t\tif (!update) {\n \t\t\t\thotSetStatus(hotApplyInvalidatedModules() ? \"ready\" : \"idle\");\n \t\t\t\treturn null;\n \t\t\t}\n \t\t\thotRequestedFilesMap = {};\n \t\t\thotWaitingFilesMap = {};\n \t\t\thotAvailableFilesMap = update.c;\n \t\t\thotUpdateNewHash = update.h;\n\n \t\t\thotSetStatus(\"prepare\");\n \t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\thotDeferred = {\n \t\t\t\t\tresolve: resolve,\n \t\t\t\t\treject: reject\n \t\t\t\t};\n \t\t\t});\n \t\t\thotUpdate = {};\n \t\t\tvar chunkId = \"main\";\n \t\t\t// eslint-disable-next-line no-lone-blocks\n \t\t\t{\n \t\t\t\thotEnsureUpdateChunk(chunkId);\n \t\t\t}\n \t\t\tif (\n \t\t\t\thotStatus === \"prepare\" &&\n \t\t\t\thotChunksLoading === 0 &&\n \t\t\t\thotWaitingFiles === 0\n \t\t\t) {\n \t\t\t\thotUpdateDownloaded();\n \t\t\t}\n \t\t\treturn promise;\n \t\t});\n \t}\n\n \t// eslint-disable-next-line no-unused-vars\n \tfunction hotAddUpdateChunk(chunkId, moreModules) {\n \t\tif (!hotAvailableFilesMap[chunkId] || !hotRequestedFilesMap[chunkId])\n \t\t\treturn;\n \t\thotRequestedFilesMap[chunkId] = false;\n \t\tfor (var moduleId in moreModules) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\thotUpdate[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif (--hotWaitingFiles === 0 && hotChunksLoading === 0) {\n \t\t\thotUpdateDownloaded();\n \t\t}\n \t}\n\n \tfunction hotEnsureUpdateChunk(chunkId) {\n \t\tif (!hotAvailableFilesMap[chunkId]) {\n \t\t\thotWaitingFilesMap[chunkId] = true;\n \t\t} else {\n \t\t\thotRequestedFilesMap[chunkId] = true;\n \t\t\thotWaitingFiles++;\n \t\t\thotDownloadUpdateChunk(chunkId);\n \t\t}\n \t}\n\n \tfunction hotUpdateDownloaded() {\n \t\thotSetStatus(\"ready\");\n \t\tvar deferred = hotDeferred;\n \t\thotDeferred = null;\n \t\tif (!deferred) return;\n \t\tif (hotApplyOnUpdate) {\n \t\t\t// Wrap deferred object in Promise to mark it as a well-handled Promise to\n \t\t\t// avoid triggering uncaught exception warning in Chrome.\n \t\t\t// See https://bugs.chromium.org/p/chromium/issues/detail?id=465666\n \t\t\tPromise.resolve()\n \t\t\t\t.then(function() {\n \t\t\t\t\treturn hotApply(hotApplyOnUpdate);\n \t\t\t\t})\n \t\t\t\t.then(\n \t\t\t\t\tfunction(result) {\n \t\t\t\t\t\tdeferred.resolve(result);\n \t\t\t\t\t},\n \t\t\t\t\tfunction(err) {\n \t\t\t\t\t\tdeferred.reject(err);\n \t\t\t\t\t}\n \t\t\t\t);\n \t\t} else {\n \t\t\tvar outdatedModules = [];\n \t\t\tfor (var id in hotUpdate) {\n \t\t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\t\toutdatedModules.push(toModuleId(id));\n \t\t\t\t}\n \t\t\t}\n \t\t\tdeferred.resolve(outdatedModules);\n \t\t}\n \t}\n\n \tfunction hotApply(options) {\n \t\tif (hotStatus !== \"ready\")\n \t\t\tthrow new Error(\"apply() is only allowed in ready status\");\n \t\toptions = options || {};\n \t\treturn hotApplyInternal(options);\n \t}\n\n \tfunction hotApplyInternal(options) {\n \t\thotApplyInvalidatedModules();\n\n \t\tvar cb;\n \t\tvar i;\n \t\tvar j;\n \t\tvar module;\n \t\tvar moduleId;\n\n \t\tfunction getAffectedStuff(updateModuleId) {\n \t\t\tvar outdatedModules = [updateModuleId];\n \t\t\tvar outdatedDependencies = {};\n\n \t\t\tvar queue = outdatedModules.map(function(id) {\n \t\t\t\treturn {\n \t\t\t\t\tchain: [id],\n \t\t\t\t\tid: id\n \t\t\t\t};\n \t\t\t});\n \t\t\twhile (queue.length > 0) {\n \t\t\t\tvar queueItem = queue.pop();\n \t\t\t\tvar moduleId = queueItem.id;\n \t\t\t\tvar chain = queueItem.chain;\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (\n \t\t\t\t\t!module ||\n \t\t\t\t\t(module.hot._selfAccepted && !module.hot._selfInvalidated)\n \t\t\t\t)\n \t\t\t\t\tcontinue;\n \t\t\t\tif (module.hot._selfDeclined) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"self-declined\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tif (module.hot._main) {\n \t\t\t\t\treturn {\n \t\t\t\t\t\ttype: \"unaccepted\",\n \t\t\t\t\t\tchain: chain,\n \t\t\t\t\t\tmoduleId: moduleId\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n \t\t\t\t\tvar parentId = module.parents[i];\n \t\t\t\t\tvar parent = installedModules[parentId];\n \t\t\t\t\tif (!parent) continue;\n \t\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n \t\t\t\t\t\treturn {\n \t\t\t\t\t\t\ttype: \"declined\",\n \t\t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\tparentId: parentId\n \t\t\t\t\t\t};\n \t\t\t\t\t}\n \t\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n \t\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n \t\t\t\t\t\tif (!outdatedDependencies[parentId])\n \t\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n \t\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n \t\t\t\t\t\tcontinue;\n \t\t\t\t\t}\n \t\t\t\t\tdelete outdatedDependencies[parentId];\n \t\t\t\t\toutdatedModules.push(parentId);\n \t\t\t\t\tqueue.push({\n \t\t\t\t\t\tchain: chain.concat([parentId]),\n \t\t\t\t\t\tid: parentId\n \t\t\t\t\t});\n \t\t\t\t}\n \t\t\t}\n\n \t\t\treturn {\n \t\t\t\ttype: \"accepted\",\n \t\t\t\tmoduleId: updateModuleId,\n \t\t\t\toutdatedModules: outdatedModules,\n \t\t\t\toutdatedDependencies: outdatedDependencies\n \t\t\t};\n \t\t}\n\n \t\tfunction addAllToSet(a, b) {\n \t\t\tfor (var i = 0; i < b.length; i++) {\n \t\t\t\tvar item = b[i];\n \t\t\t\tif (a.indexOf(item) === -1) a.push(item);\n \t\t\t}\n \t\t}\n\n \t\t// at begin all updates modules are outdated\n \t\t// the \"outdated\" status can propagate to parents if they don't accept the children\n \t\tvar outdatedDependencies = {};\n \t\tvar outdatedModules = [];\n \t\tvar appliedUpdate = {};\n\n \t\tvar warnUnexpectedRequire = function warnUnexpectedRequire() {\n \t\t\tconsole.warn(\n \t\t\t\t\"[HMR] unexpected require(\" + result.moduleId + \") to disposed module\"\n \t\t\t);\n \t\t};\n\n \t\tfor (var id in hotUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(hotUpdate, id)) {\n \t\t\t\tmoduleId = toModuleId(id);\n \t\t\t\t/** @type {TODO} */\n \t\t\t\tvar result;\n \t\t\t\tif (hotUpdate[id]) {\n \t\t\t\t\tresult = getAffectedStuff(moduleId);\n \t\t\t\t} else {\n \t\t\t\t\tresult = {\n \t\t\t\t\t\ttype: \"disposed\",\n \t\t\t\t\t\tmoduleId: id\n \t\t\t\t\t};\n \t\t\t\t}\n \t\t\t\t/** @type {Error|false} */\n \t\t\t\tvar abortError = false;\n \t\t\t\tvar doApply = false;\n \t\t\t\tvar doDispose = false;\n \t\t\t\tvar chainInfo = \"\";\n \t\t\t\tif (result.chain) {\n \t\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n \t\t\t\t}\n \t\t\t\tswitch (result.type) {\n \t\t\t\t\tcase \"self-declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"declined\":\n \t\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n \t\t\t\t\t\tif (!options.ignoreDeclined)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n \t\t\t\t\t\t\t\t\tresult.moduleId +\n \t\t\t\t\t\t\t\t\t\" in \" +\n \t\t\t\t\t\t\t\t\tresult.parentId +\n \t\t\t\t\t\t\t\t\tchainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"unaccepted\":\n \t\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n \t\t\t\t\t\tif (!options.ignoreUnaccepted)\n \t\t\t\t\t\t\tabortError = new Error(\n \t\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"accepted\":\n \t\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n \t\t\t\t\t\tdoApply = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tcase \"disposed\":\n \t\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n \t\t\t\t\t\tdoDispose = true;\n \t\t\t\t\t\tbreak;\n \t\t\t\t\tdefault:\n \t\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n \t\t\t\t}\n \t\t\t\tif (abortError) {\n \t\t\t\t\thotSetStatus(\"abort\");\n \t\t\t\t\treturn Promise.reject(abortError);\n \t\t\t\t}\n \t\t\t\tif (doApply) {\n \t\t\t\t\tappliedUpdate[moduleId] = hotUpdate[moduleId];\n \t\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n \t\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n \t\t\t\t\t\tif (\n \t\t\t\t\t\t\tObject.prototype.hasOwnProperty.call(\n \t\t\t\t\t\t\t\tresult.outdatedDependencies,\n \t\t\t\t\t\t\t\tmoduleId\n \t\t\t\t\t\t\t)\n \t\t\t\t\t\t) {\n \t\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n \t\t\t\t\t\t\taddAllToSet(\n \t\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n \t\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n \t\t\t\t\t\t\t);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t\tif (doDispose) {\n \t\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n \t\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Store self accepted outdated modules to require them later by the module system\n \t\tvar outdatedSelfAcceptedModules = [];\n \t\tfor (i = 0; i < outdatedModules.length; i++) {\n \t\t\tmoduleId = outdatedModules[i];\n \t\t\tif (\n \t\t\t\tinstalledModules[moduleId] &&\n \t\t\t\tinstalledModules[moduleId].hot._selfAccepted &&\n \t\t\t\t// removed self-accepted modules should not be required\n \t\t\t\tappliedUpdate[moduleId] !== warnUnexpectedRequire &&\n \t\t\t\t// when called invalidate self-accepting is not possible\n \t\t\t\t!installedModules[moduleId].hot._selfInvalidated\n \t\t\t) {\n \t\t\t\toutdatedSelfAcceptedModules.push({\n \t\t\t\t\tmodule: moduleId,\n \t\t\t\t\tparents: installedModules[moduleId].parents.slice(),\n \t\t\t\t\terrorHandler: installedModules[moduleId].hot._selfAccepted\n \t\t\t\t});\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"dispose\" phase\n \t\thotSetStatus(\"dispose\");\n \t\tObject.keys(hotAvailableFilesMap).forEach(function(chunkId) {\n \t\t\tif (hotAvailableFilesMap[chunkId] === false) {\n \t\t\t\thotDisposeChunk(chunkId);\n \t\t\t}\n \t\t});\n\n \t\tvar idx;\n \t\tvar queue = outdatedModules.slice();\n \t\twhile (queue.length > 0) {\n \t\t\tmoduleId = queue.pop();\n \t\t\tmodule = installedModules[moduleId];\n \t\t\tif (!module) continue;\n\n \t\t\tvar data = {};\n\n \t\t\t// Call dispose handlers\n \t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n \t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n \t\t\t\tcb = disposeHandlers[j];\n \t\t\t\tcb(data);\n \t\t\t}\n \t\t\thotCurrentModuleData[moduleId] = data;\n\n \t\t\t// disable module (this disables requires from this module)\n \t\t\tmodule.hot.active = false;\n\n \t\t\t// remove module from cache\n \t\t\tdelete installedModules[moduleId];\n\n \t\t\t// when disposing there is no need to call dispose handler\n \t\t\tdelete outdatedDependencies[moduleId];\n\n \t\t\t// remove \"parents\" references from all children\n \t\t\tfor (j = 0; j < module.children.length; j++) {\n \t\t\t\tvar child = installedModules[module.children[j]];\n \t\t\t\tif (!child) continue;\n \t\t\t\tidx = child.parents.indexOf(moduleId);\n \t\t\t\tif (idx >= 0) {\n \t\t\t\t\tchild.parents.splice(idx, 1);\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// remove outdated dependency from module children\n \t\tvar dependency;\n \t\tvar moduleOutdatedDependencies;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n \t\t\t\t\t\tidx = module.children.indexOf(dependency);\n \t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Now in \"apply\" phase\n \t\thotSetStatus(\"apply\");\n\n \t\tif (hotUpdateNewHash !== undefined) {\n \t\t\thotCurrentHash = hotUpdateNewHash;\n \t\t\thotUpdateNewHash = undefined;\n \t\t}\n \t\thotUpdate = undefined;\n\n \t\t// insert new code\n \t\tfor (moduleId in appliedUpdate) {\n \t\t\tif (Object.prototype.hasOwnProperty.call(appliedUpdate, moduleId)) {\n \t\t\t\tmodules[moduleId] = appliedUpdate[moduleId];\n \t\t\t}\n \t\t}\n\n \t\t// call accept handlers\n \t\tvar error = null;\n \t\tfor (moduleId in outdatedDependencies) {\n \t\t\tif (\n \t\t\t\tObject.prototype.hasOwnProperty.call(outdatedDependencies, moduleId)\n \t\t\t) {\n \t\t\t\tmodule = installedModules[moduleId];\n \t\t\t\tif (module) {\n \t\t\t\t\tmoduleOutdatedDependencies = outdatedDependencies[moduleId];\n \t\t\t\t\tvar callbacks = [];\n \t\t\t\t\tfor (i = 0; i < moduleOutdatedDependencies.length; i++) {\n \t\t\t\t\t\tdependency = moduleOutdatedDependencies[i];\n \t\t\t\t\t\tcb = module.hot._acceptedDependencies[dependency];\n \t\t\t\t\t\tif (cb) {\n \t\t\t\t\t\t\tif (callbacks.indexOf(cb) !== -1) continue;\n \t\t\t\t\t\t\tcallbacks.push(cb);\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t\tfor (i = 0; i < callbacks.length; i++) {\n \t\t\t\t\t\tcb = callbacks[i];\n \t\t\t\t\t\ttry {\n \t\t\t\t\t\t\tcb(moduleOutdatedDependencies);\n \t\t\t\t\t\t} catch (err) {\n \t\t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n \t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\t\tdependencyId: moduleOutdatedDependencies[i],\n \t\t\t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t\t\t});\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t\t\t}\n \t\t\t\t\t\t}\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// Load self accepted modules\n \t\tfor (i = 0; i < outdatedSelfAcceptedModules.length; i++) {\n \t\t\tvar item = outdatedSelfAcceptedModules[i];\n \t\t\tmoduleId = item.module;\n \t\t\thotCurrentParents = item.parents;\n \t\t\thotCurrentChildModule = moduleId;\n \t\t\ttry {\n \t\t\t\t__webpack_require__(moduleId);\n \t\t\t} catch (err) {\n \t\t\t\tif (typeof item.errorHandler === \"function\") {\n \t\t\t\t\ttry {\n \t\t\t\t\t\titem.errorHandler(err);\n \t\t\t\t\t} catch (err2) {\n \t\t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n \t\t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\t\terror: err2,\n \t\t\t\t\t\t\t\toriginalError: err\n \t\t\t\t\t\t\t});\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\t\tif (!error) error = err2;\n \t\t\t\t\t\t}\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t} else {\n \t\t\t\t\tif (options.onErrored) {\n \t\t\t\t\t\toptions.onErrored({\n \t\t\t\t\t\t\ttype: \"self-accept-errored\",\n \t\t\t\t\t\t\tmoduleId: moduleId,\n \t\t\t\t\t\t\terror: err\n \t\t\t\t\t\t});\n \t\t\t\t\t}\n \t\t\t\t\tif (!options.ignoreErrored) {\n \t\t\t\t\t\tif (!error) error = err;\n \t\t\t\t\t}\n \t\t\t\t}\n \t\t\t}\n \t\t}\n\n \t\t// handle errors in accept handlers and self accepted module load\n \t\tif (error) {\n \t\t\thotSetStatus(\"fail\");\n \t\t\treturn Promise.reject(error);\n \t\t}\n\n \t\tif (hotQueuedInvalidatedModules) {\n \t\t\treturn hotApplyInternal(options).then(function(list) {\n \t\t\t\toutdatedModules.forEach(function(moduleId) {\n \t\t\t\t\tif (list.indexOf(moduleId) < 0) list.push(moduleId);\n \t\t\t\t});\n \t\t\t\treturn list;\n \t\t\t});\n \t\t}\n\n \t\thotSetStatus(\"idle\");\n \t\treturn new Promise(function(resolve) {\n \t\t\tresolve(outdatedModules);\n \t\t});\n \t}\n\n \tfunction hotApplyInvalidatedModules() {\n \t\tif (hotQueuedInvalidatedModules) {\n \t\t\tif (!hotUpdate) hotUpdate = {};\n \t\t\thotQueuedInvalidatedModules.forEach(hotApplyInvalidatedModule);\n \t\t\thotQueuedInvalidatedModules = undefined;\n \t\t\treturn true;\n \t\t}\n \t}\n\n \tfunction hotApplyInvalidatedModule(moduleId) {\n \t\tif (!Object.prototype.hasOwnProperty.call(hotUpdate, moduleId))\n \t\t\thotUpdate[moduleId] = modules[moduleId];\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {},\n \t\t\thot: hotCreateModule(moduleId),\n \t\t\tparents: (hotCurrentParentsTemp = hotCurrentParents, hotCurrentParents = [], hotCurrentParentsTemp),\n \t\t\tchildren: []\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, hotCreateRequire(moduleId));\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// __webpack_hash__\n \t__webpack_require__.h = function() { return hotCurrentHash; };\n\n\n \t// Load entry module and return exports\n \treturn hotCreateRequire(0)(__webpack_require__.s = 0);\n","const INPUT_EVENT_DEBOUNCE_WAIT = 300;\nexport default {\n\tname: 'TextEditor',\n\n\trender( createElement ) {\n\t\treturn createElement( this.tagName );\n\t},\n\n\tprops: {\n        editor: {\n            type: Function,\n\t\t\tdefault: null\n        },\n        editorType: {\n            type: String,\n\t\t\tdefault: 'classic'\n        },\n\t\tonError: {\n\t\t\ttype: Function,\n\t\t\tdefault: null\n\t\t},\n\t\tvalue: {\n\t\t\ttype: String,\n\t\t\tdefault: ''\n\t\t},\n\t\tconfig: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ( {} )\n\t\t},\n\t\textraData: {\n\t\t\ttype: Object,\n\t\t\tdefault: () => ( {} )\n\t\t},\n\t\ttagName: {\n\t\t\ttype: String,\n\t\t\tdefault: 'div'\n\t\t},\n\t\tdisabled: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t},\n\twatch: {\n\t\tapplyToEditor(newFunction) {\n\t\t\tnewFunction(this.instance);\n\t\t},\n\t\textraData(newConfig, oldConfig) {\n\t\t\tLS.ld.forEach(newConfig, (value,key) => {\n\t\t\t\tthis.instance[key] = value;\n\t\t\t})\n\t\t}\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tinstance: null,\n\t\t\t$_lastEditorData: {\n\t\t\t\ttype: String,\n\t\t\t\tdefault: ''\n\t\t\t}\n\t\t};\n\t},\n\tcreated() {\n        window.CKEDITOR_VERSION = null;\n    },\n\tmounted() {\n\t\twindow.LS.debug.cks = window.LS.debug.cks || [];\n\t\tif ( this.value ) {\n\t\t\tObject.assign( this.config, {\n\t\t\t\tinitialData: this.value\n\t\t\t} );\n        }\n\n\t\tthis.editor.create( this.$el, LS.ld.merge(this.defaultConfig, this.config))\n\t\t\t.then( editor => {\n\t\t\t\tthis.instance = editor;\n\t\t\t\teditor.isReadOnly = this.disabled;\n\n\t\t\t\tLS.ld.forEach(this.extraData, (value,key) => {\n\t\t\t\t\tthis.instance.set(key);\n\t\t\t\t\tthis.instance[key] = value;\n\t\t\t\t});\n\n\t\t\t\tthis.$_setUpEditorEvents();\n\t\t\t\tthis.$emit( 'ready', editor );\n                window.LS.debug.cks.push(editor);\n                \n\t\t\t})\n\t\t\t.catch( error => {\n\t\t\t\tconsole.error( error );\n\t\t\t\tif(this.onError !== null) {this.onError(error);}\n            });\n            \n            $(document).on(\"pjax:send\", () => {\n                this.instance.destroy();\n\t\t\t    this.instance = null;\n            });\n\t\t       \n\t},\n\n\tbeforeDestroy() {\n\t\tif ( this.instance ) {\n\t\t\tthis.instance.destroy();\n\t\t\tthis.instance = null;\n\t\t}\n\t\tthis.$emit( 'destroy', this.instance );\n\t},\n\n\twatch: {\n\t\tvalue( newValue, oldValue ) {\n\t\t\tif ( newValue !== oldValue && newValue !== this.$_lastEditorData ) {\n\t\t\t\tthis.instance.setData( newValue );\n\t\t\t}\n\t\t},\n\n\t\tdisabled( val ) {\n\t\t\tthis.instance.isReadOnly = val;\n\t\t}\n\t},\n\n\tmethods: {\n\t\t$_setUpEditorEvents() {\n\t\t\tconst editor = this.instance;\n\t\t\tconst emitInputEvent = evt => {\n\t\t\t\tconst data = this.$_lastEditorData = editor.getData();\n\t\t\t\tthis.$emit( 'input', data, {evt, editor} );\n\t\t\t};\n\t\t\teditor.model.document.on( 'change:data', LS.ld.debounce( emitInputEvent, INPUT_EVENT_DEBOUNCE_WAIT ) );\n\n\t\t\teditor.editing.view.document.on( 'focus', evt => {\n                editor.editing.view.scrollToTheSelection();\n\t\t\t\tthis.$emit( 'focus', {evt, editor} );\n            } );\n            \n\t\t\t$(editor.editing.view.element).on('scroll', evt => {\n\t\t\t\tthis.$emit( 'insidescroll', {evt, editor} );\n\t\t\t} );\n\n\t\t\teditor.editing.view.document.on( 'blur', evt => {\n\t\t\t\tthis.$emit( 'blur', {evt, editor} );\n\t\t\t} );\n\t\t}\n\t}\n};\n","import LSCKEditorComponent from './TextEditor';\n\nconst LSCKEditor = {\n\tinstall( Vue ) {\n\t\tVue.component( 'lsckeditor', LSCKEditorComponent );\n\t},\n\tcomponent: LSCKEditorComponent\n};\n\nexport default LSCKEditor;","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module alignment/alignment\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport AlignmentEditing from \"./alignmentediting\";\nimport AlignmentUI from \"./alignmentui\";\n/**\n * The text alignment plugin.\n *\n * For a detailed overview, check the {@glink features/text-alignment Text alignment feature documentation}\n * and the {@glink api/alignment package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:alignment/alignmentediting~AlignmentEditing} and\n * {@link module:alignment/alignmentui~AlignmentUI} plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Alignment = /*#__PURE__*/function (_Plugin) {\n  _inherits(Alignment, _Plugin);\n\n  var _super = _createSuper(Alignment);\n\n  function Alignment() {\n    _classCallCheck(this, Alignment);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Alignment, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [AlignmentEditing, AlignmentUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Alignment';\n    }\n  }]);\n\n  return Alignment;\n}(Plugin);\n/**\n * The configuration of the {@link module:alignment/alignment~Alignment alignment feature}.\n *\n * Read more in {@link module:alignment/alignment~AlignmentConfig}.\n *\n * @member {module:alignment/alignment~AlignmentConfig} module:core/editor/editorconfig~EditorConfig#alignment\n */\n\n/**\n * The configuration of the {@link module:alignment/alignment~Alignment alignment feature}.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\talignment: {\n *\t\t\t\t\toptions: [ 'left', 'right' ]\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor configuration options}.\n *\n * @interface AlignmentConfig\n */\n\n/**\n * Available alignment options.\n *\n * The available options are: `'left'`, `'right'`, `'center'` and `'justify'`. Other values are ignored.\n *\n * **Note:** It is recommended to always use `'left'` or `'right'` as these are default values which the user should\n * normally be able to choose depending on the\n * {@glink features/ui-language#setting-the-language-of-the-content language of the editor content}.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\talignment: {\n *\t\t\t\t\toptions: [ 'left', 'right' ]\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See the demo of {@glink features/text-alignment#configuring-alignment-options custom alignment options}.\n *\n * @member {Array.<String>} module:alignment/alignment~AlignmentConfig#options\n */\n\n\nexport { Alignment as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module alignment/alignmentcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport first from '@ckeditor/ckeditor5-utils/src/first';\nimport { isDefault } from \"./utils\";\nvar ALIGNMENT = 'alignment';\n/**\n * The alignment command plugin.\n *\n * @extends module:core/command~Command\n */\n\nvar AlignmentCommand = /*#__PURE__*/function (_Command) {\n  _inherits(AlignmentCommand, _Command);\n\n  var _super = _createSuper(AlignmentCommand);\n\n  function AlignmentCommand() {\n    _classCallCheck(this, AlignmentCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(AlignmentCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var editor = this.editor;\n      var locale = editor.locale;\n      var firstBlock = first(this.editor.model.document.selection.getSelectedBlocks()); // As first check whether to enable or disable the command as the value will always be false if the command cannot be enabled.\n\n      this.isEnabled = !!firstBlock && this._canBeAligned(firstBlock);\n      /**\n       * A value of the current block's alignment.\n       *\n       * @observable\n       * @readonly\n       * @member {String} #value\n       */\n\n      if (this.isEnabled && firstBlock.hasAttribute('alignment')) {\n        this.value = firstBlock.getAttribute('alignment');\n      } else {\n        this.value = locale.contentLanguageDirection === 'rtl' ? 'right' : 'left';\n      }\n    }\n    /**\n     * Executes the command. Applies the alignment `value` to the selected blocks.\n     * If no `value` is passed, the `value` is the default one or it is equal to the currently selected block's alignment attribute,\n     * the command will remove the attribute from the selected blocks.\n     *\n     * @param {Object} [options] Options for the executed command.\n     * @param {String} [options.value] The value to apply.\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var editor = this.editor;\n      var locale = editor.locale;\n      var model = editor.model;\n      var doc = model.document;\n      var value = options.value;\n      model.change(function (writer) {\n        // Get only those blocks from selected that can have alignment set\n        var blocks = Array.from(doc.selection.getSelectedBlocks()).filter(function (block) {\n          return _this._canBeAligned(block);\n        });\n        var currentAlignment = blocks[0].getAttribute('alignment'); // Remove alignment attribute if current alignment is:\n        // - default (should not be stored in model as it will bloat model data)\n        // - equal to currently set\n        // - or no value is passed - denotes default alignment.\n\n        var removeAlignment = isDefault(value, locale) || currentAlignment === value || !value;\n\n        if (removeAlignment) {\n          removeAlignmentFromSelection(blocks, writer);\n        } else {\n          setAlignmentOnSelection(blocks, writer, value);\n        }\n      });\n    }\n    /**\n     * Checks whether a block can have alignment set.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} block The block to be checked.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_canBeAligned\",\n    value: function _canBeAligned(block) {\n      return this.editor.model.schema.checkAttribute(block, ALIGNMENT);\n    }\n  }]);\n\n  return AlignmentCommand;\n}(Command); // Removes the alignment attribute from blocks.\n// @private\n\n\nexport { AlignmentCommand as default };\n\nfunction removeAlignmentFromSelection(blocks, writer) {\n  var _iterator = _createForOfIteratorHelper(blocks),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var block = _step.value;\n      writer.removeAttribute(ALIGNMENT, block);\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n} // Sets the alignment attribute on blocks.\n// @private\n\n\nfunction setAlignmentOnSelection(blocks, writer, alignment) {\n  var _iterator2 = _createForOfIteratorHelper(blocks),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var block = _step2.value;\n      writer.setAttribute(ALIGNMENT, alignment, block);\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module alignment/alignmentediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport AlignmentCommand from \"./alignmentcommand\";\nimport { isDefault, isSupported, supportedOptions } from \"./utils\";\n/**\n * The alignment editing feature. It introduces the {@link module:alignment/alignmentcommand~AlignmentCommand command} and adds\n * the `alignment` attribute for block elements in the {@link module:engine/model/model~Model model}.\n * @extends module:core/plugin~Plugin\n */\n\nvar AlignmentEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(AlignmentEditing, _Plugin);\n\n  var _super = _createSuper(AlignmentEditing);\n\n  _createClass(AlignmentEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'AlignmentEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function AlignmentEditing(editor) {\n    var _this;\n\n    _classCallCheck(this, AlignmentEditing);\n\n    _this = _super.call(this, editor);\n    editor.config.define('alignment', {\n      options: _toConsumableArray(supportedOptions)\n    });\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(AlignmentEditing, [{\n    key: \"init\",\n    value: function init() {\n      var editor = this.editor;\n      var locale = editor.locale;\n      var schema = editor.model.schema; // Filter out unsupported options.\n\n      var enabledOptions = editor.config.get('alignment.options').filter(isSupported); // Allow alignment attribute on all blocks.\n\n      schema.extend('$block', {\n        allowAttributes: 'alignment'\n      });\n      editor.model.schema.setAttributeProperties('alignment', {\n        isFormatting: true\n      });\n\n      var definition = _buildDefinition(enabledOptions.filter(function (option) {\n        return !isDefault(option, locale);\n      }));\n\n      editor.conversion.attributeToAttribute(definition);\n      editor.commands.add('alignment', new AlignmentCommand(editor));\n    }\n  }]);\n\n  return AlignmentEditing;\n}(Plugin); // Utility function responsible for building converter definition.\n// @private\n\n\nexport { AlignmentEditing as default };\n\nfunction _buildDefinition(options) {\n  var definition = {\n    model: {\n      key: 'alignment',\n      values: options.slice()\n    },\n    view: {}\n  };\n\n  var _iterator = _createForOfIteratorHelper(options),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var option = _step.value;\n      definition.view[option] = {\n        key: 'style',\n        value: {\n          'text-align': option\n        }\n      };\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return definition;\n}","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/es6.array.find-index';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.map';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module alignment/alignmentui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport {\n    createDropdown,\n    addToolbarToDropdown\n} from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport { isSupported } from './utils';\nimport alignLeftIcon from '../theme/icons/align-left.svg';\nimport alignRightIcon from '../theme/icons/align-right.svg';\nimport alignCenterIcon from '../theme/icons/align-center.svg';\nimport alignJustifyIcon from '../theme/icons/align-justify.svg';\nvar icons = new Map([\n    [\n        'left',\n        alignLeftIcon\n    ],\n    [\n        'right',\n        alignRightIcon\n    ],\n    [\n        'center',\n        alignCenterIcon\n    ],\n    [\n        'justify',\n        alignJustifyIcon\n    ]\n]);\n/**\n * The default alignment UI plugin.\n *\n * It introduces the `'alignment:left'`, `'alignment:right'`, `'alignment:center'` and `'alignment:justify'` buttons\n * and the `'alignment'` dropdown.\n *\n * @extends module:core/plugin~Plugin\n */\nvar AlignmentUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(AlignmentUI, _Plugin);\n    var _super = _createSuper(AlignmentUI);\n    function AlignmentUI() {\n        _classCallCheck(this, AlignmentUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(AlignmentUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var componentFactory = editor.ui.componentFactory;\n                var t = editor.t;\n                var options = editor.config.get('alignment.options');\n                options.filter(isSupported).forEach(function (option) {\n                    return _this._addButton(option);\n                });\n                componentFactory.add('alignment', function (locale) {\n                    var dropdownView = createDropdown(locale);\n                    // Add existing alignment buttons to dropdown's toolbar.\n                    var buttons = options.map(function (option) {\n                        return componentFactory.create('alignment:'.concat(option));\n                    });\n                    addToolbarToDropdown(dropdownView, buttons);\n                    // Configure dropdown properties an behavior.\n                    dropdownView.buttonView.set({\n                        label: t('Text alignment'),\n                        tooltip: true\n                    });\n                    dropdownView.toolbarView.isVertical = true;\n                    dropdownView.toolbarView.ariaLabel = t('Text alignment toolbar');\n                    dropdownView.extendTemplate({ attributes: { class: 'ck-alignment-dropdown' } });\n                    // The default icon depends on the direction of the content.\n                    var defaultIcon = locale.contentLanguageDirection === 'rtl' ? alignRightIcon : alignLeftIcon;\n                    // Change icon to reflect current selection's alignment.\n                    dropdownView.buttonView.bind('icon').toMany(buttons, 'isOn', function () {\n                        for (var _len = arguments.length, areActive = new Array(_len), _key = 0; _key < _len; _key++) {\n                            areActive[_key] = arguments[_key];\n                        }\n                        // Get the index of an active button.\n                        var index = areActive.findIndex(function (value) {\n                            return value;\n                        });\n                        // If none of the commands is active, display either defaultIcon or the first button's icon.\n                        if (index < 0) {\n                            return defaultIcon;\n                        }\n                        // Return active button's icon.\n                        return buttons[index].icon;\n                    });\n                    // Enable button if any of the buttons is enabled.\n                    dropdownView.bind('isEnabled').toMany(buttons, 'isEnabled', function () {\n                        for (var _len2 = arguments.length, areEnabled = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n                            areEnabled[_key2] = arguments[_key2];\n                        }\n                        return areEnabled.some(function (isEnabled) {\n                            return isEnabled;\n                        });\n                    });\n                    return dropdownView;\n                });\n            }    /**\n     * Helper method for initializing the button and linking it with an appropriate command.\n     *\n     * @private\n     * @param {String} option The name of the alignment option for which the button is added.\n     */\n        },\n        {\n            key: '_addButton',\n            value: function _addButton(option) {\n                var _this2 = this;\n                var editor = this.editor;\n                editor.ui.componentFactory.add('alignment:'.concat(option), function (locale) {\n                    var command = editor.commands.get('alignment');\n                    var buttonView = new ButtonView(locale);\n                    buttonView.set({\n                        label: _this2.localizedOptionTitles[option],\n                        icon: icons.get(option),\n                        tooltip: true,\n                        isToggleable: true\n                    });\n                    // Bind button model to command.\n                    buttonView.bind('isEnabled').to(command);\n                    buttonView.bind('isOn').to(command, 'value', function (value) {\n                        return value === option;\n                    });\n                    // Execute command.\n                    _this2.listenTo(buttonView, 'execute', function () {\n                        editor.execute('alignment', { value: option });\n                        editor.editing.view.focus();\n                    });\n                    return buttonView;\n                });\n            }\n        },\n        {\n            key: 'localizedOptionTitles',\n            /**\n     * Returns the localized option titles provided by the plugin.\n     *\n     * The following localized titles corresponding with\n     * {@link module:alignment/alignment~AlignmentConfig#options} are available:\n     *\n     * * `'left'`,\n     * * `'right'`,\n     * * `'center'`,\n     * * `'justify'`.\n     *\n     * @readonly\n     * @type {Object.<String,String>}\n     */\n            get: function get() {\n                var t = this.editor.t;\n                return {\n                    'left': t('Align left'),\n                    'right': t('Align right'),\n                    'center': t('Align center'),\n                    'justify': t('Justify')\n                };\n            }    /**\n     * @inheritDoc\n     */\n        }\n    ], [{\n            key: 'pluginName',\n            get: function get() {\n                return 'AlignmentUI';\n            }\n        }]);\n    return AlignmentUI;\n}(Plugin);\nexport {\n    AlignmentUI as default\n};","import \"core-js/modules/es7.array.includes\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module alignment/utils\n */\n\n/**\n * The list of supported alignment options:\n *\n * * `'left'`,\n * * `'right'`,\n * * `'center'`,\n * * `'justify'`\n */\nexport var supportedOptions = ['left', 'right', 'center', 'justify'];\n/**\n * Checks whether the passed option is supported by {@link module:alignment/alignmentediting~AlignmentEditing}.\n *\n * @param {String} option The option value to check.\n * @returns {Boolean}\n */\n\nexport function isSupported(option) {\n  return supportedOptions.includes(option);\n}\n/**\n * Checks whether alignment is the default one considering the direction\n * of the editor content.\n *\n * @param {String} alignment The name of the alignment to check.\n * @param {module:utils/locale~Locale} locale The {@link module:core/editor/editor~Editor#locale} instance.\n * @returns {Boolean}\n */\n\nexport function isDefault(alignment, locale) {\n  // Right now only LTR is supported so the 'left' value is always the default one.\n  if (locale.contentLanguageDirection == 'rtl') {\n    return alignment === 'right';\n  } else {\n    return alignment === 'left';\n  }\n}","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm2.286 4c0 .414.336.75.75.75h9.928a.75.75 0 1 0 0-1.5H5.036a.75.75 0 0 0-.75.75zm0-8c0 .414.336.75.75.75h9.928a.75.75 0 1 0 0-1.5H5.036a.75.75 0 0 0-.75.75z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 4c0 .414.336.75.75.75h9.929a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0-8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2 3.75c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 8c0 .414.336.75.75.75h14.5a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0 4c0 .414.336.75.75.75h9.929a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75zm0-8c0 .414.336.75.75.75h9.929a.75.75 0 1 0 0-1.5H2.75a.75.75 0 0 0-.75.75z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M18 3.75a.75.75 0 0 1-.75.75H2.75a.75.75 0 1 1 0-1.5h14.5a.75.75 0 0 1 .75.75zm0 8a.75.75 0 0 1-.75.75H2.75a.75.75 0 1 1 0-1.5h14.5a.75.75 0 0 1 .75.75zm0 4a.75.75 0 0 1-.75.75H7.321a.75.75 0 1 1 0-1.5h9.929a.75.75 0 0 1 .75.75zm0-8a.75.75 0 0 1-.75.75H7.321a.75.75 0 1 1 0-1.5h9.929a.75.75 0 0 1 .75.75z\\\"/></svg>\"","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module autoformat/autoformat\n */\nimport BlockAutoformatEditing from \"./blockautoformatediting\";\nimport InlineAutoformatEditing from \"./inlineautoformatediting\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * Enables a set of predefined autoformatting actions.\n *\n * For a detailed overview, check the {@glink features/autoformat Autoformatting feature documentation}\n * and the {@glink api/autoformat package page}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Autoformat = /*#__PURE__*/function (_Plugin) {\n  _inherits(Autoformat, _Plugin);\n\n  var _super = _createSuper(Autoformat);\n\n  function Autoformat() {\n    _classCallCheck(this, Autoformat);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Autoformat, [{\n    key: \"afterInit\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function afterInit() {\n      this._addListAutoformats();\n\n      this._addBasicStylesAutoformats();\n\n      this._addHeadingAutoformats();\n\n      this._addBlockQuoteAutoformats();\n    }\n    /**\n     * Adds autoformatting related to the {@link module:list/list~List}.\n     *\n     * When typed:\n     * - `* ` or `- ` &ndash; A paragraph will be changed to a bulleted list.\n     * - `1. ` or `1) ` &ndash; A paragraph will be changed to a numbered list (\"1\" can be any digit or a list of digits).\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_addListAutoformats\",\n    value: function _addListAutoformats() {\n      var commands = this.editor.commands;\n\n      if (commands.get('bulletedList')) {\n        // eslint-disable-next-line no-new\n        new BlockAutoformatEditing(this.editor, /^[*-]\\s$/, 'bulletedList');\n      }\n\n      if (commands.get('numberedList')) {\n        // eslint-disable-next-line no-new\n        new BlockAutoformatEditing(this.editor, /^1[.|)]\\s$/, 'numberedList');\n      }\n    }\n    /**\n     * Adds autoformatting related to the {@link module:basic-styles/bold~Bold},\n     * {@link module:basic-styles/italic~Italic} and {@link module:basic-styles/code~Code}.\n     *\n     * When typed:\n     * - `**foobar**` &ndash; `**` characters are removed and `foobar` is set to bold,\n     * - `__foobar__` &ndash; `__` characters are removed and `foobar` is set to bold,\n     * - `*foobar*` &ndash; `*` characters are removed and `foobar` is set to italic,\n     * - `_foobar_` &ndash; `_` characters are removed and `foobar` is set to italic,\n     * - ``` `foobar` &ndash; ``` ` ``` characters are removed and `foobar` is set to code.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_addBasicStylesAutoformats\",\n    value: function _addBasicStylesAutoformats() {\n      var commands = this.editor.commands;\n\n      if (commands.get('bold')) {\n        /* eslint-disable no-new */\n        var boldCallback = getCallbackFunctionForInlineAutoformat(this.editor, 'bold');\n        new InlineAutoformatEditing(this.editor, /(\\*\\*)([^*]+)(\\*\\*)$/g, boldCallback);\n        new InlineAutoformatEditing(this.editor, /(__)([^_]+)(__)$/g, boldCallback);\n        /* eslint-enable no-new */\n      }\n\n      if (commands.get('italic')) {\n        /* eslint-disable no-new */\n        var italicCallback = getCallbackFunctionForInlineAutoformat(this.editor, 'italic'); // The italic autoformatter cannot be triggered by the bold markers, so we need to check the\n        // text before the pattern (e.g. `(?:^|[^\\*])`).\n\n        new InlineAutoformatEditing(this.editor, /(?:^|[^*])(\\*)([^*_]+)(\\*)$/g, italicCallback);\n        new InlineAutoformatEditing(this.editor, /(?:^|[^_])(_)([^_]+)(_)$/g, italicCallback);\n        /* eslint-enable no-new */\n      }\n\n      if (commands.get('code')) {\n        /* eslint-disable no-new */\n        var codeCallback = getCallbackFunctionForInlineAutoformat(this.editor, 'code');\n        new InlineAutoformatEditing(this.editor, /(`)([^`]+)(`)$/g, codeCallback);\n        /* eslint-enable no-new */\n      }\n    }\n    /**\n     * Adds autoformatting related to {@link module:heading/heading~Heading}.\n     *\n     * It is using a number at the end of the command name to associate it with the proper trigger:\n     *\n     * * `heading` with value `heading1` will be executed when typing `#`,\n     * * `heading` with value `heading2` will be executed when typing `##`,\n     * * ... up to `heading6` and `######`.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_addHeadingAutoformats\",\n    value: function _addHeadingAutoformats() {\n      var _this = this;\n\n      var command = this.editor.commands.get('heading');\n\n      if (command) {\n        command.modelElements.filter(function (name) {\n          return name.match(/^heading[1-6]$/);\n        }).forEach(function (commandValue) {\n          var level = commandValue[7];\n          var pattern = new RegExp(\"^(#{\".concat(level, \"})\\\\s$\")); // eslint-disable-next-line no-new\n\n          new BlockAutoformatEditing(_this.editor, pattern, function () {\n            if (!command.isEnabled) {\n              return false;\n            }\n\n            _this.editor.execute('heading', {\n              value: commandValue\n            });\n          });\n        });\n      }\n    }\n    /**\n     * Adds autoformatting related to {@link module:block-quote/blockquote~BlockQuote}.\n     *\n     * When typed:\n     * * `> ` &ndash; A paragraph will be changed to a block quote.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_addBlockQuoteAutoformats\",\n    value: function _addBlockQuoteAutoformats() {\n      if (this.editor.commands.get('blockQuote')) {\n        // eslint-disable-next-line no-new\n        new BlockAutoformatEditing(this.editor, /^>\\s$/, 'blockQuote');\n      }\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'Autoformat';\n    }\n  }]);\n\n  return Autoformat;\n}(Plugin); // Helper function for getting `InlineAutoformatEditing` callbacks that checks if command is enabled.\n//\n// @param {module:core/editor/editor~Editor} editor\n// @param {String} attributeKey\n// @returns {Function}\n\n\nexport { Autoformat as default };\n\nfunction getCallbackFunctionForInlineAutoformat(editor, attributeKey) {\n  return function (writer, rangesToFormat) {\n    var command = editor.commands.get(attributeKey);\n\n    if (!command.isEnabled) {\n      return false;\n    }\n\n    var validRanges = editor.model.schema.getValidRanges(rangesToFormat, attributeKey);\n\n    var _iterator = _createForOfIteratorHelper(validRanges),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var range = _step.value;\n        writer.setAttribute(attributeKey, true, range);\n      } // After applying attribute to the text, remove given attribute from the selection.\n      // This way user is able to type a text without attribute used by auto formatter.\n\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    writer.removeSelectionAttribute(attributeKey);\n  };\n}","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module autoformat/blockautoformatediting\n */\nimport LiveRange from '@ckeditor/ckeditor5-engine/src/model/liverange';\n/**\n * The block autoformatting engine. It allows to format various block patterns. For example,\n * it can be configured to turn a paragraph starting with `*` and followed by a space into a list item.\n *\n * The autoformatting operation is integrated with the undo manager,\n * so the autoformatting step can be undone if the user's intention was not to format the text.\n *\n * See the constructors documentation to learn how to create custom inline autoformatters. You can also use\n * the {@link module:autoformat/autoformat~Autoformat} feature which enables a set of default autoformatters\n * (lists, headings, bold and italic).\n */\n\nvar BlockAutoformatEditing = /*#__PURE__*/function () {\n  _createClass(BlockAutoformatEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'BlockAutoformatEditing';\n    }\n    /**\n     * Creates a listener triggered on `change` event in the document.\n     * Calls the callback when inserted text matches the regular expression or the command name\n     * if provided instead of the callback.\n     *\n     * Examples of usage:\n     *\n     * To convert a paragraph to heading 1 when `- ` is typed, using just the command name:\n     *\n     *\t\tnew BlockAutoformatEditing( editor, /^\\- $/, 'heading1' );\n     *\n     * To convert a paragraph to heading 1 when `- ` is typed, using just the callback:\n     *\n     *\t\tnew BlockAutoformatEditing( editor, /^\\- $/, ( context ) => {\n     *\t\t\tconst { match } = context;\n     *\t\t\tconst headingLevel = match[ 1 ].length;\n     *\n     *\t\t\teditor.execute( 'heading', {\n     *\t\t\t\tformatId: `heading${ headingLevel }`\n     *\t\t\t} );\n     * \t\t} );\n     *\n     * @param {module:core/editor/editor~Editor} editor The editor instance.\n     * @param {RegExp} pattern The regular expression to execute on just inserted text.\n     * @param {Function|String} callbackOrCommand The callback to execute or the command to run when the text is matched.\n     * In case of providing the callback, it receives the following parameter:\n     * * {Object} match RegExp.exec() result of matching the pattern to inserted text.\n     */\n\n  }]);\n\n  function BlockAutoformatEditing(editor, pattern, callbackOrCommand) {\n    _classCallCheck(this, BlockAutoformatEditing);\n\n    var callback;\n    var command = null;\n\n    if (typeof callbackOrCommand == 'function') {\n      callback = callbackOrCommand;\n    } else {\n      // We assume that the actual command name was provided.\n      command = editor.commands.get(callbackOrCommand);\n\n      callback = function callback() {\n        editor.execute(callbackOrCommand);\n      };\n    }\n\n    editor.model.document.on('change', function (evt, batch) {\n      if (command && !command.isEnabled) {\n        return;\n      }\n\n      if (batch.type == 'transparent') {\n        return;\n      }\n\n      var changes = Array.from(editor.model.document.differ.getChanges());\n      var entry = changes[0]; // Typing is represented by only a single change.\n\n      if (changes.length != 1 || entry.type !== 'insert' || entry.name != '$text' || entry.length != 1) {\n        return;\n      }\n\n      var item = entry.position.textNode || entry.position.nodeAfter;\n\n      if (!item.parent.is('paragraph')) {\n        return;\n      }\n\n      var match = pattern.exec(item.data);\n\n      if (!match) {\n        return;\n      } // Use enqueueChange to create new batch to separate typing batch from the auto-format changes.\n\n\n      editor.model.enqueueChange(function (writer) {\n        // Matched range.\n        var start = writer.createPositionAt(item.parent, 0);\n        var end = writer.createPositionAt(item.parent, match[0].length);\n        var range = new LiveRange(start, end);\n        var wasChanged = callback({\n          match: match\n        }); // Remove matched text.\n\n        if (wasChanged !== false) {\n          writer.remove(range);\n        }\n\n        range.detach();\n      });\n    });\n  }\n\n  return BlockAutoformatEditing;\n}();\n\nexport { BlockAutoformatEditing as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module autoformat/inlineautoformatediting\n */\nimport getLastTextLine from '@ckeditor/ckeditor5-typing/src/utils/getlasttextline';\n/**\n * The inline autoformatting engine. It allows to format various inline patterns. For example,\n * it can be configured to make \"foo\" bold when typed `**foo**` (the `**` markers will be removed).\n *\n * The autoformatting operation is integrated with the undo manager,\n * so the autoformatting step can be undone if the user's intention was not to format the text.\n *\n * See the constructors documentation to learn how to create custom inline autoformatters. You can also use\n * the {@link module:autoformat/autoformat~Autoformat} feature which enables a set of default autoformatters\n * (lists, headings, bold and italic).\n */\n\nvar InlineAutoformatEditing = /*#__PURE__*/function () {\n  _createClass(InlineAutoformatEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'InlineAutoformatEditing';\n    }\n    /**\n     * Enables autoformatting mechanism for a given {@link module:core/editor/editor~Editor}.\n     *\n     * It formats the matched text by applying the given model attribute or by running the provided formatting callback.\n     * On every change applied to the model the autoformatting engine checks the text on the left of the selection\n     * and executes the provided action if the text matches given criteria (regular expression or callback).\n     *\n     * @param {module:core/editor/editor~Editor} editor The editor instance.\n     * @param {Function|RegExp} testRegexpOrCallback The regular expression or callback to execute on text.\n     * Provided regular expression *must* have three capture groups. The first and the third capture group\n     * should match opening and closing delimiters. The second capture group should match the text to format.\n     *\n     *\t\t// Matches the `**bold text**` pattern.\n     *\t\t// There are three capturing groups:\n     *\t\t// - The first to match the starting `**` delimiter.\n     *\t\t// - The second to match the text to format.\n     *\t\t// - The third to match the ending `**` delimiter.\n     *\t\tnew InlineAutoformatEditing( editor, /(\\*\\*)([^\\*]+?)(\\*\\*)$/g, 'bold' );\n     *\n     * When a function is provided instead of the regular expression, it will be executed with the text to match as a parameter.\n     * The function should return proper \"ranges\" to delete and format.\n     *\n     *\t\t{\n     *\t\t\tremove: [\n     *\t\t\t\t[ 0, 1 ],\t// Remove the first letter from the given text.\n     *\t\t\t\t[ 5, 6 ]\t// Remove the 6th letter from the given text.\n     *\t\t\t],\n     *\t\t\tformat: [\n     *\t\t\t\t[ 1, 5 ]\t// Format all letters from 2nd to 5th.\n     *\t\t\t]\n     *\t\t}\n     *\n     * @param {Function|String} attributeOrCallback The name of attribute to apply on matching text or a callback for manual\n     * formatting. If callback is passed it should return `false` if changes should not be applied (e.g. if a command is disabled).\n     *\n     *\t\t// Use attribute name:\n     *\t\tnew InlineAutoformatEditing( editor, /(\\*\\*)([^\\*]+?)(\\*\\*)$/g, 'bold' );\n     *\n     *\t\t// Use formatting callback:\n     *\t\tnew InlineAutoformatEditing( editor, /(\\*\\*)([^\\*]+?)(\\*\\*)$/g, ( writer, rangesToFormat ) => {\n     *\t\t\tconst command = editor.commands.get( 'bold' );\n     *\n     *\t\t\tif ( !command.isEnabled ) {\n     *\t\t\t\treturn false;\n     *\t\t\t}\n     *\n     *\t\t\tconst validRanges = editor.model.schema.getValidRanges( rangesToFormat, 'bold' );\n     *\n     *\t\t\tfor ( let range of validRanges ) {\n     *\t\t\t\twriter.setAttribute( 'bold', true, range );\n     *\t\t\t}\n     *\t\t} );\n     */\n\n  }]);\n\n  function InlineAutoformatEditing(editor, testRegexpOrCallback, attributeOrCallback) {\n    _classCallCheck(this, InlineAutoformatEditing);\n\n    var regExp;\n    var attributeKey;\n    var testCallback;\n    var formatCallback;\n\n    if (testRegexpOrCallback instanceof RegExp) {\n      regExp = testRegexpOrCallback;\n    } else {\n      testCallback = testRegexpOrCallback;\n    }\n\n    if (typeof attributeOrCallback == 'string') {\n      attributeKey = attributeOrCallback;\n    } else {\n      formatCallback = attributeOrCallback;\n    } // A test callback run on changed text.\n\n\n    testCallback = testCallback || function (text) {\n      var result;\n      var remove = [];\n      var format = [];\n\n      while ((result = regExp.exec(text)) !== null) {\n        // There should be full match and 3 capture groups.\n        if (result && result.length < 4) {\n          break;\n        }\n\n        var _result = result,\n            index = _result.index,\n            leftDel = _result['1'],\n            content = _result['2'],\n            rightDel = _result['3']; // Real matched string - there might be some non-capturing groups so we need to recalculate starting index.\n\n        var found = leftDel + content + rightDel;\n        index += result[0].length - found.length; // Start and End offsets of delimiters to remove.\n\n        var delStart = [index, index + leftDel.length];\n        var delEnd = [index + leftDel.length + content.length, index + leftDel.length + content.length + rightDel.length];\n        remove.push(delStart);\n        remove.push(delEnd);\n        format.push([index + leftDel.length, index + leftDel.length + content.length]);\n      }\n\n      return {\n        remove: remove,\n        format: format\n      };\n    }; // A format callback run on matched text.\n\n\n    formatCallback = formatCallback || function (writer, rangesToFormat) {\n      var validRanges = editor.model.schema.getValidRanges(rangesToFormat, attributeKey);\n\n      var _iterator = _createForOfIteratorHelper(validRanges),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var range = _step.value;\n          writer.setAttribute(attributeKey, true, range);\n        } // After applying attribute to the text, remove given attribute from the selection.\n        // This way user is able to type a text without attribute used by auto formatter.\n\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      writer.removeSelectionAttribute(attributeKey);\n    };\n\n    editor.model.document.on('change', function (evt, batch) {\n      if (batch.type == 'transparent') {\n        return;\n      }\n\n      var model = editor.model;\n      var selection = model.document.selection; // Do nothing if selection is not collapsed.\n\n      if (!selection.isCollapsed) {\n        return;\n      }\n\n      var changes = Array.from(model.document.differ.getChanges());\n      var entry = changes[0]; // Typing is represented by only a single change.\n\n      if (changes.length != 1 || entry.type !== 'insert' || entry.name != '$text' || entry.length != 1) {\n        return;\n      }\n\n      var focus = selection.focus;\n      var block = focus.parent;\n\n      var _getLastTextLine = getLastTextLine(model.createRange(model.createPositionAt(block, 0), focus), model),\n          text = _getLastTextLine.text,\n          range = _getLastTextLine.range;\n\n      var testOutput = testCallback(text);\n      var rangesToFormat = testOutputToRanges(range.start, testOutput.format, model);\n      var rangesToRemove = testOutputToRanges(range.start, testOutput.remove, model);\n\n      if (!(rangesToFormat.length && rangesToRemove.length)) {\n        return;\n      } // Use enqueueChange to create new batch to separate typing batch from the auto-format changes.\n\n\n      model.enqueueChange(function (writer) {\n        // Apply format.\n        var hasChanged = formatCallback(writer, rangesToFormat); // Strict check on `false` to have backward compatibility (when callbacks were returning `undefined`).\n\n        if (hasChanged === false) {\n          return;\n        } // Remove delimiters - use reversed order to not mix the offsets while removing.\n\n\n        var _iterator2 = _createForOfIteratorHelper(rangesToRemove.reverse()),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var _range = _step2.value;\n            writer.remove(_range);\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      });\n    });\n  }\n\n  return InlineAutoformatEditing;\n}(); // Converts output of the test function provided to the InlineAutoformatEditing and converts it to the model ranges\n// inside provided block.\n//\n// @private\n// @param {module:engine/model/position~Position} start\n// @param {Array.<Array>} arrays\n// @param {module:engine/model/model~Model} model\n\n\nexport { InlineAutoformatEditing as default };\n\nfunction testOutputToRanges(start, arrays, model) {\n  return arrays.filter(function (array) {\n    return array[0] !== undefined && array[1] !== undefined;\n  }).map(function (array) {\n    return model.createRange(start.getShiftedBy(array[0]), start.getShiftedBy(array[1]));\n  });\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module basic-styles/attributecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\n/**\n * An extension of the base {@link module:core/command~Command} class, which provides utilities for a command\n * that toggles a single attribute on a text or an element.\n *\n * `AttributeCommand` uses {@link module:engine/model/document~Document#selection}\n * to decide which nodes (if any) should be changed, and applies or removes the attribute from them.\n *\n * The command checks the {@link module:engine/model/model~Model#schema} to decide if it can be enabled\n * for the current selection and to which nodes the attribute can be applied.\n *\n * @extends module:core/command~Command\n */\n\nvar AttributeCommand = /*#__PURE__*/function (_Command) {\n  _inherits(AttributeCommand, _Command);\n\n  var _super = _createSuper(AttributeCommand);\n\n  /**\n   * @param {module:core/editor/editor~Editor} editor\n   * @param {String} attributeKey Attribute that will be set by the command.\n   */\n  function AttributeCommand(editor, attributeKey) {\n    var _this;\n\n    _classCallCheck(this, AttributeCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The attribute that will be set by the command.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    _this.attributeKey = attributeKey;\n    /**\n     * Flag indicating whether the command is active. The command is active when the\n     * {@link module:engine/model/selection~Selection#hasAttribute selection has the attribute} which means that:\n     *\n     * * If the selection is not empty &ndash; That the attribute is set on the first node in the selection that allows this attribute.\n     * * If the selection is empty &ndash; That the selection has the attribute itself (which means that newly typed\n     * text will have this attribute, too).\n     *\n     * @observable\n     * @readonly\n     * @member {Boolean} #value\n     */\n\n    return _this;\n  }\n  /**\n   * Updates the command's {@link #value} and {@link #isEnabled} based on the current selection.\n   */\n\n\n  _createClass(AttributeCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      this.value = this._getValueFromFirstAllowedNode();\n      this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey);\n    }\n    /**\n     * Executes the command &mdash; applies the attribute to the selection or removes it from the selection.\n     *\n     * If the command is active (`value == true`), it will remove attributes. Otherwise, it will set attributes.\n     *\n     * The execution result differs, depending on the {@link module:engine/model/document~Document#selection}:\n     *\n     * * If the selection is on a range, the command applies the attribute to all nodes in that range\n     * (if they are allowed to have this attribute by the {@link module:engine/model/schema~Schema schema}).\n     * * If the selection is collapsed in a non-empty node, the command applies the attribute to the\n     * {@link module:engine/model/document~Document#selection} itself (note that typed characters copy attributes from the selection).\n     * * If the selection is collapsed in an empty node, the command applies the attribute to the parent node of the selection (note\n     * that the selection inherits all attributes from a node if it is in an empty node).\n     *\n     * @fires execute\n     * @param {Object} [options] Command options.\n     * @param {Boolean} [options.forceValue] If set, it will force the command behavior. If `true`, the command will apply the attribute,\n     * otherwise the command will remove the attribute.\n     * If not set, the command will look for its current value to decide what it should do.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this2 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var doc = model.document;\n      var selection = doc.selection;\n      var value = options.forceValue === undefined ? !this.value : options.forceValue;\n      model.change(function (writer) {\n        if (selection.isCollapsed) {\n          if (value) {\n            writer.setSelectionAttribute(_this2.attributeKey, true);\n          } else {\n            writer.removeSelectionAttribute(_this2.attributeKey);\n          }\n        } else {\n          var ranges = model.schema.getValidRanges(selection.getRanges(), _this2.attributeKey);\n\n          var _iterator = _createForOfIteratorHelper(ranges),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var range = _step.value;\n\n              if (value) {\n                writer.setAttribute(_this2.attributeKey, value, range);\n              } else {\n                writer.removeAttribute(_this2.attributeKey, range);\n              }\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        }\n      });\n    }\n    /**\n     * Checks the attribute value of the first node in the selection that allows the attribute.\n     * For the collapsed selection returns the selection attribute.\n     *\n     * @private\n     * @returns {Boolean} The attribute value.\n     */\n\n  }, {\n    key: \"_getValueFromFirstAllowedNode\",\n    value: function _getValueFromFirstAllowedNode() {\n      var model = this.editor.model;\n      var schema = model.schema;\n      var selection = model.document.selection;\n\n      if (selection.isCollapsed) {\n        return selection.hasAttribute(this.attributeKey);\n      }\n\n      var _iterator2 = _createForOfIteratorHelper(selection.getRanges()),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var range = _step2.value;\n\n          var _iterator3 = _createForOfIteratorHelper(range.getItems()),\n              _step3;\n\n          try {\n            for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n              var item = _step3.value;\n\n              if (schema.checkAttribute(item, this.attributeKey)) {\n                return item.hasAttribute(this.attributeKey);\n              }\n            }\n          } catch (err) {\n            _iterator3.e(err);\n          } finally {\n            _iterator3.f();\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      return false;\n    }\n  }]);\n\n  return AttributeCommand;\n}(Command);\n\nexport { AttributeCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module basic-styles/bold\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport BoldEditing from \"./bold/boldediting\";\nimport BoldUI from \"./bold/boldui\";\n/**\n * The bold feature.\n *\n * For a detailed overview check the {@glink features/basic-styles Basic styles feature documentation}\n * and the {@glink api/basic-styles package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:basic-styles/bold/boldediting~BoldEditing bold editing feature}\n * and {@link module:basic-styles/bold/boldui~BoldUI bold UI feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Bold = /*#__PURE__*/function (_Plugin) {\n  _inherits(Bold, _Plugin);\n\n  var _super = _createSuper(Bold);\n\n  function Bold() {\n    _classCallCheck(this, Bold);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Bold, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [BoldEditing, BoldUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Bold';\n    }\n  }]);\n\n  return Bold;\n}(Plugin);\n\nexport { Bold as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.number.constructor\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module basic-styles/bold/boldediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport AttributeCommand from \"../attributecommand\";\nvar BOLD = 'bold';\n/**\n * The bold editing feature.\n *\n * It registers the `'bold'` command and introduces the `bold` attribute in the model which renders to the view\n * as a `<strong>` element.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar BoldEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(BoldEditing, _Plugin);\n\n  var _super = _createSuper(BoldEditing);\n\n  function BoldEditing() {\n    _classCallCheck(this, BoldEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(BoldEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor; // Allow bold attribute on text nodes.\n\n      editor.model.schema.extend('$text', {\n        allowAttributes: BOLD\n      });\n      editor.model.schema.setAttributeProperties(BOLD, {\n        isFormatting: true,\n        copyOnEnter: true\n      }); // Build converter from model to view for data and editing pipelines.\n\n      editor.conversion.attributeToElement({\n        model: BOLD,\n        view: 'strong',\n        upcastAlso: ['b', function (viewElement) {\n          var fontWeight = viewElement.getStyle('font-weight');\n\n          if (!fontWeight) {\n            return null;\n          } // Value of the `font-weight` attribute can be defined as a string or a number.\n\n\n          if (fontWeight == 'bold' || Number(fontWeight) >= 600) {\n            return {\n              name: true,\n              styles: ['font-weight']\n            };\n          }\n        }]\n      }); // Create bold command.\n\n      editor.commands.add(BOLD, new AttributeCommand(editor, BOLD)); // Set the Ctrl+B keystroke.\n\n      editor.keystrokes.set('CTRL+B', BOLD);\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'BoldEditing';\n    }\n  }]);\n\n  return BoldEditing;\n}(Plugin);\n\nexport { BoldEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/bold/boldui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport boldIcon from '../../theme/icons/bold.svg';\nvar BOLD = 'bold';\n/**\n * The bold UI feature. It introduces the Bold button.\n *\n * @extends module:core/plugin~Plugin\n */\nvar BoldUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(BoldUI, _Plugin);\n    var _super = _createSuper(BoldUI);\n    function BoldUI() {\n        _classCallCheck(this, BoldUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(BoldUI, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                // Add bold button to feature components.\n                editor.ui.componentFactory.add(BOLD, function (locale) {\n                    var command = editor.commands.get(BOLD);\n                    var view = new ButtonView(locale);\n                    view.set({\n                        label: t('Bold'),\n                        icon: boldIcon,\n                        keystroke: 'CTRL+B',\n                        tooltip: true,\n                        isToggleable: true\n                    });\n                    view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n                    // Execute command.\n                    _this.listenTo(view, 'execute', function () {\n                        return editor.execute(BOLD);\n                    });\n                    return view;\n                });\n            }\n        }]);\n    return BoldUI;\n}(Plugin);\nexport {\n    BoldUI as default\n};","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module basic-styles/italic\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ItalicEditing from \"./italic/italicediting\";\nimport ItalicUI from \"./italic/italicui\";\n/**\n * The italic feature.\n *\n * For a detailed overview check the {@glink features/basic-styles Basic styles feature documentation}\n * and the {@glink api/basic-styles package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:basic-styles/italic/italicediting~ItalicEditing} and\n * {@link module:basic-styles/italic/italicui~ItalicUI} plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Italic = /*#__PURE__*/function (_Plugin) {\n  _inherits(Italic, _Plugin);\n\n  var _super = _createSuper(Italic);\n\n  function Italic() {\n    _classCallCheck(this, Italic);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Italic, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [ItalicEditing, ItalicUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Italic';\n    }\n  }]);\n\n  return Italic;\n}(Plugin);\n\nexport { Italic as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module basic-styles/italic/italicediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport AttributeCommand from \"../attributecommand\";\nvar ITALIC = 'italic';\n/**\n * The italic editing feature.\n *\n * It registers the `'italic'` command, the <kbd>Ctrl+I</kbd> keystroke and introduces the `italic` attribute in the model\n * which renders to the view as an `<i>` element.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ItalicEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(ItalicEditing, _Plugin);\n\n  var _super = _createSuper(ItalicEditing);\n\n  function ItalicEditing() {\n    _classCallCheck(this, ItalicEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ItalicEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor; // Allow italic attribute on text nodes.\n\n      editor.model.schema.extend('$text', {\n        allowAttributes: ITALIC\n      });\n      editor.model.schema.setAttributeProperties(ITALIC, {\n        isFormatting: true,\n        copyOnEnter: true\n      });\n      editor.conversion.attributeToElement({\n        model: ITALIC,\n        view: 'i',\n        upcastAlso: ['em', {\n          styles: {\n            'font-style': 'italic'\n          }\n        }]\n      }); // Create italic command.\n\n      editor.commands.add(ITALIC, new AttributeCommand(editor, ITALIC)); // Set the Ctrl+I keystroke.\n\n      editor.keystrokes.set('CTRL+I', ITALIC);\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'ItalicEditing';\n    }\n  }]);\n\n  return ItalicEditing;\n}(Plugin);\n\nexport { ItalicEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/italic/italicui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport italicIcon from '../../theme/icons/italic.svg';\nvar ITALIC = 'italic';\n/**\n * The italic UI feature. It introduces the Italic button.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ItalicUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ItalicUI, _Plugin);\n    var _super = _createSuper(ItalicUI);\n    function ItalicUI() {\n        _classCallCheck(this, ItalicUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ItalicUI, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                // Add bold button to feature components.\n                editor.ui.componentFactory.add(ITALIC, function (locale) {\n                    var command = editor.commands.get(ITALIC);\n                    var view = new ButtonView(locale);\n                    view.set({\n                        label: t('Italic'),\n                        icon: italicIcon,\n                        keystroke: 'CTRL+I',\n                        tooltip: true,\n                        isToggleable: true\n                    });\n                    view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n                    // Execute command.\n                    _this.listenTo(view, 'execute', function () {\n                        return editor.execute(ITALIC);\n                    });\n                    return view;\n                });\n            }\n        }]);\n    return ItalicUI;\n}(Plugin);\nexport {\n    ItalicUI as default\n};","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module basic-styles/underline\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport UnderlineEditing from \"./underline/underlineediting\";\nimport UnderlineUI from \"./underline/underlineui\";\n/**\n * The underline feature.\n *\n * For a detailed overview check the {@glink features/basic-styles Basic styles feature documentation}\n * and the {@glink api/basic-styles package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:basic-styles/underline/underlineediting~UnderlineEditing} and\n * {@link module:basic-styles/underline/underlineui~UnderlineUI} plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Underline = /*#__PURE__*/function (_Plugin) {\n  _inherits(Underline, _Plugin);\n\n  var _super = _createSuper(Underline);\n\n  function Underline() {\n    _classCallCheck(this, Underline);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Underline, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [UnderlineEditing, UnderlineUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Underline';\n    }\n  }]);\n\n  return Underline;\n}(Plugin);\n\nexport { Underline as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module basic-styles/underline/underlineediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport AttributeCommand from \"../attributecommand\";\nvar UNDERLINE = 'underline';\n/**\n * The underline editing feature.\n *\n * It registers the `'underline'` command, the <kbd>Ctrl+U</kbd> keystroke\n * and introduces the `underline` attribute in the model which renders to the view as an `<u>` element.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar UnderlineEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(UnderlineEditing, _Plugin);\n\n  var _super = _createSuper(UnderlineEditing);\n\n  function UnderlineEditing() {\n    _classCallCheck(this, UnderlineEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(UnderlineEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor; // Allow strikethrough attribute on text nodes.\n\n      editor.model.schema.extend('$text', {\n        allowAttributes: UNDERLINE\n      });\n      editor.model.schema.setAttributeProperties(UNDERLINE, {\n        isFormatting: true,\n        copyOnEnter: true\n      });\n      editor.conversion.attributeToElement({\n        model: UNDERLINE,\n        view: 'u',\n        upcastAlso: {\n          styles: {\n            'text-decoration': 'underline'\n          }\n        }\n      }); // Create underline command.\n\n      editor.commands.add(UNDERLINE, new AttributeCommand(editor, UNDERLINE)); // Set the Ctrl+U keystroke.\n\n      editor.keystrokes.set('CTRL+U', 'underline');\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'UnderlineEditing';\n    }\n  }]);\n\n  return UnderlineEditing;\n}(Plugin);\n\nexport { UnderlineEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module basic-styles/underline/underlineui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport underlineIcon from '../../theme/icons/underline.svg';\nvar UNDERLINE = 'underline';\n/**\n * The underline UI feature. It introduces the Underline button.\n *\n * @extends module:core/plugin~Plugin\n */\nvar UnderlineUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(UnderlineUI, _Plugin);\n    var _super = _createSuper(UnderlineUI);\n    function UnderlineUI() {\n        _classCallCheck(this, UnderlineUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(UnderlineUI, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                // Add bold button to feature components.\n                editor.ui.componentFactory.add(UNDERLINE, function (locale) {\n                    var command = editor.commands.get(UNDERLINE);\n                    var view = new ButtonView(locale);\n                    view.set({\n                        label: t('Underline'),\n                        icon: underlineIcon,\n                        keystroke: 'CTRL+U',\n                        tooltip: true,\n                        isToggleable: true\n                    });\n                    view.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n                    // Execute command.\n                    _this.listenTo(view, 'execute', function () {\n                        return editor.execute(UNDERLINE);\n                    });\n                    return view;\n                });\n            }\n        }]);\n    return UnderlineUI;\n}(Plugin);\nexport {\n    UnderlineUI as default\n};","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M10.187 17H5.773c-.637 0-1.092-.138-1.364-.415-.273-.277-.409-.718-.409-1.323V4.738c0-.617.14-1.062.419-1.332.279-.27.73-.406 1.354-.406h4.68c.69 0 1.288.041 1.793.124.506.083.96.242 1.36.478.341.197.644.447.906.75a3.262 3.262 0 0 1 .808 2.162c0 1.401-.722 2.426-2.167 3.075C15.05 10.175 16 11.315 16 13.01a3.756 3.756 0 0 1-2.296 3.504 6.1 6.1 0 0 1-1.517.377c-.571.073-1.238.11-2 .11zm-.217-6.217H7v4.087h3.069c1.977 0 2.965-.69 2.965-2.072 0-.707-.256-1.22-.768-1.537-.512-.319-1.277-.478-2.296-.478zM7 5.13v3.619h2.606c.729 0 1.292-.067 1.69-.2a1.6 1.6 0 0 0 .91-.765c.165-.267.247-.566.247-.897 0-.707-.26-1.176-.778-1.409-.519-.232-1.31-.348-2.375-.348H7z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M9.586 14.633l.021.004c-.036.335.095.655.393.962.082.083.173.15.274.201h1.474a.6.6 0 1 1 0 1.2H5.304a.6.6 0 0 1 0-1.2h1.15c.474-.07.809-.182 1.005-.334.157-.122.291-.32.404-.597l2.416-9.55a1.053 1.053 0 0 0-.281-.823 1.12 1.12 0 0 0-.442-.296H8.15a.6.6 0 0 1 0-1.2h6.443a.6.6 0 1 1 0 1.2h-1.195c-.376.056-.65.155-.823.296-.215.175-.423.439-.623.79l-2.366 9.347z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M3 18v-1.5h14V18zM5.2 10V3.6c0-.4.4-.6.8-.6.3 0 .7.2.7.6v6.2c0 2 1.3 2.8 3.2 2.8 1.9 0 3.4-.9 3.4-2.9V3.6c0-.3.4-.5.8-.5.3 0 .7.2.7.5V10c0 2.7-2.2 4-4.9 4-2.6 0-4.7-1.2-4.7-4z\\\"/></svg>\"","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module block-quote/blockquote\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport BlockQuoteEditing from \"./blockquoteediting\";\nimport BlockQuoteUI from \"./blockquoteui\";\n/**\n * The block quote plugin.\n *\n * For more information about this feature check the {@glink api/block-quote package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:block-quote/blockquoteediting~BlockQuoteEditing block quote editing feature}\n * and {@link module:block-quote/blockquoteui~BlockQuoteUI block quote UI feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar BlockQuote = /*#__PURE__*/function (_Plugin) {\n  _inherits(BlockQuote, _Plugin);\n\n  var _super = _createSuper(BlockQuote);\n\n  function BlockQuote() {\n    _classCallCheck(this, BlockQuote);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(BlockQuote, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [BlockQuoteEditing, BlockQuoteUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'BlockQuote';\n    }\n  }]);\n\n  return BlockQuote;\n}(Plugin);\n\nexport { BlockQuote as default };","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module block-quote/blockquotecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * The block quote command plugin.\n *\n * @extends module:core/command~Command\n */\n\nvar BlockQuoteCommand = /*#__PURE__*/function (_Command) {\n  _inherits(BlockQuoteCommand, _Command);\n\n  var _super = _createSuper(BlockQuoteCommand);\n\n  function BlockQuoteCommand() {\n    _classCallCheck(this, BlockQuoteCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(BlockQuoteCommand, [{\n    key: \"refresh\",\n\n    /**\n     * Whether the selection starts in a block quote.\n     *\n     * @observable\n     * @readonly\n     * @member {Boolean} #value\n     */\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      this.value = this._getValue();\n      this.isEnabled = this._checkEnabled();\n    }\n    /**\n     * Executes the command. When the command {@link #value is on}, all top-most block quotes within\n     * the selection will be removed. If it is off, all selected blocks will be wrapped with\n     * a block quote.\n     *\n     * @fires execute\n     * @param {Object} [options] Command options.\n     * @param {Boolean} [options.forceValue] If set, it will force the command behavior. If `true`, the command will apply a block quote,\n     * otherwise the command will remove the block quote. If not set, the command will act basing on its current value.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var schema = model.schema;\n      var selection = model.document.selection;\n      var blocks = Array.from(selection.getSelectedBlocks());\n      var value = options.forceValue === undefined ? !this.value : options.forceValue;\n      model.change(function (writer) {\n        if (!value) {\n          _this._removeQuote(writer, blocks.filter(findQuote));\n        } else {\n          var blocksToQuote = blocks.filter(function (block) {\n            // Already quoted blocks needs to be considered while quoting too\n            // in order to reuse their <bQ> elements.\n            return findQuote(block) || checkCanBeQuoted(schema, block);\n          });\n\n          _this._applyQuote(writer, blocksToQuote);\n        }\n      });\n    }\n    /**\n     * Checks the command's {@link #value}.\n     *\n     * @private\n     * @returns {Boolean} The current value.\n     */\n\n  }, {\n    key: \"_getValue\",\n    value: function _getValue() {\n      var selection = this.editor.model.document.selection;\n      var firstBlock = first(selection.getSelectedBlocks()); // In the current implementation, the block quote must be an immediate parent of a block element.\n\n      return !!(firstBlock && findQuote(firstBlock));\n    }\n    /**\n     * Checks whether the command can be enabled in the current context.\n     *\n     * @private\n     * @returns {Boolean} Whether the command should be enabled.\n     */\n\n  }, {\n    key: \"_checkEnabled\",\n    value: function _checkEnabled() {\n      if (this.value) {\n        return true;\n      }\n\n      var selection = this.editor.model.document.selection;\n      var schema = this.editor.model.schema;\n      var firstBlock = first(selection.getSelectedBlocks());\n\n      if (!firstBlock) {\n        return false;\n      }\n\n      return checkCanBeQuoted(schema, firstBlock);\n    }\n    /**\n     * Removes the quote from given blocks.\n     *\n     * If blocks which are supposed to be \"unquoted\" are in the middle of a quote,\n     * start it or end it, then the quote will be split (if needed) and the blocks\n     * will be moved out of it, so other quoted blocks remained quoted.\n     *\n     * @private\n     * @param {module:engine/model/writer~Writer} writer\n     * @param {Array.<module:engine/model/element~Element>} blocks\n     */\n\n  }, {\n    key: \"_removeQuote\",\n    value: function _removeQuote(writer, blocks) {\n      // Unquote all groups of block. Iterate in the reverse order to not break following ranges.\n      getRangesOfBlockGroups(writer, blocks).reverse().forEach(function (groupRange) {\n        if (groupRange.start.isAtStart && groupRange.end.isAtEnd) {\n          writer.unwrap(groupRange.start.parent);\n          return;\n        } // The group of blocks are at the beginning of an <bQ> so let's move them left (out of the <bQ>).\n\n\n        if (groupRange.start.isAtStart) {\n          var positionBefore = writer.createPositionBefore(groupRange.start.parent);\n          writer.move(groupRange, positionBefore);\n          return;\n        } // The blocks are in the middle of an <bQ> so we need to split the <bQ> after the last block\n        // so we move the items there.\n\n\n        if (!groupRange.end.isAtEnd) {\n          writer.split(groupRange.end);\n        } // Now we are sure that groupRange.end.isAtEnd is true, so let's move the blocks right.\n\n\n        var positionAfter = writer.createPositionAfter(groupRange.end.parent);\n        writer.move(groupRange, positionAfter);\n      });\n    }\n    /**\n     * Applies the quote to given blocks.\n     *\n     * @private\n     * @param {module:engine/model/writer~Writer} writer\n     * @param {Array.<module:engine/model/element~Element>} blocks\n     */\n\n  }, {\n    key: \"_applyQuote\",\n    value: function _applyQuote(writer, blocks) {\n      var quotesToMerge = []; // Quote all groups of block. Iterate in the reverse order to not break following ranges.\n\n      getRangesOfBlockGroups(writer, blocks).reverse().forEach(function (groupRange) {\n        var quote = findQuote(groupRange.start);\n\n        if (!quote) {\n          quote = writer.createElement('blockQuote');\n          writer.wrap(groupRange, quote);\n        }\n\n        quotesToMerge.push(quote);\n      }); // Merge subsequent <bQ> elements. Reverse the order again because this time we want to go through\n      // the <bQ> elements in the source order (due to how merge works – it moves the right element's content\n      // to the first element and removes the right one. Since we may need to merge a couple of subsequent `<bQ>` elements\n      // we want to keep the reference to the first (furthest left) one.\n\n      quotesToMerge.reverse().reduce(function (currentQuote, nextQuote) {\n        if (currentQuote.nextSibling == nextQuote) {\n          writer.merge(writer.createPositionAfter(currentQuote));\n          return currentQuote;\n        }\n\n        return nextQuote;\n      });\n    }\n  }]);\n\n  return BlockQuoteCommand;\n}(Command);\n\nexport { BlockQuoteCommand as default };\n\nfunction findQuote(elementOrPosition) {\n  return elementOrPosition.parent.name == 'blockQuote' ? elementOrPosition.parent : null;\n} // Returns a minimal array of ranges containing groups of subsequent blocks.\n//\n// content:         abcdefgh\n// blocks:          [ a, b, d, f, g, h ]\n// output ranges:   [ab]c[d]e[fgh]\n//\n// @param {Array.<module:engine/model/element~Element>} blocks\n// @returns {Array.<module:engine/model/range~Range>}\n\n\nfunction getRangesOfBlockGroups(writer, blocks) {\n  var startPosition;\n  var i = 0;\n  var ranges = [];\n\n  while (i < blocks.length) {\n    var block = blocks[i];\n    var nextBlock = blocks[i + 1];\n\n    if (!startPosition) {\n      startPosition = writer.createPositionBefore(block);\n    }\n\n    if (!nextBlock || block.nextSibling != nextBlock) {\n      ranges.push(writer.createRange(startPosition, writer.createPositionAfter(block)));\n      startPosition = null;\n    }\n\n    i++;\n  }\n\n  return ranges;\n} // Checks whether <bQ> can wrap the block.\n\n\nfunction checkCanBeQuoted(schema, block) {\n  // TMP will be replaced with schema.checkWrap().\n  var isBQAllowed = schema.checkChild(block.parent, 'blockQuote');\n  var isBlockAllowedInBQ = schema.checkChild(['$root', 'blockQuote'], block);\n  return isBQAllowed && isBlockAllowedInBQ;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.ends-with\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module block-quote/blockquoteediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport BlockQuoteCommand from \"./blockquotecommand\";\n/**\n * The block quote editing.\n *\n * Introduces the `'blockQuote'` command and the `'blockQuote'` model element.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar BlockQuoteEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(BlockQuoteEditing, _Plugin);\n\n  var _super = _createSuper(BlockQuoteEditing);\n\n  function BlockQuoteEditing() {\n    _classCallCheck(this, BlockQuoteEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(BlockQuoteEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor;\n      var schema = editor.model.schema;\n      editor.commands.add('blockQuote', new BlockQuoteCommand(editor));\n      schema.register('blockQuote', {\n        allowWhere: '$block',\n        allowContentOf: '$root'\n      }); // Disallow blockQuote in blockQuote.\n\n      schema.addChildCheck(function (ctx, childDef) {\n        if (ctx.endsWith('blockQuote') && childDef.name == 'blockQuote') {\n          return false;\n        }\n      });\n      editor.conversion.elementToElement({\n        model: 'blockQuote',\n        view: 'blockquote'\n      }); // Postfixer which cleans incorrect model states connected with block quotes.\n\n      editor.model.document.registerPostFixer(function (writer) {\n        var changes = editor.model.document.differ.getChanges();\n\n        var _iterator = _createForOfIteratorHelper(changes),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var entry = _step.value;\n\n            if (entry.type == 'insert') {\n              var element = entry.position.nodeAfter;\n\n              if (!element) {\n                // We are inside a text node.\n                continue;\n              }\n\n              if (element.is('blockQuote') && element.isEmpty) {\n                // Added an empty blockQuote - remove it.\n                writer.remove(element);\n                return true;\n              } else if (element.is('blockQuote') && !schema.checkChild(entry.position, element)) {\n                // Added a blockQuote in incorrect place - most likely inside another blockQuote. Unwrap it\n                // so the content inside is not lost.\n                writer.unwrap(element);\n                return true;\n              } else if (element.is('element')) {\n                // Just added an element. Check its children to see if there are no nested blockQuotes somewhere inside.\n                var range = writer.createRangeIn(element);\n\n                var _iterator2 = _createForOfIteratorHelper(range.getItems()),\n                    _step2;\n\n                try {\n                  for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                    var child = _step2.value;\n\n                    if (child.is('blockQuote') && !schema.checkChild(writer.createPositionBefore(child), child)) {\n                      writer.unwrap(child);\n                      return true;\n                    }\n                  }\n                } catch (err) {\n                  _iterator2.e(err);\n                } finally {\n                  _iterator2.f();\n                }\n              }\n            } else if (entry.type == 'remove') {\n              var parent = entry.position.parent;\n\n              if (parent.is('blockQuote') && parent.isEmpty) {\n                // Something got removed and now blockQuote is empty. Remove the blockQuote as well.\n                writer.remove(parent);\n                return true;\n              }\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n\n        return false;\n      });\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"afterInit\",\n    value: function afterInit() {\n      var _this = this;\n\n      var editor = this.editor;\n      var command = editor.commands.get('blockQuote'); // Overwrite default Enter key behavior.\n      // If Enter key is pressed with selection collapsed in empty block inside a quote, break the quote.\n      // This listener is added in afterInit in order to register it after list's feature listener.\n      // We can't use a priority for this, because 'low' is already used by the enter feature, unless\n      // we'd use numeric priority in this case.\n\n      this.listenTo(this.editor.editing.view.document, 'enter', function (evt, data) {\n        var doc = _this.editor.model.document;\n        var positionParent = doc.selection.getLastPosition().parent;\n\n        if (doc.selection.isCollapsed && positionParent.isEmpty && command.value) {\n          _this.editor.execute('blockQuote');\n\n          _this.editor.editing.view.scrollToTheSelection();\n\n          data.preventDefault();\n          evt.stop();\n        }\n      });\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'BlockQuoteEditing';\n    }\n  }]);\n\n  return BlockQuoteEditing;\n}(Plugin);\n\nexport { BlockQuoteEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module block-quote/blockquoteui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport quoteIcon from '@ckeditor/ckeditor5-core/theme/icons/quote.svg';\nimport '../theme/blockquote.css';\n/**\n * The block quote UI plugin.\n *\n * It introduces the `'blockQuote'` button.\n *\n * @extends module:core/plugin~Plugin\n */\nvar BlockQuoteUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(BlockQuoteUI, _Plugin);\n    var _super = _createSuper(BlockQuoteUI);\n    function BlockQuoteUI() {\n        _classCallCheck(this, BlockQuoteUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(BlockQuoteUI, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                editor.ui.componentFactory.add('blockQuote', function (locale) {\n                    var command = editor.commands.get('blockQuote');\n                    var buttonView = new ButtonView(locale);\n                    buttonView.set({\n                        label: t('Block quote'),\n                        icon: quoteIcon,\n                        tooltip: true,\n                        isToggleable: true\n                    });\n                    // Bind button model to command.\n                    buttonView.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled');\n                    // Execute command.\n                    _this.listenTo(buttonView, 'execute', function () {\n                        return editor.execute('blockQuote');\n                    });\n                    return buttonView;\n                });\n            }\n        }]);\n    return BlockQuoteUI;\n}(Plugin);\nexport {\n    BlockQuoteUI as default\n};","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./blockquote.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"65d765bc\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./blockquote.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./blockquote.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module clipboard/clipboard\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ClipboardObserver from \"./clipboardobserver\";\nimport plainTextToHtml from \"./utils/plaintexttohtml\";\nimport normalizeClipboardHtml from \"./utils/normalizeclipboarddata\";\nimport viewToPlainText from \"./utils/viewtoplaintext.js\";\nimport HtmlDataProcessor from '@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor';\n/**\n * The clipboard feature. It is responsible for intercepting the `paste` and `drop` events and\n * passing the pasted content through the clipboard pipeline in order to insert it into the editor's content.\n * It also handles the `cut` and `copy` events to fill the native clipboard with serialized editor's data.\n *\n * Read more about the clipboard integration in {@glink framework/guides/deep-dive/clipboard \"Clipboard\" deep dive} guide.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Clipboard = /*#__PURE__*/function (_Plugin) {\n  _inherits(Clipboard, _Plugin);\n\n  var _super = _createSuper(Clipboard);\n\n  function Clipboard() {\n    _classCallCheck(this, Clipboard);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Clipboard, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var _this = this;\n\n      var editor = this.editor;\n      var modelDocument = editor.model.document;\n      var view = editor.editing.view;\n      var viewDocument = view.document;\n      /**\n       * Data processor used to convert pasted HTML to a view structure.\n       *\n       * @private\n       * @member {module:engine/dataprocessor/htmldataprocessor~HtmlDataProcessor} #_htmlDataProcessor\n       */\n\n      this._htmlDataProcessor = new HtmlDataProcessor();\n      view.addObserver(ClipboardObserver); // The clipboard paste pipeline.\n      // Pasting and dropping is disabled when editor is read-only.\n      // See: https://github.com/ckeditor/ckeditor5-clipboard/issues/26.\n\n      this.listenTo(viewDocument, 'clipboardInput', function (evt) {\n        if (editor.isReadOnly) {\n          evt.stop();\n        }\n      }, {\n        priority: 'highest'\n      });\n      this.listenTo(viewDocument, 'clipboardInput', function (evt, data) {\n        var dataTransfer = data.dataTransfer;\n        var content = '';\n\n        if (dataTransfer.getData('text/html')) {\n          content = normalizeClipboardHtml(dataTransfer.getData('text/html'));\n        } else if (dataTransfer.getData('text/plain')) {\n          content = plainTextToHtml(dataTransfer.getData('text/plain'));\n        }\n\n        content = _this._htmlDataProcessor.toView(content);\n\n        _this.fire('inputTransformation', {\n          content: content,\n          dataTransfer: dataTransfer\n        });\n\n        view.scrollToTheSelection();\n      }, {\n        priority: 'low'\n      });\n      this.listenTo(this, 'inputTransformation', function (evt, data) {\n        if (!data.content.isEmpty) {\n          var dataController = _this.editor.data;\n          var model = _this.editor.model; // Convert the pasted content to a model document fragment.\n          // Conversion is contextual, but in this case we need an \"all allowed\" context and for that\n          // we use the $clipboardHolder item.\n\n          var modelFragment = dataController.toModel(data.content, '$clipboardHolder');\n\n          if (modelFragment.childCount == 0) {\n            return;\n          }\n\n          model.insertContent(modelFragment);\n        }\n      }, {\n        priority: 'low'\n      }); // The clipboard copy/cut pipeline.\n\n      function onCopyCut(evt, data) {\n        var dataTransfer = data.dataTransfer;\n        data.preventDefault();\n        var content = editor.data.toView(editor.model.getSelectedContent(modelDocument.selection));\n        viewDocument.fire('clipboardOutput', {\n          dataTransfer: dataTransfer,\n          content: content,\n          method: evt.name\n        });\n      }\n\n      this.listenTo(viewDocument, 'copy', onCopyCut, {\n        priority: 'low'\n      });\n      this.listenTo(viewDocument, 'cut', function (evt, data) {\n        // Cutting is disabled when editor is read-only.\n        // See: https://github.com/ckeditor/ckeditor5-clipboard/issues/26.\n        if (editor.isReadOnly) {\n          data.preventDefault();\n        } else {\n          onCopyCut(evt, data);\n        }\n      }, {\n        priority: 'low'\n      });\n      this.listenTo(viewDocument, 'clipboardOutput', function (evt, data) {\n        if (!data.content.isEmpty) {\n          data.dataTransfer.setData('text/html', _this._htmlDataProcessor.toData(data.content));\n          data.dataTransfer.setData('text/plain', viewToPlainText(data.content));\n        }\n\n        if (data.method == 'cut') {\n          editor.model.deleteContent(modelDocument.selection);\n        }\n      }, {\n        priority: 'low'\n      });\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'Clipboard';\n    }\n  }]);\n\n  return Clipboard;\n}(Plugin);\n/**\n * Fired with a `content` and `dataTransfer` objects. The `content` which comes from the clipboard (was pasted or dropped)\n * should be processed in order to be inserted into the editor. The `dataTransfer` object is available\n * in case the transformation functions needs access to a raw clipboard data.\n *\n * It is a part of the {@glink framework/guides/deep-dive/clipboard#input-pipeline \"clipboard input pipeline\"}.\n *\n * @see module:clipboard/clipboardobserver~ClipboardObserver\n * @see module:clipboard/clipboard~Clipboard\n * @event module:clipboard/clipboard~Clipboard#event:inputTransformation\n * @param {Object} data Event data.\n * @param {module:engine/view/documentfragment~DocumentFragment} data.content Event data. Content to be inserted into the editor.\n * It can be modified by the event listeners. Read more about the clipboard pipelines in\n * {@glink framework/guides/deep-dive/clipboard \"Clipboard\" deep dive}.\n * @param {module:clipboard/datatransfer~DataTransfer} data.dataTransfer Data transfer instance.\n */\n\n/**\n * Fired on {@link module:engine/view/document~Document#event:copy} and {@link module:engine/view/document~Document#event:cut}\n * with a copy of selected content. The content can be processed before it ends up in the clipboard.\n *\n * It is a part of the {@glink framework/guides/deep-dive/clipboard#output-pipeline \"clipboard output pipeline\"}.\n *\n * @see module:clipboard/clipboardobserver~ClipboardObserver\n * @see module:clipboard/clipboard~Clipboard\n * @event module:engine/view/document~Document#event:clipboardOutput\n * @param {module:clipboard/clipboard~ClipboardOutputEventData} data Event data.\n */\n\n/**\n * The value of the {@link module:engine/view/document~Document#event:clipboardOutput} event.\n *\n * @class module:clipboard/clipboard~ClipboardOutputEventData\n */\n\n/**\n * Data transfer instance.\n *\n * @readonly\n * @member {module:clipboard/datatransfer~DataTransfer} module:clipboard/clipboard~ClipboardOutputEventData#dataTransfer\n */\n\n/**\n * Content to be put into the clipboard. It can be modified by the event listeners.\n * Read more about the clipboard pipelines in {@glink framework/guides/deep-dive/clipboard \"Clipboard\" deep dive}.\n *\n * @member {module:engine/view/documentfragment~DocumentFragment} module:clipboard/clipboard~ClipboardOutputEventData#content\n */\n\n/**\n * Whether the event was triggered by copy or cut operation.\n *\n * @member {'copy'|'cut'} module:clipboard/clipboard~ClipboardOutputEventData#method\n */\n\n\nexport { Clipboard as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module clipboard/clipboardobserver\n */\nimport DomEventObserver from '@ckeditor/ckeditor5-engine/src/view/observer/domeventobserver';\nimport EventInfo from '@ckeditor/ckeditor5-utils/src/eventinfo';\nimport DataTransfer from \"./datatransfer\";\n/**\n * Clipboard events observer.\n *\n * Fires the following events:\n *\n * * {@link module:engine/view/document~Document#event:clipboardInput}\n * * {@link module:engine/view/document~Document#event:dragover}\n * * {@link module:engine/view/document~Document#event:drop}\n * * {@link module:engine/view/document~Document#event:paste}\n * * {@link module:engine/view/document~Document#event:copy}\n * * {@link module:engine/view/document~Document#event:cut}\n *\n * Note that this observer is not available by default (it is not added by the engine).\n * To make it available it needs to be added to {@link module:engine/view/document~Document} by\n * the {@link module:engine/view/view~View#addObserver `View#addObserver()`} method. You can also load the\n * {@link module:clipboard/clipboard~Clipboard} plugin which adds this observer automatically (because it uses it).\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\n\nvar ClipboardObserver = /*#__PURE__*/function (_DomEventObserver) {\n  _inherits(ClipboardObserver, _DomEventObserver);\n\n  var _super = _createSuper(ClipboardObserver);\n\n  function ClipboardObserver(view) {\n    var _this;\n\n    _classCallCheck(this, ClipboardObserver);\n\n    _this = _super.call(this, view);\n    var viewDocument = _this.document;\n    _this.domEventType = ['paste', 'copy', 'cut', 'drop', 'dragover'];\n\n    _this.listenTo(viewDocument, 'paste', handleInput, {\n      priority: 'low'\n    });\n\n    _this.listenTo(viewDocument, 'drop', handleInput, {\n      priority: 'low'\n    });\n\n    function handleInput(evt, data) {\n      data.preventDefault();\n      var targetRanges = data.dropRange ? [data.dropRange] : Array.from(viewDocument.selection.getRanges());\n      var eventInfo = new EventInfo(viewDocument, 'clipboardInput');\n      viewDocument.fire(eventInfo, {\n        dataTransfer: data.dataTransfer,\n        targetRanges: targetRanges\n      }); // If CKEditor handled the input, do not bubble the original event any further.\n      // This helps external integrations recognize that fact and act accordingly.\n      // https://github.com/ckeditor/ckeditor5-upload/issues/92\n\n      if (eventInfo.stop.called) {\n        data.stopPropagation();\n      }\n    }\n\n    return _this;\n  }\n\n  _createClass(ClipboardObserver, [{\n    key: \"onDomEvent\",\n    value: function onDomEvent(domEvent) {\n      var evtData = {\n        dataTransfer: new DataTransfer(domEvent.clipboardData ? domEvent.clipboardData : domEvent.dataTransfer)\n      };\n\n      if (domEvent.type == 'drop') {\n        evtData.dropRange = getDropViewRange(this.view, domEvent);\n      }\n\n      this.fire(domEvent.type, domEvent, evtData);\n    }\n  }]);\n\n  return ClipboardObserver;\n}(DomEventObserver);\n\nexport { ClipboardObserver as default };\n\nfunction getDropViewRange(view, domEvent) {\n  var domDoc = domEvent.target.ownerDocument;\n  var x = domEvent.clientX;\n  var y = domEvent.clientY;\n  var domRange; // Webkit & Blink.\n\n  if (domDoc.caretRangeFromPoint && domDoc.caretRangeFromPoint(x, y)) {\n    domRange = domDoc.caretRangeFromPoint(x, y);\n  } // FF.\n  else if (domEvent.rangeParent) {\n      domRange = domDoc.createRange();\n      domRange.setStart(domEvent.rangeParent, domEvent.rangeOffset);\n      domRange.collapse(true);\n    }\n\n  if (domRange) {\n    return view.domConverter.domRangeToView(domRange);\n  } else {\n    return view.document.selection.getFirstRange();\n  }\n}\n/**\n * Fired as a continuation of {@link #event:paste} and {@link #event:drop} events.\n *\n * It is a part of the {@glink framework/guides/deep-dive/clipboard#input-pipeline \"clipboard input pipeline\"}.\n *\n * Fired with a `dataTransfer` which comes from the clipboard and which content should be processed\n * and inserted into the editor.\n *\n * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}\n * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.\n * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.\n *\n * @see module:clipboard/clipboardobserver~ClipboardObserver\n * @see module:clipboard/clipboard~Clipboard\n * @event module:engine/view/document~Document#event:clipboardInput\n * @param {Object} data Event data.\n * @param {module:clipboard/datatransfer~DataTransfer} data.dataTransfer Data transfer instance.\n * @param {Array.<module:engine/view/range~Range>} data.targetRanges Ranges which are the target of the operation\n * (usually – into which the content should be inserted).\n * If clipboard input was triggered by a paste operation, then these are the selection ranges. If by a drop operation,\n * then it's the drop position (which can be different than the selection at the moment of drop).\n */\n\n/**\n * Fired when user drags content over one of the editables.\n *\n * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.\n *\n * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}\n * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.\n * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.\n *\n * @see module:engine/view/document~Document#event:clipboardInput\n * @event module:engine/view/document~Document#event:dragover\n * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.\n */\n\n/**\n * Fired when user dropped content into one of the editables.\n *\n * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.\n *\n * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}\n * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.\n * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.\n *\n * @see module:engine/view/document~Document#event:clipboardInput\n * @event module:engine/view/document~Document#event:drop\n * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.\n * @param {module:engine/view/range~Range} dropRange The position into which the content is dropped.\n */\n\n/**\n * Fired when user pasted content into one of the editables.\n *\n * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.\n *\n * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}\n * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.\n * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.\n *\n * @see module:engine/view/document~Document#event:clipboardInput\n * @event module:engine/view/document~Document#event:paste\n * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.\n */\n\n/**\n * Fired when user copied content from one of the editables.\n *\n * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.\n *\n * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}\n * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.\n * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.\n *\n * @see module:clipboard/clipboardobserver~ClipboardObserver\n * @event module:engine/view/document~Document#event:copy\n * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.\n */\n\n/**\n * Fired when user cut content from one of the editables.\n *\n * Introduced by {@link module:clipboard/clipboardobserver~ClipboardObserver}.\n *\n * Note that this event is not available by default. To make it available {@link module:clipboard/clipboardobserver~ClipboardObserver}\n * needs to be added to {@link module:engine/view/document~Document} by the {@link module:engine/view/view~View#addObserver} method.\n * It's done by the {@link module:clipboard/clipboard~Clipboard} feature. If it's not loaded, it must be done manually.\n *\n * @see module:clipboard/clipboardobserver~ClipboardObserver\n * @event module:engine/view/document~Document#event:cut\n * @param {module:clipboard/clipboardobserver~ClipboardEventData} data Event data.\n */\n\n/**\n * The value of the {@link module:engine/view/document~Document#event:paste},\n * {@link module:engine/view/document~Document#event:copy} and {@link module:engine/view/document~Document#event:cut} events.\n *\n * In order to access clipboard data use `dataTransfer` property.\n *\n * @class module:clipboard/clipboardobserver~ClipboardEventData\n * @extends module:engine/view/observer/domeventdata~DomEventData\n */\n\n/**\n * Data transfer instance.\n *\n * @readonly\n * @member {module:clipboard/datatransfer~DataTransfer} module:clipboard/clipboardobserver~ClipboardEventData#dataTransfer\n */","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module clipboard/datatransfer\n */\n\n/**\n * Facade over the native [`DataTransfer`](https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer) object.\n */\nvar DataTransfer = /*#__PURE__*/function () {\n  function DataTransfer(nativeDataTransfer) {\n    _classCallCheck(this, DataTransfer);\n\n    /**\n     * The array of files created from the native `DataTransfer#files` or `DataTransfer#items`.\n     *\n     * @readonly\n     * @member {Array.<File>} #files\n     */\n    this.files = getFiles(nativeDataTransfer);\n    /**\n     * The native DataTransfer object.\n     *\n     * @private\n     * @member {DataTransfer} #_native\n     */\n\n    this._native = nativeDataTransfer;\n  }\n  /**\n   * Returns an array of available native content types.\n   *\n   * @returns {Array.<String>}\n   */\n\n\n  _createClass(DataTransfer, [{\n    key: \"getData\",\n\n    /**\n     * Gets data from the data transfer by its mime type.\n     *\n     *\t\tdataTransfer.getData( 'text/plain' );\n     *\n     * @param {String} type The mime type. E.g. `text/html` or `text/plain`.\n     * @returns {String}\n     */\n    value: function getData(type) {\n      return this._native.getData(type);\n    }\n    /**\n     * Sets data in the data transfer.\n     *\n     * @param {String} type The mime type. E.g. `text/html` or `text/plain`.\n     * @param {String} data\n     */\n\n  }, {\n    key: \"setData\",\n    value: function setData(type, data) {\n      this._native.setData(type, data);\n    }\n  }, {\n    key: \"types\",\n    get: function get() {\n      return this._native.types;\n    }\n  }]);\n\n  return DataTransfer;\n}();\n\nexport { DataTransfer as default };\n\nfunction getFiles(nativeDataTransfer) {\n  // DataTransfer.files and items are Array-like and might not have an iterable interface.\n  var files = nativeDataTransfer.files ? Array.from(nativeDataTransfer.files) : [];\n  var items = nativeDataTransfer.items ? Array.from(nativeDataTransfer.items) : [];\n\n  if (files.length) {\n    return files;\n  } // Chrome have empty DataTransfer.files, but let get files through the items interface.\n\n\n  return items.filter(function (item) {\n    return item.kind === 'file';\n  }).map(function (item) {\n    return item.getAsFile();\n  });\n}","import \"core-js/modules/es6.regexp.replace\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module clipboard/utils/normalizeclipboarddata\n */\n\n/**\n * Removes some popular browser quirks out of the clipboard data (HTML).\n *\n * @param {String} data The HTML data to normalize.\n * @returns {String} Normalized HTML.\n */\nexport default function normalizeClipboardData(data) {\n  return data.replace(/<span(?: class=\"Apple-converted-space\"|)>(\\s+)<\\/span>/g, function (fullMatch, spaces) {\n    // Handle the most popular and problematic case when even a single space becomes an nbsp;.\n    // Decode those to normal spaces. Read more in https://github.com/ckeditor/ckeditor5-clipboard/issues/2.\n    if (spaces.length == 1) {\n      return ' ';\n    }\n\n    return spaces;\n  });\n}","import \"core-js/modules/es6.regexp.replace\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module clipboard/utils/plaintexttohtml\n */\n\n/**\n * Converts plain text to its HTML-ized version.\n *\n * @param {String} text The plain text to convert.\n * @returns {String} HTML generated from the plain text.\n */\nexport default function plainTextToHtml(text) {\n  text = text // Encode <>.\n  .replace(/</g, '&lt;').replace(/>/g, '&gt;') // Creates paragraphs for every line breaks.\n  .replace(/\\n/g, '</p><p>') // Preserve trailing spaces (only the first and last one – the rest is handled below).\n  .replace(/^\\s/, '&nbsp;').replace(/\\s$/, '&nbsp;') // Preserve other subsequent spaces now.\n  .replace(/\\s\\s/g, ' &nbsp;');\n\n  if (text.indexOf('</p><p>') > -1) {\n    // If we created paragraphs above, add the trailing ones.\n    text = \"<p>\".concat(text, \"</p>\");\n  } // TODO:\n  // * What about '\\nfoo' vs ' foo'?\n\n\n  return text;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es7.array.includes\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module clipboard/utils/viewtoplaintext\n */\n// Elements which should not have empty-line padding.\n// Most `view.ContainerElement` want to be separate by new-line, but some are creating one structure\n// together (like `<li>`) so it is better to separate them by only one \"\\n\".\nvar smallPaddingElements = ['figcaption', 'li'];\n/**\n * Converts {@link module:engine/view/item~Item view item} and all of its children to plain text.\n *\n * @param {module:engine/view/item~Item} viewItem View item to convert.\n * @returns {String} Plain text representation of `viewItem`.\n */\n\nexport default function viewToPlainText(viewItem) {\n  var text = '';\n\n  if (viewItem.is('text') || viewItem.is('textProxy')) {\n    // If item is `Text` or `TextProxy` simple take its text data.\n    text = viewItem.data;\n  } else if (viewItem.is('img') && viewItem.hasAttribute('alt')) {\n    // Special case for images - use alt attribute if it is provided.\n    text = viewItem.getAttribute('alt');\n  } else {\n    // Other elements are document fragments, attribute elements or container elements.\n    // They don't have their own text value, so convert their children.\n    var prev = null;\n\n    var _iterator = _createForOfIteratorHelper(viewItem.getChildren()),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var child = _step.value;\n        var childText = viewToPlainText(child); // Separate container element children with one or more new-line characters.\n\n        if (prev && (prev.is('containerElement') || child.is('containerElement'))) {\n          if (smallPaddingElements.includes(prev.name) || smallPaddingElements.includes(child.name)) {\n            text += '\\n';\n          } else {\n            text += '\\n\\n';\n          }\n        }\n\n        text += childText;\n        prev = child;\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  }\n\n  return text;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/command\n */\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * The base class for CKEditor commands.\n *\n * Commands are the main way to manipulate editor contents and state. They are mostly used by UI elements (or by other\n * commands) to make changes in the model. Commands are available in every part of code that has access to\n * the {@link module:core/editor/editor~Editor editor} instance.\n *\n * Instances of registered commands can be retrieved from {@link module:core/editor/editor~Editor#commands `editor.commands`}.\n * The easiest way to execute a command is through {@link module:core/editor/editor~Editor#execute `editor.execute()`}.\n *\n * By default commands are disabled when the editor is in {@link module:core/editor/editor~Editor#isReadOnly read-only} mode.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar Command = /*#__PURE__*/function () {\n  /**\n   * Creates a new `Command` instance.\n   *\n   * @param {module:core/editor/editor~Editor} editor Editor on which this command will be used.\n   */\n  function Command(editor) {\n    var _this = this;\n\n    _classCallCheck(this, Command);\n\n    /**\n     * The editor on which this command will be used.\n     *\n     * @readonly\n     * @member {module:core/editor/editor~Editor}\n     */\n    this.editor = editor;\n    /**\n     * The value of the command. A concrete command class should define what it represents for it.\n     *\n     * For example, the `'bold'` command's value indicates whether the selection starts in a bolded text.\n     * And the value of the `'link'` command may be an object with links details.\n     *\n     * It is possible for a command to have no value (e.g. for stateless actions such as `'imageUpload'`).\n     *\n     * A concrete command class should control this value by overriding the {@link #refresh `refresh()`} method.\n     *\n     * @observable\n     * @readonly\n     * @member #value\n     */\n\n    this.set('value', undefined);\n    /**\n     * Flag indicating whether a command is enabled or disabled.\n     * A disabled command will do nothing when executed.\n     *\n     * A concrete command class should control this value by overriding the {@link #refresh `refresh()`} method.\n     *\n     * It is possible to disable a command from \"outside\". For instance, in your integration you may want to disable\n     * a certain set of commands for the time being. To do that, you can use the fact that `isEnabled` is observable\n     * and it fires the `set:isEnabled` event every time anyone tries to modify its value:\n     *\n     *\t\tfunction disableCommand( cmd ) {\n     *\t\t\tcmd.on( 'set:isEnabled', forceDisable, { priority: 'highest' } );\n     *\n     *\t\t\tcmd.isEnabled = false;\n     *\n     *\t\t\t// Make it possible to enable the command again.\n     *\t\t\treturn () => {\n     *\t\t\t\tcmd.off( 'set:isEnabled', forceDisable );\n     *\t\t\t\tcmd.refresh();\n     *\t\t\t};\n     *\n     *\t\t\tfunction forceDisable( evt ) {\n     *\t\t\t\tevt.return = false;\n     *\t\t\t\tevt.stop();\n     *\t\t\t}\n     *\t\t}\n     *\n     *\t\t// Usage:\n     *\n     *\t\t// Disabling the command.\n     *\t\tconst enableBold = disableCommand( editor.commands.get( 'bold' ) );\n     *\n     *\t\t// Enabling the command again.\n     *\t\tenableBold();\n     *\n     * @observable\n     * @readonly\n     * @member {Boolean} #isEnabled\n     */\n\n    this.set('isEnabled', false);\n    /**\n     * Holds identifiers for {@link #forceDisabled} mechanism.\n     *\n     * @type {Set.<String>}\n     * @private\n     */\n\n    this._disableStack = new Set();\n    this.decorate('execute'); // By default every command is refreshed when changes are applied to the model.\n\n    this.listenTo(this.editor.model.document, 'change', function () {\n      _this.refresh();\n    });\n    this.on('execute', function (evt) {\n      if (!_this.isEnabled) {\n        evt.stop();\n      }\n    }, {\n      priority: 'high'\n    }); // By default commands are disabled when the editor is in read-only mode.\n\n    this.listenTo(editor, 'change:isReadOnly', function (evt, name, value) {\n      if (value) {\n        _this.forceDisabled('readOnlyMode');\n      } else {\n        _this.clearForceDisabled('readOnlyMode');\n      }\n    });\n  }\n  /**\n   * Refreshes the command. The command should update its {@link #isEnabled} and {@link #value} properties\n   * in this method.\n   *\n   * This method is automatically called when\n   * {@link module:engine/model/document~Document#event:change any changes are applied to the document}.\n   */\n\n\n  _createClass(Command, [{\n    key: \"refresh\",\n    value: function refresh() {\n      this.isEnabled = true;\n    }\n    /**\n     * Disables the command.\n     *\n     * Command may be disabled by multiple features or algorithms (at once). When disabling a command, unique id should be passed\n     * (e.g. feature name). The same identifier should be used when {@link #clearForceDisabled enabling back} the command.\n     * The command becomes enabled only after all features {@link #clearForceDisabled enabled it back}.\n     *\n     * Disabling and enabling a command:\n     *\n     *\t\tcommand.isEnabled; // -> true\n     *\t\tcommand.forceDisabled( 'MyFeature' );\n     *\t\tcommand.isEnabled; // -> false\n     *\t\tcommand.clearForceDisabled( 'MyFeature' );\n     *\t\tcommand.isEnabled; // -> true\n     *\n     * Command disabled by multiple features:\n     *\n     *\t\tcommand.forceDisabled( 'MyFeature' );\n     *\t\tcommand.forceDisabled( 'OtherFeature' );\n     *\t\tcommand.clearForceDisabled( 'MyFeature' );\n     *\t\tcommand.isEnabled; // -> false\n     *\t\tcommand.clearForceDisabled( 'OtherFeature' );\n     *\t\tcommand.isEnabled; // -> true\n     *\n     * Multiple disabling with the same identifier is redundant:\n     *\n     *\t\tcommand.forceDisabled( 'MyFeature' );\n     *\t\tcommand.forceDisabled( 'MyFeature' );\n     *\t\tcommand.clearForceDisabled( 'MyFeature' );\n     *\t\tcommand.isEnabled; // -> true\n     *\n     * **Note:** some commands or algorithms may have more complex logic when it comes to enabling or disabling certain commands,\n     * so the command might be still disabled after {@link #clearForceDisabled} was used.\n     *\n     * @param {String} id Unique identifier for disabling. Use the same id when {@link #clearForceDisabled enabling back} the command.\n     */\n\n  }, {\n    key: \"forceDisabled\",\n    value: function forceDisabled(id) {\n      this._disableStack.add(id);\n\n      if (this._disableStack.size == 1) {\n        this.on('set:isEnabled', forceDisable, {\n          priority: 'highest'\n        });\n        this.isEnabled = false;\n      }\n    }\n    /**\n     * Clears forced disable previously set through {@link #clearForceDisabled}. See {@link #clearForceDisabled}.\n     *\n     * @param {String} id Unique identifier, equal to the one passed in {@link #forceDisabled} call.\n     */\n\n  }, {\n    key: \"clearForceDisabled\",\n    value: function clearForceDisabled(id) {\n      this._disableStack.delete(id);\n\n      if (this._disableStack.size == 0) {\n        this.off('set:isEnabled', forceDisable);\n        this.refresh();\n      }\n    }\n    /**\n     * Executes the command.\n     *\n     * A command may accept parameters. They will be passed from {@link module:core/editor/editor~Editor#execute `editor.execute()`}\n     * to the command.\n     *\n     * The `execute()` method will automatically abort when the command is disabled ({@link #isEnabled} is `false`).\n     * This behavior is implemented by a high priority listener to the {@link #event:execute} event.\n     *\n     * In order to see how to disable a command from \"outside\" see the {@link #isEnabled} documentation.\n     *\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {}\n    /**\n     * Destroys the command.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.stopListening();\n    }\n    /**\n     * Event fired by the {@link #execute} method. The command action is a listener to this event so it's\n     * possible to change/cancel the behavior of the command by listening to this event.\n     *\n     * See {@link module:utils/observablemixin~ObservableMixin#decorate} for more information and samples.\n     *\n     * **Note:** This event is fired even if command is disabled. However, it is automatically blocked\n     * by a high priority listener in order to prevent command execution.\n     *\n     * @event execute\n     */\n\n  }]);\n\n  return Command;\n}();\n\nexport { Command as default };\nmix(Command, ObservableMixin); // Helper function that forces command to be disabled.\n\nfunction forceDisable(evt) {\n  evt.return = false;\n  evt.stop();\n}","import \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/commandcollection\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Collection of commands. Its instance is available in {@link module:core/editor/editor~Editor#commands `editor.commands`}.\n */\n\nvar CommandCollection = /*#__PURE__*/function () {\n  /**\n   * Creates collection instance.\n   */\n  function CommandCollection() {\n    _classCallCheck(this, CommandCollection);\n\n    /**\n     * Command map.\n     *\n     * @private\n     * @member {Map}\n     */\n    this._commands = new Map();\n  }\n  /**\n   * Registers a new command.\n   *\n   * @param {String} commandName The name of the command.\n   * @param {module:core/command~Command} command\n   */\n\n\n  _createClass(CommandCollection, [{\n    key: \"add\",\n    value: function add(commandName, command) {\n      this._commands.set(commandName, command);\n    }\n    /**\n     * Retrieves a command from the collection.\n     *\n     * @param {String} commandName The name of the command.\n     * @returns {module:core/command~Command}\n     */\n\n  }, {\n    key: \"get\",\n    value: function get(commandName) {\n      return this._commands.get(commandName);\n    }\n    /**\n     * Executes a command.\n     *\n     * @param {String} commandName The name of the command.\n     * @param {*} [...commandParams] Command parameters.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(commandName) {\n      var command = this.get(commandName);\n\n      if (!command) {\n        /**\n         * Command does not exist.\n         *\n         * @error commandcollection-command-not-found\n         * @param {String} commandName Name of the command.\n         */\n        throw new CKEditorError('commandcollection-command-not-found: Command does not exist.', this, {\n          commandName: commandName\n        });\n      }\n\n      for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n        args[_key - 1] = arguments[_key];\n      }\n\n      command.execute.apply(command, args);\n    }\n    /**\n     * Returns iterator of command names.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"names\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function names() {\n      return regeneratorRuntime.wrap(function names$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              return _context.delegateYield(this._commands.keys(), \"t0\", 1);\n\n            case 1:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, names, this);\n    })\n    /**\n     * Returns iterator of command instances.\n     *\n     * @returns {Iterable.<module:core/command~Command>}\n     */\n\n  }, {\n    key: \"commands\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function commands() {\n      return regeneratorRuntime.wrap(function commands$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              return _context2.delegateYield(this._commands.values(), \"t0\", 1);\n\n            case 1:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, commands, this);\n    })\n    /**\n     * Iterable interface.\n     *\n     * Returns `[ commandName, commandInstance ]` pairs.\n     *\n     * @returns {Iterable.<Array>}\n     */\n\n  }, {\n    key: Symbol.iterator,\n    value: function value() {\n      return this._commands[Symbol.iterator]();\n    }\n    /**\n     * Destroys all collection commands.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var _iterator = _createForOfIteratorHelper(this.commands()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var command = _step.value;\n          command.destroy();\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n  }]);\n\n  return CommandCollection;\n}();\n\nexport { CommandCollection as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/editingkeystrokehandler\n */\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\n/**\n * A keystroke handler for editor editing. Its instance is available\n * in {@link module:core/editor/editor~Editor#keystrokes} so plugins\n * can register their keystrokes.\n *\n * E.g. an undo plugin would do this:\n *\n *\t\teditor.keystrokes.set( 'Ctrl+Z', 'undo' );\n *\t\teditor.keystrokes.set( 'Ctrl+Shift+Z', 'redo' );\n *\t\teditor.keystrokes.set( 'Ctrl+Y', 'redo' );\n *\n * @extends module:utils/keystrokehandler~KeystrokeHandler\n */\n\nvar EditingKeystrokeHandler = /*#__PURE__*/function (_KeystrokeHandler) {\n  _inherits(EditingKeystrokeHandler, _KeystrokeHandler);\n\n  var _super = _createSuper(EditingKeystrokeHandler);\n\n  /**\n   * Creates an instance of the keystroke handler.\n   *\n   * @param {module:core/editor/editor~Editor} editor\n   */\n  function EditingKeystrokeHandler(editor) {\n    var _this;\n\n    _classCallCheck(this, EditingKeystrokeHandler);\n\n    _this = _super.call(this);\n    /**\n     * The editor instance.\n     *\n     * @readonly\n     * @member {module:core/editor/editor~Editor}\n     */\n\n    _this.editor = editor;\n    return _this;\n  }\n  /**\n   * Registers a handler for the specified keystroke.\n   *\n   * The handler can be specified as a command name or a callback.\n   *\n   * @param {String|Array.<String|Number>} keystroke Keystroke defined in a format accepted by\n   * the {@link module:utils/keyboard~parseKeystroke} function.\n   * @param {Function|String} callback If a string is passed, then the keystroke will\n   * {@link module:core/editor/editor~Editor#execute execute a command}.\n   * If a function, then it will be called with the\n   * {@link module:engine/view/observer/keyobserver~KeyEventData key event data} object and\n   * a `cancel()` helper to both `preventDefault()` and `stopPropagation()` of the event.\n   * @param {Object} [options={}] Additional options.\n   * @param {module:utils/priorities~PriorityString|Number} [options.priority='normal'] The priority of the keystroke\n   * callback. The higher the priority value the sooner the callback will be executed. Keystrokes having the same priority\n   * are called in the order they were added.\n   */\n\n\n  _createClass(EditingKeystrokeHandler, [{\n    key: \"set\",\n    value: function set(keystroke, callback) {\n      var _this2 = this;\n\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n      if (typeof callback == 'string') {\n        var commandName = callback;\n\n        callback = function callback(evtData, cancel) {\n          _this2.editor.execute(commandName);\n\n          cancel();\n        };\n      }\n\n      _get(_getPrototypeOf(EditingKeystrokeHandler.prototype), \"set\", this).call(this, keystroke, callback, options);\n    }\n  }]);\n\n  return EditingKeystrokeHandler;\n}(KeystrokeHandler);\n\nexport { EditingKeystrokeHandler as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/editor/editor\n */\nimport Config from '@ckeditor/ckeditor5-utils/src/config';\nimport EditingController from '@ckeditor/ckeditor5-engine/src/controller/editingcontroller';\nimport PluginCollection from \"../plugincollection\";\nimport CommandCollection from \"../commandcollection\";\nimport Locale from '@ckeditor/ckeditor5-utils/src/locale';\nimport DataController from '@ckeditor/ckeditor5-engine/src/controller/datacontroller';\nimport Conversion from '@ckeditor/ckeditor5-engine/src/conversion/conversion';\nimport Model from '@ckeditor/ckeditor5-engine/src/model/model';\nimport EditingKeystrokeHandler from \"../editingkeystrokehandler\";\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Class representing a basic, generic editor.\n *\n * Check out the list of its subclasses to learn about specific editor implementations.\n *\n * All editor implementations (like {@link module:editor-classic/classiceditor~ClassicEditor} or\n * {@link module:editor-inline/inlineeditor~InlineEditor}) should extend this class. They can add their\n * own methods and properties.\n *\n * When you are implementing a plugin, then this editor represents the API\n * which your plugin can expect to get when using its {@link module:core/plugin~Plugin#editor} property.\n *\n * This API should be sufficient in order to implement the \"editing\" part of your feature\n * (schema definition, conversion, commands, keystrokes, etc.).\n * It does not define the editor UI, which is available only if the\n * the specific editor implements also the {@link module:core/editor/editorwithui~EditorWithUI} interface\n * (as most editor implementations do).\n *\n * @abstract\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar Editor = /*#__PURE__*/function () {\n  /**\n   * Creates a new instance of the Editor class.\n   *\n   * Usually, not to be used directly. See the static {@link module:core/editor/editor~Editor.create `create()`} method.\n   *\n   * @param {Object} [config] The editor config.\n   */\n  function Editor(config) {\n    var _this = this;\n\n    _classCallCheck(this, Editor);\n\n    var availablePlugins = this.constructor.builtinPlugins;\n    /**\n     * Holds all configurations specific to this editor instance.\n     *\n     *\t\teditor.config.get( 'image.toolbar' );\n     *\t\t// -> [ 'imageStyle:full', 'imageStyle:side', '|', 'imageTextAlternative' ]\n     *\n     * @readonly\n     * @member {module:utils/config~Config}\n     */\n\n    this.config = new Config(config, this.constructor.defaultConfig);\n    this.config.define('plugins', availablePlugins);\n    /**\n     * The plugins loaded and in use by this editor instance.\n     *\n     *\t\teditor.plugins.get( 'Clipboard' ); // -> instance of the Clipboard plugin.\n     *\n     * @readonly\n     * @member {module:core/plugincollection~PluginCollection}\n     */\n\n    this.plugins = new PluginCollection(this, availablePlugins);\n    /**\n     * Commands registered to the editor.\n     *\n     * Use the shorthand {@link #execute `editor.execute()`} method to execute commands:\n     *\n     *\t\t// Execute the bold command:\n     *\t\teditor.execute( 'bold' );\n     *\n     *\t\t// Check the state of the bold command:\n     *\t\teditor.commands.get( 'bold' ).value;\n     *\n     * @readonly\n     * @member {module:core/commandcollection~CommandCollection}\n     */\n\n    this.commands = new CommandCollection();\n    var languageConfig = this.config.get('language') || {};\n    /**\n     * @readonly\n     * @member {module:utils/locale~Locale}\n     */\n\n    this.locale = new Locale({\n      uiLanguage: typeof languageConfig === 'string' ? languageConfig : languageConfig.ui,\n      contentLanguage: this.config.get('language.content')\n    });\n    /**\n     * Shorthand for {@link module:utils/locale~Locale#t}.\n     *\n     * @see module:utils/locale~Locale#t\n     * @method #t\n     */\n\n    this.t = this.locale.t;\n    /**\n     * Indicates the editor life-cycle state.\n     *\n     * The editor is in one of the following states:\n     *\n     * * `initializing` - during the editor initialization (before {@link module:core/editor/editor~Editor.create `Editor.create()`})\n     * finished its job,\n     * * `ready` - after the promise returned by the {@link module:core/editor/editor~Editor.create `Editor.create()`}\n     * method is resolved,\n     * * `destroyed` - once the {@link #destroy `editor.destroy()`} method was called.\n     *\n     * @observable\n     * @member {'initializing'|'ready'|'destroyed'} #state\n     */\n\n    this.set('state', 'initializing');\n    this.once('ready', function () {\n      return _this.state = 'ready';\n    }, {\n      priority: 'high'\n    });\n    this.once('destroy', function () {\n      return _this.state = 'destroyed';\n    }, {\n      priority: 'high'\n    });\n    /**\n     * Defines whether this editor is in read-only mode.\n     *\n     * In read-only mode the editor {@link #commands commands} are disabled so it is not possible\n     * to modify the document by using them. Also, the editable element(s) become non-editable.\n     *\n     * In order to make the editor read-only, you can set this value directly:\n     *\n     *\t\teditor.isReadOnly = true;\n     *\n     * @observable\n     * @member {Boolean} #isReadOnly\n     */\n\n    this.set('isReadOnly', false);\n    /**\n     * The editor's model.\n     *\n     * The central point of the editor's abstract data model.\n     *\n     * @readonly\n     * @member {module:engine/model/model~Model}\n     */\n\n    this.model = new Model();\n    /**\n     * The {@link module:engine/controller/datacontroller~DataController data controller}.\n     * Used e.g. for setting and retrieving editor data.\n     *\n     * @readonly\n     * @member {module:engine/controller/datacontroller~DataController}\n     */\n\n    this.data = new DataController(this.model);\n    /**\n     * The {@link module:engine/controller/editingcontroller~EditingController editing controller}.\n     * Controls user input and rendering the content for editing.\n     *\n     * @readonly\n     * @member {module:engine/controller/editingcontroller~EditingController}\n     */\n\n    this.editing = new EditingController(this.model);\n    this.editing.view.document.bind('isReadOnly').to(this);\n    /**\n     * Conversion manager through which you can register model to view and view to model converters.\n     *\n     * See {@link module:engine/conversion/conversion~Conversion}'s documentation to learn how to add converters.\n     *\n     * @readonly\n     * @member {module:engine/conversion/conversion~Conversion}\n     */\n\n    this.conversion = new Conversion([this.editing.downcastDispatcher, this.data.downcastDispatcher], this.data.upcastDispatcher);\n    this.conversion.addAlias('dataDowncast', this.data.downcastDispatcher);\n    this.conversion.addAlias('editingDowncast', this.editing.downcastDispatcher);\n    /**\n     * Instance of the {@link module:core/editingkeystrokehandler~EditingKeystrokeHandler}.\n     *\n     * It allows setting simple keystrokes:\n     *\n     *\t\t// Execute the bold command on Ctrl+E:\n     *\t\teditor.keystrokes.set( 'Ctrl+E', 'bold' );\n     *\n     *\t\t// Execute your own callback:\n     *\t\teditor.keystrokes.set( 'Ctrl+E', ( data, cancel ) => {\n     *\t\t\tconsole.log( data.keyCode );\n     *\n     *\t\t\t// Prevent default (native) action and stop the underlying keydown event\n     *\t\t\t// so no other editor feature will interfere.\n     *\t\t\tcancel();\n     *\t\t} );\n     *\n     * Note: Certain, typing oriented keystrokes (like <kbd>Backspace</kbd> or <kbd>Enter</kbd>) are handled\n     * by low level mechanism and trying to listen to them via the keystroke handler will not work reliably.\n     * To handle those specific keystrokes see the events fired by the\n     * {@link module:engine/view/document~Document editing view document} (`editor.editing.view.document`).\n     *\n     * @readonly\n     * @member {module:core/editingkeystrokehandler~EditingKeystrokeHandler}\n     */\n\n    this.keystrokes = new EditingKeystrokeHandler(this);\n    this.keystrokes.listenTo(this.editing.view.document);\n  }\n  /**\n   * Loads and initializes plugins specified in the config.\n   *\n   * @returns {Promise.<module:core/plugin~LoadedPlugins>} A promise which resolves\n   * once the initialization is completed providing an array of loaded plugins.\n   */\n\n\n  _createClass(Editor, [{\n    key: \"initPlugins\",\n    value: function initPlugins() {\n      var config = this.config;\n      var plugins = config.get('plugins') || [];\n      var removePlugins = config.get('removePlugins') || [];\n      var extraPlugins = config.get('extraPlugins') || [];\n      return this.plugins.init(plugins.concat(extraPlugins), removePlugins);\n    }\n    /**\n     * Destroys the editor instance, releasing all resources used by it.\n     *\n     * **Note** The editor cannot be destroyed during the initialization phase so if it is called\n     * while the editor {@link #state is being initialized}, it will wait for the editor initialization before destroying it.\n     *\n     * @fires destroy\n     * @returns {Promise} A promise that resolves once the editor instance is fully destroyed.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var _this2 = this;\n\n      var readyPromise = Promise.resolve();\n\n      if (this.state == 'initializing') {\n        readyPromise = new Promise(function (resolve) {\n          return _this2.once('ready', resolve);\n        });\n      }\n\n      return readyPromise.then(function () {\n        _this2.fire('destroy');\n\n        _this2.stopListening();\n\n        _this2.commands.destroy();\n      }).then(function () {\n        return _this2.plugins.destroy();\n      }).then(function () {\n        _this2.model.destroy();\n\n        _this2.data.destroy();\n\n        _this2.editing.destroy();\n\n        _this2.keystrokes.destroy();\n      });\n    }\n    /**\n     * Executes specified command with given parameters.\n     *\n     * Shorthand for:\n     *\n     *\t\teditor.commands.get( commandName ).execute( ... );\n     *\n     * @param {String} commandName Name of command to execute.\n     * @param {*} [...commandParams] Command parameters.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      try {\n        var _this$commands;\n\n        (_this$commands = this.commands).execute.apply(_this$commands, arguments);\n      } catch (err) {\n        CKEditorError.rethrowUnexpectedError(err, this);\n      }\n    }\n    /**\n     * Creates and initializes a new editor instance.\n     *\n     * This is an abstract method. Every editor type needs to implement its own initialization logic.\n     *\n     * See the `create()` methods of the existing editor types to learn how to use them:\n     *\n     * * {@link module:editor-classic/classiceditor~ClassicEditor.create `ClassicEditor.create()`}\n     * * {@link module:editor-balloon/ballooneditor~BalloonEditor.create `BalloonEditor.create()`}\n     * * {@link module:editor-decoupled/decouplededitor~DecoupledEditor.create `DecoupledEditor.create()`}\n     * * {@link module:editor-inline/inlineeditor~InlineEditor.create `InlineEditor.create()`}\n     *\n     * @abstract\n     * @method module:core/editor/editor~Editor.create\n     */\n\n  }]);\n\n  return Editor;\n}();\n\nexport { Editor as default };\nmix(Editor, ObservableMixin);\n/**\n * Fired when {@link module:engine/controller/datacontroller~DataController#event:ready data} and all additional\n * editor components are ready.\n *\n * Note: This event is most useful for plugin developers. When integrating the editor with your website or\n * application you do not have to listen to `editor#ready` because when the promise returned by the static\n * {@link module:core/editor/editor~Editor.create `Editor.create()`} event is resolved, the editor is already ready.\n * In fact, since the first moment when the editor instance is available to you is inside `then()`'s callback,\n * you cannot even add a listener to the `editor#ready` event.\n *\n * See also the {@link #state `editor.state`} property.\n *\n * @event ready\n */\n\n/**\n * Fired when this editor instance is destroyed. The editor at this point is not usable and this event should be used to\n * perform the clean-up in any plugin.\n *\n *\n * See also the {@link #state `editor.state`} property.\n *\n * @event destroy\n */\n\n/**\n * This error is thrown when a user tries to use a `<textarea>` element to create a non-classic editor in it.\n *\n * Textarea element represents a plain-text and cannot be used as a editable root element with included CKEditor5.\n * Content of an editor should be nicely present to the user and show him how it's going to looks like. Textarea element\n * doesn't support such behavior.\n *\n * Only {@glink builds/guides/overview#classic-editor Classic Editor} has implemented a special system, which\n * **replace** DOM element and load data from it\n * ({@link module:editor-classic/classiceditor~ClassicEditor.create more information}). All other editors\n * use an existing element, load data from it and make this element editable. Details about behaviour of each editor\n * might be found in an associated description of a `create` method of each editor.\n *\n * @error editor-wrong-element\n */\n\n/**\n * An array of plugins built into this editor class.\n * It is used in CKEditor 5 builds to provide a list of plugins which are later automatically initialized\n * during the editor initialization.\n *\n * They will be automatically initialized by the editor, unless listed in `config.removePlugins` and\n * unless `config.plugins` is passed.\n *\n *\t\t// Build some plugins into the editor class first.\n *\t\tClassicEditor.builtinPlugins = [ FooPlugin, BarPlugin ];\n *\n *\t\t// Normally, you need to define config.plugins, but since ClassicEditor.builtinPlugins was\n *\t\t// defined, now you can call create() without any configuration.\n *\t\tClassicEditor\n *\t\t\t.create( sourceElement )\n *\t\t\t.then( editor => {\n *\t\t\t\teditor.plugins.get( FooPlugin ); // -> instance of the Foo plugin\n *\t\t\t\teditor.plugins.get( BarPlugin ); // -> instance of the Bar plugin\n *\t\t\t} );\n *\n *\t\tClassicEditor\n *\t\t\t.create( sourceElement, {\n *\t\t\t\t// Don't initialize this plugins (note: it's defined by a string):\n *\t\t\t\tremovePlugins: [ 'Foo' ]\n *\t\t\t} )\n *\t\t\t.then( editor => {\n *\t\t\t\teditor.plugins.get( FooPlugin ); // -> undefined\n *\t\t\t\teditor.config.get( BarPlugin ); // -> instance of the Bar plugin\n *\t\t\t} );\n *\n *\t\tClassicEditor\n *\t\t\t.create( sourceElement, {\n *\t\t\t\t// Load only this plugin. Can also be define by a string if\n *\t\t\t\t// this plugin was built into the editor class.\n *\t\t\t\tplugins: [ FooPlugin ]\n *\t\t\t} )\n *\t\t\t.then( editor => {\n *\t\t\t\teditor.plugins.get( FooPlugin ); // -> instance of the Foo plugin\n *\t\t\t\teditor.config.get( BarPlugin ); // -> undefined\n *\t\t\t} );\n *\n * See also {@link module:core/editor/editor~Editor.defaultConfig}.\n *\n * @static\n * @member {Array.<Function>} module:core/editor/editor~Editor.builtinPlugins\n */\n\n/**\n * The default config which is built into the editor class.\n * It is used in CKEditor 5 builds to provide the default config options which are later used during editor initialization.\n *\n *\t\tClassicEditor.defaultConfig = {\n *\t\t\tfoo: 1,\n *\t\t\tbar: 2\n *\t\t};\n *\n *\t\tClassicEditor\n *\t\t\t.create( sourceElement )\n *\t\t\t.then( editor => {\n *\t\t\t\teditor.config.get( 'foo' ); // -> 1\n *\t\t\t\teditor.config.get( 'bar' ); // -> 2\n *\t\t\t} );\n *\n *\t\t// The default options can be overridden by the config passed to create().\n *\t\tClassicEditor\n *\t\t\t.create( sourceElement, { bar: 3 } )\n *\t\t\t.then( editor => {\n *\t\t\t\teditor.config.get( 'foo' ); // -> 1\n *\t\t\t\teditor.config.get( 'bar' ); // -> 3\n *\t\t\t} );\n *\n * See also {@link module:core/editor/editor~Editor.builtinPlugins}.\n *\n * @static\n * @member {Object} module:core/editor/editor~Editor.defaultConfig\n */","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/editor/editorui\n */\n\n/* globals console */\nimport ComponentFactory from '@ckeditor/ckeditor5-ui/src/componentfactory';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * A class providing the minimal interface that is required to successfully bootstrap any editor UI.\n *\n * @mixes module:utils/emittermixin~EmitterMixin\n */\n\nvar EditorUI = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the editor UI class.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor instance.\n   */\n  function EditorUI(editor) {\n    var _this = this;\n\n    _classCallCheck(this, EditorUI);\n\n    /**\n     * The editor that the UI belongs to.\n     *\n     * @readonly\n     * @member {module:core/editor/editor~Editor} #editor\n     */\n    this.editor = editor;\n    /**\n     * An instance of the {@link module:ui/componentfactory~ComponentFactory}, a registry used by plugins\n     * to register factories of specific UI components.\n     *\n     * @readonly\n     * @member {module:ui/componentfactory~ComponentFactory} #componentFactory\n     */\n\n    this.componentFactory = new ComponentFactory(editor);\n    /**\n     * Stores the information about the editor UI focus and propagates it so various plugins and components\n     * are unified as a focus group.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker} #focusTracker\n     */\n\n    this.focusTracker = new FocusTracker();\n    /**\n     * Stores all editable elements used by the editor instance.\n     *\n     * @private\n     * @member {Map.<String,HTMLElement>}\n     */\n\n    this._editableElementsMap = new Map(); // Informs UI components that should be refreshed after layout change.\n\n    this.listenTo(editor.editing.view.document, 'layoutChanged', function () {\n      return _this.update();\n    });\n  }\n  /**\n   * The main (outermost) DOM element of the editor UI.\n   *\n   * For example, in {@link module:editor-classic/classiceditor~ClassicEditor} it is a `<div>` which\n   * wraps the editable element and the toolbar. In {@link module:editor-inline/inlineeditor~InlineEditor}\n   * it is the editable element itself (as there is no other wrapper). However, in\n   * {@link module:editor-decoupled/decouplededitor~DecoupledEditor} it is set to `null` because this editor does not\n   * come with a single \"main\" HTML element (its editable element and toolbar are separate).\n   *\n   * This property can be understood as a shorthand for retrieving the element that a specific editor integration\n   * considers to be its main DOM element.\n   *\n   * @readonly\n   * @member {HTMLElement|null} #element\n   */\n\n\n  _createClass(EditorUI, [{\n    key: \"update\",\n\n    /**\n     * Fires the {@link module:core/editor/editorui~EditorUI#event:update `update`} event.\n     *\n     * This method should be called when the editor UI (e.g. positions of its balloons) needs to be updated due to\n     * some environmental change which CKEditor 5 is not aware of (e.g. resize of a container in which it is used).\n     */\n    value: function update() {\n      this.fire('update');\n    }\n    /**\n     * Destroys the UI.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.stopListening();\n      this.focusTracker.destroy(); // Clean–up the references to the CKEditor instance stored in the native editable DOM elements.\n\n      var _iterator = _createForOfIteratorHelper(this._editableElementsMap.values()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var domElement = _step.value;\n          domElement.ckeditorInstance = null;\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      this._editableElementsMap = new Map();\n    }\n    /**\n     * Store the native DOM editable element used by the editor under\n     * a unique name.\n     *\n     * @param {String} rootName The unique name of the editable element.\n     * @param {HTMLElement} domElement The native DOM editable element.\n     */\n\n  }, {\n    key: \"setEditableElement\",\n    value: function setEditableElement(rootName, domElement) {\n      this._editableElementsMap.set(rootName, domElement); // Put a reference to the CKEditor instance in the editable native DOM element.\n      // It helps 3rd–party software (browser extensions, other libraries) access and recognize\n      // CKEditor 5 instances (editing roots) and use their API (there is no global editor\n      // instance registry).\n\n\n      if (!domElement.ckeditorInstance) {\n        domElement.ckeditorInstance = this.editor;\n      }\n    }\n    /**\n     * Returns the editable editor element with the given name or null if editable does not exist.\n     *\n     * @param {String} [rootName=main] The editable name.\n     * @returns {HTMLElement|undefined}\n     */\n\n  }, {\n    key: \"getEditableElement\",\n    value: function getEditableElement() {\n      var rootName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'main';\n      return this._editableElementsMap.get(rootName);\n    }\n    /**\n     * Returns array of names of all editor editable elements.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getEditableElementsNames\",\n    value: function getEditableElementsNames() {\n      return this._editableElementsMap.keys();\n    }\n    /**\n     * Stores all editable elements used by the editor instance.\n     *\n     * @protected\n     * @deprecated\n     * @member {Map.<String,HTMLElement>}\n     */\n\n  }, {\n    key: \"element\",\n    get: function get() {\n      return null;\n    }\n  }, {\n    key: \"_editableElements\",\n    get: function get() {\n      /**\n       * The {@link module:core/editor/editorui~EditorUI#_editableElements `EditorUI#_editableElements`} property has been\n       * deprecated and will be removed in the near future. Please use {@link #setEditableElement `setEditableElement()`} and\n       * {@link #getEditableElement `getEditableElement()`} methods instead.\n       *\n       * @error editor-ui-deprecated-editable-elements\n       * @param {module:core/editor/editorui~EditorUI} editorUI Editor UI instance the deprecated property belongs to.\n       */\n      console.warn('editor-ui-deprecated-editable-elements: ' + 'The EditorUI#_editableElements property has been deprecated and will be removed in the near future.', {\n        editorUI: this\n      });\n      return this._editableElementsMap;\n    }\n    /**\n     * Fired when the editor UI is ready.\n     *\n     * Fired before {@link module:engine/controller/datacontroller~DataController#event:ready}.\n     *\n     * @event ready\n     */\n\n    /**\n     * Fired whenever the UI (all related components) should be refreshed.\n     *\n     * **Note:**: The event is fired after each {@link module:engine/view/document~Document#event:layoutChanged}.\n     * It can also be fired manually via the {@link module:core/editor/editorui~EditorUI#update} method.\n     *\n     * @event update\n     */\n\n  }]);\n\n  return EditorUI;\n}();\n\nexport { EditorUI as default };\nmix(EditorUI, EmitterMixin);","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { isFunction } from 'lodash-es';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * @module core/editor/utils/attachtoform\n */\n\n/**\n * Checks if the editor is initialized on a `<textarea>` element that belongs to a form. If yes, it updates the editor's element\n * content before submitting the form.\n *\n * This helper requires the {@link module:core/editor/utils/elementapimixin~ElementApi ElementApi interface}.\n *\n * @param {module:core/editor/editor~Editor} editor Editor instance.\n */\n\nexport default function attachToForm(editor) {\n  if (!isFunction(editor.updateSourceElement)) {\n    /**\n     * The editor passed to `attachToForm()` must implement the\n     * {@link module:core/editor/utils/elementapimixin~ElementApi} interface.\n     *\n     * @error attachtoform-missing-elementapi-interface\n     */\n    throw new CKEditorError('attachtoform-missing-elementapi-interface: Editor passed to attachToForm() must implement ElementApi.', editor);\n  }\n\n  var sourceElement = editor.sourceElement; // Only when replacing a textarea which is inside of a form element.\n\n  if (sourceElement && sourceElement.tagName.toLowerCase() === 'textarea' && sourceElement.form) {\n    var originalSubmit;\n    var form = sourceElement.form;\n\n    var onSubmit = function onSubmit() {\n      return editor.updateSourceElement();\n    }; // Replace the original form#submit() to call a custom submit function first.\n    // Check if #submit is a function because the form might have an input named \"submit\".\n\n\n    if (isFunction(form.submit)) {\n      originalSubmit = form.submit;\n\n      form.submit = function () {\n        onSubmit();\n        originalSubmit.apply(form);\n      };\n    } // Update the replaced textarea with data before each form#submit event.\n\n\n    form.addEventListener('submit', onSubmit); // Remove the submit listener and revert the original submit method on\n    // editor#destroy.\n\n    editor.on('destroy', function () {\n      form.removeEventListener('submit', onSubmit);\n\n      if (originalSubmit) {\n        form.submit = originalSubmit;\n      }\n    });\n  }\n}","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/editor/utils/dataapimixin\n */\n\n/**\n * Implementation of the {@link module:core/editor/utils/dataapimixin~DataApi}.\n *\n * @mixin DataApiMixin\n * @implements module:core/editor/utils/dataapimixin~DataApi\n */\nvar DataApiMixin = {\n  /**\n   * @inheritDoc\n   */\n  setData: function setData(data) {\n    this.data.set(data);\n  },\n\n  /**\n   * @inheritDoc\n   */\n  getData: function getData(options) {\n    return this.data.get(options);\n  }\n};\nexport default DataApiMixin;\n/**\n * Interface defining editor methods for setting and getting data to and from the editor's main root element\n * using the {@link module:core/editor/editor~Editor#data data pipeline}.\n *\n * This interface is not a part of the {@link module:core/editor/editor~Editor} class because one may want to implement\n * an editor with multiple root elements, in which case the methods for setting and getting data will need to be implemented\n * differently.\n *\n * @interface DataApi\n */\n\n/**\n * Sets the data in the editor.\n *\n *\t\teditor.setData( '<p>This is editor!</p>' );\n *\n * By default the editor accepts HTML. This can be controlled by injecting a different data processor.\n * See the {@glink features/markdown Markdown output} guide for more details.\n *\n * Note: Not only is the format of the data configurable, but the type of the `setData()`'s parameter does not\n * have to be a string either. You can e.g. accept an object or a DOM `DocumentFragment` if you consider this\n * the right format for you.\n *\n * @method #setData\n * @param {String} data Input data.\n */\n\n/**\n * Gets the data from the editor.\n *\n *\t\teditor.getData(); // -> '<p>This is editor!</p>'\n *\n * By default the editor outputs HTML. This can be controlled by injecting a different data processor.\n * See the {@glink features/markdown Markdown output} guide for more details.\n *\n * Note: Not only is the format of the data configurable, but the type of the `getData()`'s return value does not\n * have to be a string either. You can e.g. return an object or a DOM `DocumentFragment` if you consider this\n * the right format for you.\n *\n * @method #getData\n * @param {Object} [options]\n * @param {String} [options.rootName='main'] Root name.\n * @param {String} [options.trim='empty'] Whether returned data should be trimmed. This option is set to `'empty'` by default,\n * which means that whenever editor content is considered empty, an empty string is returned. To turn off trimming\n * use `'none'`. In such cases exact content will be returned (for example `'<p>&nbsp;</p>'` for an empty editor).\n * @returns {String} Output data.\n */","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport setDataInElement from '@ckeditor/ckeditor5-utils/src/dom/setdatainelement';\n/**\n * @module core/editor/utils/elementapimixin\n */\n\n/**\n * Implementation of the {@link module:core/editor/utils/elementapimixin~ElementApi}.\n *\n * @mixin ElementApiMixin\n * @implements module:core/editor/utils/elementapimixin~ElementApi\n */\n\nvar ElementApiMixin = {\n  /**\n   * @inheritDoc\n   */\n  updateSourceElement: function updateSourceElement() {\n    if (!this.sourceElement) {\n      /**\n       * Cannot update the source element of a detached editor.\n       *\n       * The {@link ~ElementApi#updateSourceElement `updateSourceElement()`} method cannot be called if you did not\n       * pass an element to `Editor.create()`.\n       *\n       * @error editor-missing-sourceelement\n       */\n      throw new CKEditorError('editor-missing-sourceelement: Cannot update the source element of a detached editor.', this);\n    }\n\n    setDataInElement(this.sourceElement, this.data.get());\n  }\n};\nexport default ElementApiMixin;\n/**\n * Interface describing an editor that replaced a DOM element (was \"initialized on an element\").\n *\n * Such an editor should provide a method to\n * {@link module:core/editor/utils/elementapimixin~ElementApi#updateSourceElement update the replaced element with the current data}.\n *\n * @interface ElementApi\n */\n\n/**\n * The element on which the editor has been initialized.\n *\n * @readonly\n * @member {HTMLElement} #sourceElement\n */\n\n/**\n * Updates the {@link #sourceElement editor source element}'s content with the data.\n *\n * @method #updateSourceElement\n */","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/pendingactions\n */\nimport Plugin from \"./plugin\";\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * The list of pending editor actions.\n *\n * This plugin should be used to synchronise plugins that execute long-lasting actions\n * (e.g. file upload) with the editor integration. It gives the developer who integrates the editor\n * an easy way to check if there are any actions pending whenever such information is needed.\n * All plugins that register a pending action also provide a message about the action that is ongoing\n * which can be displayed to the user. This lets them decide if they want to interrupt the action or wait.\n *\n * Adding and updating a pending action:\n *\n * \t\tconst pendingActions = editor.plugins.get( 'PendingActions' );\n * \t\tconst action = pendingActions.add( 'Upload in progress: 0%.' );\n *\n *\t\t// You can update the message:\n * \t\taction.message = 'Upload in progress: 10%.';\n *\n * Removing a pending action:\n *\n * \t\tconst pendingActions = editor.plugins.get( 'PendingActions' );\n * \t\tconst action = pendingActions.add( 'Unsaved changes.' );\n *\n * \t\tpendingActions.remove( action );\n *\n * Getting pending actions:\n *\n * \t\tconst pendingActions = editor.plugins.get( 'PendingActions' );\n *\n * \t\tconst action1 = pendingActions.add( 'Action 1' );\n * \t\tconst action2 = pendingActions.add( 'Action 2' );\n *\n * \t\tpendingActions.first; // Returns action1\n * \t\tArray.from( pendingActions ); // Returns [ action1, action2 ]\n *\n * This plugin is used by features like {@link module:upload/filerepository~FileRepository} to register their ongoing actions\n * and by features like {@link module:autosave/autosave~Autosave} to detect whether there are any ongoing actions.\n * Read more about saving the data in the {@glink builds/guides/integration/saving-data Saving and getting data} guide.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar PendingActions = /*#__PURE__*/function (_Plugin) {\n  _inherits(PendingActions, _Plugin);\n\n  var _super = _createSuper(PendingActions);\n\n  function PendingActions() {\n    _classCallCheck(this, PendingActions);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(PendingActions, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      /**\n       * Defines whether there is any registered pending action.\n       *\n       * @readonly\n       * @observable\n       * @member {Boolean} #hasAny\n       */\n      this.set('hasAny', false);\n      /**\n       * A list of pending actions.\n       *\n       * @private\n       * @type {module:utils/collection~Collection}\n       */\n\n      this._actions = new Collection({\n        idProperty: '_id'\n      });\n\n      this._actions.delegate('add', 'remove').to(this);\n    }\n    /**\n     * Adds an action to the list of pending actions.\n     *\n     * This method returns an action object with an observable message property.\n     * The action object can be later used in the {@link #remove} method. It also allows you to change the message.\n     *\n     * @param {String} message The action message.\n     * @returns {Object} An observable object that represents a pending action.\n     */\n\n  }, {\n    key: \"add\",\n    value: function add(message) {\n      if (typeof message !== 'string') {\n        /**\n         * The message must be a string.\n         *\n         * @error pendingactions-add-invalid-message\n         */\n        throw new CKEditorError('pendingactions-add-invalid-message: The message must be a string.', this);\n      }\n\n      var action = Object.create(ObservableMixin);\n      action.set('message', message);\n\n      this._actions.add(action);\n\n      this.hasAny = true;\n      return action;\n    }\n    /**\n     * Removes an action from the list of pending actions.\n     *\n     * @param {Object} action An action object.\n     */\n\n  }, {\n    key: \"remove\",\n    value: function remove(action) {\n      this._actions.remove(action);\n\n      this.hasAny = !!this._actions.length;\n    }\n    /**\n     * Returns the first action from the list or null when list is empty\n     *\n     * returns {Object|null} The pending action object.\n     */\n\n  }, {\n    key: Symbol.iterator,\n\n    /**\n     * Iterable interface.\n     *\n     * @returns {Iterable.<*>}\n     */\n    value: function value() {\n      return this._actions[Symbol.iterator]();\n    }\n    /**\n     * Fired when an action is added to the list.\n     *\n     * @event add\n     * @param {Object} action The added action.\n     */\n\n    /**\n     * Fired when an action is removed from the list.\n     *\n     * @event remove\n     * @param {Object} action The removed action.\n     */\n\n  }, {\n    key: \"first\",\n    get: function get() {\n      return this._actions.get(0);\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'PendingActions';\n    }\n  }]);\n\n  return PendingActions;\n}(Plugin);\n\nexport { PendingActions as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/plugin\n */\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * The base class for CKEditor plugin classes.\n *\n * @implements module:core/plugin~PluginInterface\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar Plugin = /*#__PURE__*/function () {\n  /**\n   * @inheritDoc\n   */\n  function Plugin(editor) {\n    _classCallCheck(this, Plugin);\n\n    /**\n     * The editor instance.\n     *\n     * Note that most editors implement the {@link module:core/editor/editorwithui~EditorWithUI} interface in addition\n     * to the base {@link module:core/editor/editor~Editor} interface. However, editors with an external UI\n     * (i.e. Bootstrap-based) or a headless editor may not implement the {@link module:core/editor/editorwithui~EditorWithUI}\n     * interface.\n     *\n     * Because of above, to make plugins more universal, it is recommended to split features into:\n     *  - The \"editing\" part that only uses the {@link module:core/editor/editor~Editor} interface.\n     *  - The \"UI\" part that uses both the {@link module:core/editor/editor~Editor} interface and\n     *  the {@link module:core/editor/editorwithui~EditorWithUI} interface.\n     *\n     * @readonly\n     * @member {module:core/editor/editor~Editor} #editor\n     */\n    this.editor = editor;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(Plugin, [{\n    key: \"destroy\",\n    value: function destroy() {\n      this.stopListening();\n    }\n  }]);\n\n  return Plugin;\n}();\n\nexport { Plugin as default };\nmix(Plugin, ObservableMixin);\n/**\n * The base interface for CKEditor plugins.\n *\n * In its minimal form a plugin can be a simple function that accepts {@link module:core/editor/editor~Editor the editor}\n * as a parameter:\n *\n *\t\t// A simple plugin that enables a data processor.\n *\t\tfunction MyPlugin( editor ) {\n *\t\t\teditor.data.processor = new MyDataProcessor();\n *\t\t}\n *\n * In most cases however, you will want to inherit from the {@link module:core/plugin~Plugin} class which implements the\n * {@link module:utils/observablemixin~ObservableMixin} and is, therefore, more convenient:\n *\n *\t\tclass MyPlugin extends Plugin {\n *\t\t\tinit() {\n *\t\t\t\t// `listenTo()` and `editor` are available thanks to `Plugin`.\n *\t\t\t\t// By using `listenTo()` you will ensure that the listener is removed when\n *\t\t\t\t// the plugin is destroyed.\n *\t\t\t\tthis.listenTo( this.editor.data, 'ready', () => {\n *\t\t\t\t\t// Do something when the data is ready.\n *\t\t\t\t} );\n *\t\t\t}\n *\t\t}\n *\n * The plugin can also implement methods (e.g. {@link module:core/plugin~PluginInterface#init `init()`} or\n * {@link module:core/plugin~PluginInterface#destroy `destroy()`}) which, when present, will be used to properly\n * initialize and destroy the plugin.\n *\n * **Note:** When defined as a plain function, the plugin acts as a constructor and will be\n * called in parallel with other plugins' {@link module:core/plugin~PluginInterface#constructor constructors}.\n * This means the code of that plugin will be executed **before** {@link module:core/plugin~PluginInterface#init `init()`} and\n * {@link module:core/plugin~PluginInterface#afterInit `afterInit()`} methods of other plugins and, for instance,\n * you cannot use it to extend other plugins' {@glink framework/guides/architecture/editing-engine#schema schema}\n * rules as they are defined later on during the `init()` stage.\n *\n * @interface PluginInterface\n */\n\n/**\n * Creates a new plugin instance. This is the first step of the plugin initialization.\n * See also {@link #init} and {@link #afterInit}.\n *\n * A plugin is always instantiated after its {@link module:core/plugin~PluginInterface.requires dependencies} and the\n * {@link #init} and {@link #afterInit} methods are called in the same order.\n *\n * Usually, you will want to put your plugin's initialization code in the {@link #init} method.\n * The constructor can be understood as \"before init\" and used in special cases, just like\n * {@link #afterInit} serves the special \"after init\" scenarios (e.g.the code which depends on other\n * plugins, but which does not {@link module:core/plugin~PluginInterface.requires explicitly require} them).\n *\n * @method #constructor\n * @param {module:core/editor/editor~Editor} editor\n */\n\n/**\n * An array of plugins required by this plugin.\n *\n * To keep the plugin class definition tight it is recommended to define this property as a static getter:\n *\n *\t\timport Image from './image.js';\n *\n *\t\texport default class ImageCaption {\n *\t\t\tstatic get requires() {\n *\t\t\t\treturn [ Image ];\n *\t\t\t}\n *\t\t}\n *\n * @static\n * @readonly\n * @member {Array.<Function>|undefined} module:core/plugin~PluginInterface.requires\n */\n\n/**\n * An optional name of the plugin. If set, the plugin will be available in\n * {@link module:core/plugincollection~PluginCollection#get} by its\n * name and its constructor. If not, then only by its constructor.\n *\n * The name should reflect the constructor name.\n *\n * To keep the plugin class definition tight it is recommended to define this property as a static getter:\n *\n *\t\texport default class ImageCaption {\n *\t\t\tstatic get pluginName() {\n *\t\t\t\treturn 'ImageCaption';\n *\t\t\t}\n *\t\t}\n *\n * Note: The native `Function.name` property could not be used to keep the plugin name because\n * it will be mangled during code minification.\n *\n * Naming a plugin is necessary to enable removing it through the\n * {@link module:core/editor/editorconfig~EditorConfig#removePlugins `config.removePlugins`} option.\n *\n * @static\n * @readonly\n * @member {String|undefined} module:core/plugin~PluginInterface.pluginName\n */\n\n/**\n * The second stage (after plugin {@link #constructor}) of plugin initialization.\n * Unlike the plugin constructor this method can be asynchronous.\n *\n * A plugin's `init()` method is called after its {@link module:core/plugin~PluginInterface.requires dependencies} are initialized,\n * so in the same order as constructors of these plugins.\n *\n * **Note:** This method is optional. A plugin instance does not need to have it defined.\n *\n * @method #init\n * @returns {null|Promise}\n */\n\n/**\n * The third (and last) stage of plugin initialization. See also {@link #constructor} and {@link #init}.\n *\n * **Note:** This method is optional. A plugin instance does not need to have it defined.\n *\n * @method #afterInit\n * @returns {null|Promise}\n */\n\n/**\n * Destroys the plugin.\n *\n * **Note:** This method is optional. A plugin instance does not need to have it defined.\n *\n * @method #destroy\n * @returns {null|Promise}\n */\n\n/**\n * Array of loaded plugins.\n *\n * @typedef {Array.<module:core/plugin~PluginInterface>} module:core/plugin~LoadedPlugins\n */","import \"core-js/modules/es6.regexp.to-string\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.function.name\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module core/plugincollection\n */\n\n/* globals console */\nimport CKEditorError, { attachLinkToDocumentation } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * Manages a list of CKEditor plugins, including loading, resolving dependencies and initialization.\n *\n * @mixes module:utils/emittermixin~EmitterMixin\n */\n\nvar PluginCollection = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the PluginCollection class.\n   * Allows loading and initializing plugins and their dependencies.\n   *\n   * @param {module:core/editor/editor~Editor} editor\n   * @param {Array.<Function>} [availablePlugins] Plugins (constructors) which the collection will be able to use\n   * when {@link module:core/plugincollection~PluginCollection#init} is used with plugin names (strings, instead of constructors).\n   * Usually, the editor will pass its built-in plugins to the collection so they can later be\n   * used in `config.plugins` or `config.removePlugins` by names.\n   */\n  function PluginCollection(editor) {\n    var availablePlugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n\n    _classCallCheck(this, PluginCollection);\n\n    /**\n     * @protected\n     * @member {module:core/editor/editor~Editor} module:core/plugin~PluginCollection#_editor\n     */\n    this._editor = editor;\n    /**\n     * Map of plugin constructors which can be retrieved by their names.\n     *\n     * @protected\n     * @member {Map.<String|Function,Function>} module:core/plugin~PluginCollection#_availablePlugins\n     */\n\n    this._availablePlugins = new Map();\n    /**\n     * @protected\n     * @member {Map} module:core/plugin~PluginCollection#_plugins\n     */\n\n    this._plugins = new Map();\n\n    var _iterator = _createForOfIteratorHelper(availablePlugins),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var PluginConstructor = _step.value;\n\n        this._availablePlugins.set(PluginConstructor, PluginConstructor);\n\n        if (PluginConstructor.pluginName) {\n          this._availablePlugins.set(PluginConstructor.pluginName, PluginConstructor);\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  }\n  /**\n   * Iterable interface.\n   *\n   * Returns `[ PluginConstructor, pluginInstance ]` pairs.\n   *\n   * @returns {Iterable.<Array>}\n   */\n\n\n  _createClass(PluginCollection, [{\n    key: Symbol.iterator,\n    value: /*#__PURE__*/regeneratorRuntime.mark(function value() {\n      var _iterator2, _step2, entry;\n\n      return regeneratorRuntime.wrap(function value$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _iterator2 = _createForOfIteratorHelper(this._plugins);\n              _context.prev = 1;\n\n              _iterator2.s();\n\n            case 3:\n              if ((_step2 = _iterator2.n()).done) {\n                _context.next = 10;\n                break;\n              }\n\n              entry = _step2.value;\n\n              if (!(typeof entry[0] == 'function')) {\n                _context.next = 8;\n                break;\n              }\n\n              _context.next = 8;\n              return entry;\n\n            case 8:\n              _context.next = 3;\n              break;\n\n            case 10:\n              _context.next = 15;\n              break;\n\n            case 12:\n              _context.prev = 12;\n              _context.t0 = _context[\"catch\"](1);\n\n              _iterator2.e(_context.t0);\n\n            case 15:\n              _context.prev = 15;\n\n              _iterator2.f();\n\n              return _context.finish(15);\n\n            case 18:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, value, this, [[1, 12, 15, 18]]);\n    })\n    /**\n     * Gets the plugin instance by its constructor or name.\n     *\n     *\t\t// Check if 'Clipboard' plugin was loaded.\n     *\t\tif ( editor.plugins.has( 'Clipboard' ) ) {\n     *\t\t\t// Get clipboard plugin instance\n     *\t\t\tconst clipboard = editor.plugins.get( 'Clipboard' );\n     *\n     *\t\t\tthis.listenTo( clipboard, 'inputTransformation', ( evt, data ) => {\n     *\t\t\t\t// Do something on clipboard input.\n     *\t\t\t} );\n     *\t\t}\n     *\n     * **Note**: This method will throw error if plugin is not loaded. Use `{@link #has editor.plugins.has()}`\n     * to check if plugin is available.\n     *\n     * @param {Function|String} key The plugin constructor or {@link module:core/plugin~PluginInterface.pluginName name}.\n     * @returns {module:core/plugin~PluginInterface}\n     */\n\n  }, {\n    key: \"get\",\n    value: function get(key) {\n      var plugin = this._plugins.get(key);\n\n      if (!plugin) {\n        /**\n         * The plugin is not loaded and could not be obtained.\n         *\n         * Plugin classes (constructors) need to be provided to the editor and must be loaded before they can be obtained from\n         * the plugin collection.\n         * This is usually done in CKEditor 5 builds by setting the {@link module:core/editor/editor~Editor.builtinPlugins}\n         * property.\n         *\n         * **Note**: You can use `{@link module:core/plugincollection~PluginCollection#has editor.plugins.has()}`\n         * to check if plugin was loaded.\n         *\n         * @error plugincollection-plugin-not-loaded\n         * @param {String} plugin The name of the plugin which is not loaded.\n         */\n        var errorMsg = 'plugincollection-plugin-not-loaded: The requested plugin is not loaded.';\n        var pluginName = key;\n\n        if (typeof key == 'function') {\n          pluginName = key.pluginName || key.name;\n        }\n\n        throw new CKEditorError(errorMsg, this._editor, {\n          plugin: pluginName\n        });\n      }\n\n      return plugin;\n    }\n    /**\n     * Checks if plugin is loaded.\n     *\n     *\t\t// Check if 'Clipboard' plugin was loaded.\n     *\t\tif ( editor.plugins.has( 'Clipboard' ) ) {\n     *\t\t\t// Now use clipboard plugin instance:\n     *\t\t\tconst clipboard = editor.plugins.get( 'Clipboard' );\n     *\n     *\t\t\t// ...\n     *\t\t}\n     *\n     * @param {Function|String} key The plugin constructor or {@link module:core/plugin~PluginInterface.pluginName name}.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"has\",\n    value: function has(key) {\n      return this._plugins.has(key);\n    }\n    /**\n     * Initializes a set of plugins and adds them to the collection.\n     *\n     * @param {Array.<Function|String>} plugins An array of {@link module:core/plugin~PluginInterface plugin constructors}\n     * or {@link module:core/plugin~PluginInterface.pluginName plugin names}. The second option (names) works only if\n     * `availablePlugins` were passed to the {@link #constructor}.\n     * @param {Array.<String|Function>} [removePlugins] Names of plugins or plugin constructors\n     * that should not be loaded (despite being specified in the `plugins` array).\n     * @returns {Promise.<module:core/plugin~LoadedPlugins>} A promise which gets resolved once all plugins are loaded\n     * and available in the collection.\n     */\n\n  }, {\n    key: \"init\",\n    value: function init(plugins) {\n      var removePlugins = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n      var that = this;\n      var editor = this._editor;\n      var loading = new Set();\n      var loaded = [];\n      var pluginConstructors = mapToAvailableConstructors(plugins);\n      var removePluginConstructors = mapToAvailableConstructors(removePlugins);\n      var missingPlugins = getMissingPluginNames(plugins);\n\n      if (missingPlugins) {\n        /**\n         * Some plugins are not available and could not be loaded.\n         *\n         * Plugin classes (constructors) need to be provided to the editor before they can be loaded by name.\n         * This is usually done in CKEditor 5 builds by setting the {@link module:core/editor/editor~Editor.builtinPlugins}\n         * property.\n         *\n         * **If you see this warning when using one of the {@glink builds/index CKEditor 5 Builds}**, it means\n         * that you try to enable a plugin which was not included in that build. This may be due to a typo\n         * in the plugin name or simply because that plugin is not a part of this build. In the latter scenario,\n         * read more about {@glink builds/guides/development/custom-builds custom builds}.\n         *\n         * **If you see this warning when using one of the editor creators directly** (not a build), then it means\n         * that you tried loading plugins by name. However, unlike CKEditor 4, CKEditor 5 does not implement a \"plugin loader\".\n         * This means that CKEditor 5 does not know where to load the plugin modules from. Therefore, you need to\n         * provide each plugin through reference (as a constructor function). Check out the examples in\n         * {@glink builds/guides/integration/advanced-setup#scenario-2-building-from-source \"Building from source\"}.\n         *\n         * @error plugincollection-plugin-not-found\n         * @param {Array.<String>} plugins The name of the plugins which could not be loaded.\n         */\n        var errorMsg = 'plugincollection-plugin-not-found: Some plugins are not available and could not be loaded.'; // Log the error so it's more visible on the console. Hopefully, for better DX.\n\n        console.error(attachLinkToDocumentation(errorMsg), {\n          plugins: missingPlugins\n        });\n        return Promise.reject(new CKEditorError(errorMsg, this._editor, {\n          plugins: missingPlugins\n        }));\n      }\n\n      return Promise.all(pluginConstructors.map(loadPlugin)).then(function () {\n        return initPlugins(loaded, 'init');\n      }).then(function () {\n        return initPlugins(loaded, 'afterInit');\n      }).then(function () {\n        return loaded;\n      });\n\n      function loadPlugin(PluginConstructor) {\n        if (removePluginConstructors.includes(PluginConstructor)) {\n          return;\n        } // The plugin is already loaded or being loaded - do nothing.\n\n\n        if (that._plugins.has(PluginConstructor) || loading.has(PluginConstructor)) {\n          return;\n        }\n\n        return instantiatePlugin(PluginConstructor).catch(function (err) {\n          /**\n           * It was not possible to load the plugin.\n           *\n           * This is a generic error logged to the console when a JavaSript error is thrown during the initialization\n           * of one of the plugins.\n           *\n           * If you correctly handled the promise returned by the editor's `create()` method (like shown below)\n           * you will find the original error logged to the console, too:\n           *\n           *\t\tClassicEditor.create( document.getElementById( 'editor' ) )\n           *\t\t\t.then( editor => {\n           *\t\t\t\t// ...\n           * \t\t\t} )\n           *\t\t\t.catch( error => {\n           *\t\t\t\tconsole.error( error );\n           *\t\t\t} );\n           *\n           * @error plugincollection-load\n           * @param {String} plugin The name of the plugin that could not be loaded.\n           */\n          console.error(attachLinkToDocumentation('plugincollection-load: It was not possible to load the plugin.'), {\n            plugin: PluginConstructor\n          });\n          throw err;\n        });\n      }\n\n      function initPlugins(loadedPlugins, method) {\n        return loadedPlugins.reduce(function (promise, plugin) {\n          if (!plugin[method]) {\n            return promise;\n          }\n\n          return promise.then(plugin[method].bind(plugin));\n        }, Promise.resolve());\n      }\n\n      function instantiatePlugin(PluginConstructor) {\n        return new Promise(function (resolve) {\n          loading.add(PluginConstructor);\n\n          if (PluginConstructor.requires) {\n            PluginConstructor.requires.forEach(function (RequiredPluginConstructorOrName) {\n              var RequiredPluginConstructor = getPluginConstructor(RequiredPluginConstructorOrName);\n\n              if (removePlugins.includes(RequiredPluginConstructor)) {\n                /**\n                 * Cannot load a plugin because one of its dependencies is listed in the `removePlugins` option.\n                 *\n                 * @error plugincollection-required\n                 * @param {Function} plugin The required plugin.\n                 * @param {Function} requiredBy The parent plugin.\n                 */\n                throw new CKEditorError('plugincollection-required: Cannot load a plugin because one of its dependencies is listed in' + 'the `removePlugins` option.', editor, {\n                  plugin: RequiredPluginConstructor,\n                  requiredBy: PluginConstructor\n                });\n              }\n\n              loadPlugin(RequiredPluginConstructor);\n            });\n          }\n\n          var plugin = new PluginConstructor(editor);\n\n          that._add(PluginConstructor, plugin);\n\n          loaded.push(plugin);\n          resolve();\n        });\n      }\n\n      function getPluginConstructor(PluginConstructorOrName) {\n        if (typeof PluginConstructorOrName == 'function') {\n          return PluginConstructorOrName;\n        }\n\n        return that._availablePlugins.get(PluginConstructorOrName);\n      }\n\n      function getMissingPluginNames(plugins) {\n        var missingPlugins = [];\n\n        var _iterator3 = _createForOfIteratorHelper(plugins),\n            _step3;\n\n        try {\n          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n            var pluginNameOrConstructor = _step3.value;\n\n            if (!getPluginConstructor(pluginNameOrConstructor)) {\n              missingPlugins.push(pluginNameOrConstructor);\n            }\n          }\n        } catch (err) {\n          _iterator3.e(err);\n        } finally {\n          _iterator3.f();\n        }\n\n        return missingPlugins.length ? missingPlugins : null;\n      }\n\n      function mapToAvailableConstructors(plugins) {\n        return plugins.map(function (pluginNameOrConstructor) {\n          return getPluginConstructor(pluginNameOrConstructor);\n        }).filter(function (PluginConstructor) {\n          return !!PluginConstructor;\n        });\n      }\n    }\n    /**\n     * Destroys all loaded plugins.\n     *\n     * @returns {Promise}\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var promises = Array.from(this).map(function (_ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            pluginInstance = _ref2[1];\n\n        return pluginInstance;\n      }).filter(function (pluginInstance) {\n        return typeof pluginInstance.destroy == 'function';\n      }).map(function (pluginInstance) {\n        return pluginInstance.destroy();\n      });\n      return Promise.all(promises);\n    }\n    /**\n     * Adds the plugin to the collection. Exposed mainly for testing purposes.\n     *\n     * @protected\n     * @param {Function} PluginConstructor The plugin constructor.\n     * @param {module:core/plugin~PluginInterface} plugin The instance of the plugin.\n     */\n\n  }, {\n    key: \"_add\",\n    value: function _add(PluginConstructor, plugin) {\n      this._plugins.set(PluginConstructor, plugin);\n\n      var pluginName = PluginConstructor.pluginName;\n\n      if (!pluginName) {\n        return;\n      }\n\n      if (this._plugins.has(pluginName)) {\n        /**\n         * Two plugins with the same {@link module:core/plugin~PluginInterface.pluginName} were loaded.\n         * This will lead to runtime conflicts between these plugins.\n         *\n         * In practice, this warning usually means that new plugins were added to an existing CKEditor 5 build.\n         * Plugins should always be added to a source version of the editor (`@ckeditor/ckeditor5-editor-*`),\n         * not to an editor imported from one of the `@ckeditor/ckeditor5-build-*` packages.\n         *\n         * Check your import paths and the list of plugins passed to\n         * {@link module:core/editor/editor~Editor.create `Editor.create()`}\n         * or specified in {@link module:core/editor/editor~Editor.builtinPlugins `Editor.builtinPlugins`}.\n         *\n         * The second option is that your `node_modules/` directory contains duplicated versions of the same\n         * CKEditor 5 packages. Normally, on clean installations, npm deduplicates packages in `node_modules/`, so\n         * it may be enough to call `rm -rf node_modules && npm i`. However, if you installed conflicting versions\n         * of packages, their dependencies may need to be installed in more than one version which may lead to this\n         * warning.\n         *\n         * Technically speaking, this error occurs because after adding a plugin to an existing editor build\n         * dependencies of this plugin are being duplicated.\n         * They are already built into that editor build and now get added for the second time as dependencies\n         * of the plugin you are installing.\n         *\n         * Read more about {@glink builds/guides/integration/installing-plugins installing plugins}.\n         *\n         * @error plugincollection-plugin-name-conflict\n         * @param {String} pluginName The duplicated plugin name.\n         * @param {Function} plugin1 The first plugin constructor.\n         * @param {Function} plugin2 The second plugin constructor.\n         */\n        throw new CKEditorError('plugincollection-plugin-name-conflict: Two plugins with the same name were loaded.', null, {\n          pluginName: pluginName,\n          plugin1: this._plugins.get(pluginName).constructor,\n          plugin2: PluginConstructor\n        });\n      }\n\n      this._plugins.set(pluginName, plugin);\n    }\n  }]);\n\n  return PluginCollection;\n}();\n\nexport { PluginCollection as default };\nmix(PluginCollection, EmitterMixin);","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M11.591 10.177l4.243 4.242a1 1 0 0 1-1.415 1.415l-4.242-4.243-4.243 4.243a1 1 0 0 1-1.414-1.415l4.243-4.242L4.52 5.934A1 1 0 0 1 5.934 4.52l4.243 4.243 4.242-4.243a1 1 0 1 1 1.415 1.414l-4.243 4.243z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M6.972 16.615a.997.997 0 0 1-.744-.292l-4.596-4.596a1 1 0 1 1 1.414-1.414l3.926 3.926 9.937-9.937a1 1 0 0 1 1.414 1.415L7.717 16.323a.997.997 0 0 1-.745.292z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M8.636 9.531l-2.758 3.94a.5.5 0 0 0 .122.696l3.224 2.284h1.314l2.636-3.736L8.636 9.53zm.288 8.451L5.14 15.396a2 2 0 0 1-.491-2.786l6.673-9.53a2 2 0 0 1 2.785-.49l3.742 2.62a2 2 0 0 1 .491 2.785l-7.269 10.053-2.147-.066z\\\"/><path d=\\\"M4 18h5.523v-1H4zm-2 0h1v-1H2z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M6.91 10.54c.26-.23.64-.21.88.03l3.36 3.14 2.23-2.06a.64.64 0 0 1 .87 0l2.52 2.97V4.5H3.2v10.12l3.71-4.08zm10.27-7.51c.6 0 1.09.47 1.09 1.05v11.84c0 .59-.49 1.06-1.09 1.06H2.79c-.6 0-1.09-.47-1.09-1.06V4.08c0-.58.49-1.05 1.1-1.05h14.38zm-5.22 5.56a1.96 1.96 0 1 1 3.4-1.96 1.96 1.96 0 0 1-3.4 1.96z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M5.085 6.22L2.943 4.078a.75.75 0 1 1 1.06-1.06l2.592 2.59A11.094 11.094 0 0 1 10 5.068c4.738 0 8.578 3.101 8.578 5.083 0 1.197-1.401 2.803-3.555 3.887l1.714 1.713a.75.75 0 0 1-.09 1.138.488.488 0 0 1-.15.084.75.75 0 0 1-.821-.16L6.17 7.304c-.258.11-.51.233-.757.365l6.239 6.24-.006.005.78.78c-.388.094-.78.166-1.174.215l-1.11-1.11h.011L4.55 8.197a7.2 7.2 0 0 0-.665.514l-.112.098 4.897 4.897-.005.006 1.276 1.276a10.164 10.164 0 0 1-1.477-.117l-.479-.479-.009.009-4.863-4.863-.022.031a2.563 2.563 0 0 0-.124.2c-.043.077-.08.158-.108.241a.534.534 0 0 0-.028.133.29.29 0 0 0 .008.072.927.927 0 0 0 .082.226c.067.133.145.26.234.379l3.242 3.365.025.01.59.623c-3.265-.918-5.59-3.155-5.59-4.668 0-1.194 1.448-2.838 3.663-3.93zm7.07.531a4.632 4.632 0 0 1 1.108 5.992l.345.344.046-.018a9.313 9.313 0 0 0 2-1.112c.256-.187.5-.392.727-.613.137-.134.27-.277.392-.431.072-.091.141-.185.203-.286.057-.093.107-.19.148-.292a.72.72 0 0 0 .036-.12.29.29 0 0 0 .008-.072.492.492 0 0 0-.028-.133.999.999 0 0 0-.036-.096 2.165 2.165 0 0 0-.071-.145 2.917 2.917 0 0 0-.125-.2 3.592 3.592 0 0 0-.263-.335 5.444 5.444 0 0 0-.53-.523 7.955 7.955 0 0 0-1.054-.768 9.766 9.766 0 0 0-1.879-.891c-.337-.118-.68-.219-1.027-.301zm-2.85.21l-.069.002a.508.508 0 0 0-.254.097.496.496 0 0 0-.104.679.498.498 0 0 0 .326.199l.045.005c.091.003.181.003.272.012a2.45 2.45 0 0 1 2.017 1.513c.024.061.043.125.069.185a.494.494 0 0 0 .45.287h.008a.496.496 0 0 0 .35-.158.482.482 0 0 0 .13-.335.638.638 0 0 0-.048-.219 3.379 3.379 0 0 0-.36-.723 3.438 3.438 0 0 0-2.791-1.543l-.028-.001h-.013z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2 4.5V3h16v1.5zm4.5 3V12h7V7.5h-7zM5.758 6h8.484c.419 0 .758.407.758.91v5.681c0 .502-.34.909-.758.909H5.758c-.419 0-.758-.407-.758-.91V6.91c0-.503.34-.91.758-.91zM2 16.5V15h16v1.5z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2 4.5V3h16v1.5zm2.5 3V12h11V7.5h-11zM4.061 6H15.94c.586 0 1.061.407 1.061.91v5.68c0 .503-.475.91-1.061.91H4.06c-.585 0-1.06-.407-1.06-.91V6.91C3 6.406 3.475 6 4.061 6zM2 16.5V15h16v1.5z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" clip-rule=\\\"evenodd\\\" stroke-linejoin=\\\"round\\\" stroke-miterlimit=\\\"1.414\\\"><path d=\\\"M18 4.5V3H2v1.5h16zm0 3V6h-5.674v1.5H18zm0 3V9h-5.674v1.5H18zm0 3V12h-5.674v1.5H18zm-8.5-6V12h-6V7.5h6zm.818-1.5H2.682C2.305 6 2 6.407 2 6.91v5.68c0 .503.305.91.682.91h7.636c.377 0 .682-.407.682-.91V6.91c0-.503-.305-.91-.682-.91zM18 16.5V15H2v1.5h16z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2 4.5V3h16v1.5zm0 3V6h5.674v1.5zm0 3V9h5.674v1.5zm0 3V12h5.674v1.5zm8.5-6V12h6V7.5h-6zM9.682 6h7.636c.377 0 .682.407.682.91v5.68c0 .503-.305.91-.682.91H9.682c-.377 0-.682-.407-.682-.91V6.91c0-.503.305-.91.682-.91zM2 16.5V15h16v1.5z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7.3 17.37l-.061.088a1.518 1.518 0 0 1-.934.535l-4.178.663-.806-4.153a1.495 1.495 0 0 1 .187-1.058l.056-.086L8.77 2.639c.958-1.351 2.803-1.076 4.296-.03 1.497 1.047 2.387 2.693 1.433 4.055L7.3 17.37zM9.14 4.728l-5.545 8.346 3.277 2.294 5.544-8.346L9.14 4.728zM6.07 16.512l-3.276-2.295.53 2.73 2.746-.435zM9.994 3.506L13.271 5.8c.316-.452-.16-1.333-1.065-1.966-.905-.634-1.895-.78-2.212-.328zM8 18.5L9.375 17H19v1.5H8z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M3 10.423a6.5 6.5 0 0 1 6.056-6.408l.038.67C6.448 5.423 5.354 7.663 5.22 10H9c.552 0 .5.432.5.986v4.511c0 .554-.448.503-1 .503h-5c-.552 0-.5-.449-.5-1.003v-4.574zm8 0a6.5 6.5 0 0 1 6.056-6.408l.038.67c-2.646.739-3.74 2.979-3.873 5.315H17c.552 0 .5.432.5.986v4.511c0 .554-.448.503-1 .503h-5c-.552 0-.5-.449-.5-1.003v-4.574z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><circle cx=\\\"9.5\\\" cy=\\\"4.5\\\" r=\\\"1.5\\\"/><circle cx=\\\"9.5\\\" cy=\\\"10.5\\\" r=\\\"1.5\\\"/><circle cx=\\\"9.5\\\" cy=\\\"16.5\\\" r=\\\"1.5\\\"/></svg>\\n\"","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module editor-classic/classiceditor\n */\nimport Editor from '@ckeditor/ckeditor5-core/src/editor/editor';\nimport DataApiMixin from '@ckeditor/ckeditor5-core/src/editor/utils/dataapimixin';\nimport ElementApiMixin from '@ckeditor/ckeditor5-core/src/editor/utils/elementapimixin';\nimport attachToForm from '@ckeditor/ckeditor5-core/src/editor/utils/attachtoform';\nimport HtmlDataProcessor from '@ckeditor/ckeditor5-engine/src/dataprocessor/htmldataprocessor';\nimport ClassicEditorUI from \"./classiceditorui\";\nimport ClassicEditorUIView from \"./classiceditoruiview\";\nimport getDataFromElement from '@ckeditor/ckeditor5-utils/src/dom/getdatafromelement';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport { isElement } from 'lodash-es';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * The {@glink builds/guides/overview#classic-editor classic editor} implementation.\n * It uses an inline editable and a sticky toolbar, all enclosed in a boxed UI.\n * See the {@glink examples/builds/classic-editor demo}.\n *\n * In order to create a classic editor instance, use the static\n * {@link module:editor-classic/classiceditor~ClassicEditor.create `ClassicEditor.create()`} method.\n *\n * # Classic editor and classic build\n *\n * The classic editor can be used directly from source (if you installed the\n * [`@ckeditor/ckeditor5-editor-classic`](https://www.npmjs.com/package/@ckeditor/ckeditor5-editor-classic) package)\n * but it is also available in the {@glink builds/guides/overview#classic-editor classic build}.\n *\n * {@glink builds/guides/overview Builds} are ready-to-use editors with plugins bundled in. When using the editor from\n * source you need to take care of loading all plugins by yourself\n * (through the {@link module:core/editor/editorconfig~EditorConfig#plugins `config.plugins`} option).\n * Using the editor from source gives much better flexibility and allows easier customization.\n *\n * Read more about initializing the editor from source or as a build in\n * {@link module:editor-classic/classiceditor~ClassicEditor.create `ClassicEditor.create()`}.\n *\n * @mixes module:core/editor/utils/dataapimixin~DataApiMixin\n * @mixes module:core/editor/utils/elementapimixin~ElementApiMixin\n * @implements module:core/editor/editorwithui~EditorWithUI\n * @extends module:core/editor/editor~Editor\n */\n\nvar ClassicEditor = /*#__PURE__*/function (_Editor) {\n  _inherits(ClassicEditor, _Editor);\n\n  var _super = _createSuper(ClassicEditor);\n\n  /**\n   * Creates an instance of the classic editor.\n   *\n   * **Note:** do not use the constructor to create editor instances. Use the static\n   * {@link module:editor-classic/classiceditor~ClassicEditor.create `ClassicEditor.create()`} method instead.\n   *\n   * @protected\n   * @param {HTMLElement|String} sourceElementOrData The DOM element that will be the source for the created editor\n   * or the editor's initial data. For more information see\n   * {@link module:editor-classic/classiceditor~ClassicEditor.create `ClassicEditor.create()`}.\n   * @param {module:core/editor/editorconfig~EditorConfig} config The editor configuration.\n   */\n  function ClassicEditor(sourceElementOrData, config) {\n    var _this;\n\n    _classCallCheck(this, ClassicEditor);\n\n    _this = _super.call(this, config);\n\n    if (isElement(sourceElementOrData)) {\n      _this.sourceElement = sourceElementOrData;\n    }\n\n    _this.data.processor = new HtmlDataProcessor();\n\n    _this.model.document.createRoot();\n\n    _this.ui = new ClassicEditorUI(_assertThisInitialized(_this), new ClassicEditorUIView(_this.locale, _this.editing.view));\n    attachToForm(_assertThisInitialized(_this));\n    return _this;\n  }\n  /**\n   * Destroys the editor instance, releasing all resources used by it.\n   *\n   * Updates the editor's source element with the data.\n   *\n   * @returns {Promise}\n   */\n\n\n  _createClass(ClassicEditor, [{\n    key: \"destroy\",\n    value: function destroy() {\n      if (this.sourceElement) {\n        this.updateSourceElement();\n      }\n\n      this.ui.destroy();\n      return _get(_getPrototypeOf(ClassicEditor.prototype), \"destroy\", this).call(this);\n    }\n    /**\n     * Creates a new classic editor instance.\n     *\n     * There are three ways how the editor can be initialized.\n     *\n     * # Replacing a DOM element (and loading data from it)\n     *\n     * You can initialize the editor using an existing DOM element:\n     *\n     *\t\tClassicEditor\n     *\t\t\t.create( document.querySelector( '#editor' ) )\n     *\t\t\t.then( editor => {\n     *\t\t\t\tconsole.log( 'Editor was initialized', editor );\n     *\t\t\t} )\n     *\t\t\t.catch( err => {\n     *\t\t\t\tconsole.error( err.stack );\n     *\t\t\t} );\n     *\n     * The element's content will be used as the editor data and the element will be replaced by the editor UI.\n     *\n     * # Creating a detached editor\n     *\n     * Alternatively, you can initialize the editor by passing the initial data directly as a string.\n     * In this case, the editor will render an element that must be inserted into the DOM:\n     *\n     *\t\tClassicEditor\n     *\t\t\t.create( '<p>Hello world!</p>' )\n     *\t\t\t.then( editor => {\n     *\t\t\t\tconsole.log( 'Editor was initialized', editor );\n     *\n     *\t\t\t\t// Initial data was provided so the editor UI element needs to be added manually to the DOM.\n     *\t\t\t\tdocument.body.appendChild( editor.ui.element );\n     *\t\t\t} )\n     *\t\t\t.catch( err => {\n     *\t\t\t\tconsole.error( err.stack );\n     *\t\t\t} );\n     *\n     * This lets you dynamically append the editor to your web page whenever it is convenient for you. You may use this method if your\n     * web page content is generated on the client side and the DOM structure is not ready at the moment when you initialize the editor.\n     *\n     * # Replacing a DOM element (and data provided in `config.initialData`)\n     *\n     * You can also mix these two ways by providing a DOM element to be used and passing the initial data through the configuration:\n     *\n     *\t\tClassicEditor\n     *\t\t\t.create( document.querySelector( '#editor' ), {\n     *\t\t\t\tinitialData: '<h2>Initial data</h2><p>Foo bar.</p>'\n     *\t\t\t} )\n     *\t\t\t.then( editor => {\n     *\t\t\t\tconsole.log( 'Editor was initialized', editor );\n     *\t\t\t} )\n     *\t\t\t.catch( err => {\n     *\t\t\t\tconsole.error( err.stack );\n     *\t\t\t} );\n     *\n     * This method can be used to initialize the editor on an existing element with the specified content in case if your integration\n     * makes it difficult to set the content of the source element.\n     *\n     * Note that an error will be thrown if you pass the initial data both as the first parameter and also in the configuration.\n     *\n     * # Configuring the editor\n     *\n     * See the {@link module:core/editor/editorconfig~EditorConfig editor configuration documentation} to learn more about\n     * customizing plugins, toolbar and more.\n     *\n     * # Using the editor from source\n     *\n     * The code samples listed in the previous sections of this documentation assume that you are using an\n     * {@glink builds/guides/overview editor build} (for example – `@ckeditor/ckeditor5-build-classic`).\n     *\n     * If you want to use the classic editor from source (`@ckeditor/ckeditor5-editor-classic/src/classiceditor`),\n     * you need to define the list of\n     * {@link module:core/editor/editorconfig~EditorConfig#plugins plugins to be initialized} and\n     * {@link module:core/editor/editorconfig~EditorConfig#toolbar toolbar items}. Read more about using the editor from\n     * source in the {@glink builds/guides/integration/advanced-setup \"Advanced setup\" guide}.\n     *\n     * @param {HTMLElement|String} sourceElementOrData The DOM element that will be the source for the created editor\n     * or the editor's initial data.\n     *\n     * If a DOM element is passed, its content will be automatically loaded to the editor upon initialization\n     * and the {@link module:editor-classic/classiceditorui~ClassicEditorUI#element editor element} will replace the passed element\n     * in the DOM (the original one will be hidden and the editor will be injected next to it).\n     *\n     * Moreover, the editor data will be set back to the original element once the editor is destroyed and when a form, in which\n     * this element is contained, is submitted (if the original element is a `<textarea>`). This ensures seamless integration with native\n     * web forms.\n     *\n     * If the initial data is passed, a detached editor will be created. In this case you need to insert it into the DOM manually.\n     * It is available under the {@link module:editor-classic/classiceditorui~ClassicEditorUI#element `editor.ui.element`} property.\n     *\n     * @param {module:core/editor/editorconfig~EditorConfig} [config] The editor configuration.\n     * @returns {Promise} A promise resolved once the editor is ready. The promise resolves with the created editor instance.\n     */\n\n  }], [{\n    key: \"create\",\n    value: function create(sourceElementOrData) {\n      var _this2 = this;\n\n      var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      return new Promise(function (resolve) {\n        var editor = new _this2(sourceElementOrData, config);\n        resolve(editor.initPlugins().then(function () {\n          return editor.ui.init(isElement(sourceElementOrData) ? sourceElementOrData : null);\n        }).then(function () {\n          if (!isElement(sourceElementOrData) && config.initialData) {\n            // Documented in core/editor/editorconfig.jdoc.\n            throw new CKEditorError('editor-create-initial-data: ' + 'The config.initialData option cannot be used together with initial data passed in Editor.create().', null);\n          }\n\n          var initialData = config.initialData || getInitialData(sourceElementOrData);\n          return editor.data.init(initialData);\n        }).then(function () {\n          return editor.fire('ready');\n        }).then(function () {\n          return editor;\n        }));\n      });\n    }\n  }]);\n\n  return ClassicEditor;\n}(Editor);\n\nexport { ClassicEditor as default };\nmix(ClassicEditor, DataApiMixin);\nmix(ClassicEditor, ElementApiMixin);\n\nfunction getInitialData(sourceElementOrData) {\n  return isElement(sourceElementOrData) ? getDataFromElement(sourceElementOrData) : sourceElementOrData;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module editor-classic/classiceditorui\n */\nimport EditorUI from '@ckeditor/ckeditor5-core/src/editor/editorui';\nimport enableToolbarKeyboardFocus from '@ckeditor/ckeditor5-ui/src/toolbar/enabletoolbarkeyboardfocus';\nimport normalizeToolbarConfig from '@ckeditor/ckeditor5-ui/src/toolbar/normalizetoolbarconfig';\nimport { enablePlaceholder } from '@ckeditor/ckeditor5-engine/src/view/placeholder';\nimport ElementReplacer from '@ckeditor/ckeditor5-utils/src/elementreplacer';\n/**\n * The classic editor UI class.\n *\n * @extends module:core/editor/editorui~EditorUI\n */\n\nvar ClassicEditorUI = /*#__PURE__*/function (_EditorUI) {\n  _inherits(ClassicEditorUI, _EditorUI);\n\n  var _super = _createSuper(ClassicEditorUI);\n\n  /**\n   * Creates an instance of the classic editor UI class.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor instance.\n   * @param {module:ui/editorui/editoruiview~EditorUIView} view The view of the UI.\n   */\n  function ClassicEditorUI(editor, view) {\n    var _this;\n\n    _classCallCheck(this, ClassicEditorUI);\n\n    _this = _super.call(this, editor);\n    /**\n     * The main (top–most) view of the editor UI.\n     *\n     * @readonly\n     * @member {module:ui/editorui/editoruiview~EditorUIView} #view\n     */\n\n    _this.view = view;\n    /**\n     * A normalized `config.toolbar` object.\n     *\n     * @private\n     * @member {Object}\n     */\n\n    _this._toolbarConfig = normalizeToolbarConfig(editor.config.get('toolbar'));\n    /**\n     * The element replacer instance used to hide the editor's source element.\n     *\n     * @protected\n     * @member {module:utils/elementreplacer~ElementReplacer}\n     */\n\n    _this._elementReplacer = new ElementReplacer();\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ClassicEditorUI, [{\n    key: \"init\",\n\n    /**\n     * Initializes the UI.\n     *\n     * @param {HTMLElement|null} replacementElement The DOM element that will be the source for the created editor.\n     */\n    value: function init(replacementElement) {\n      var editor = this.editor;\n      var view = this.view;\n      var editingView = editor.editing.view;\n      var editable = view.editable;\n      var editingRoot = editingView.document.getRoot(); // The editable UI and editing root should share the same name. Then name is used\n      // to recognize the particular editable, for instance in ARIA attributes.\n\n      editable.name = editingRoot.rootName;\n      view.render(); // The editable UI element in DOM is available for sure only after the editor UI view has been rendered.\n      // But it can be available earlier if a DOM element has been passed to BalloonEditor.create().\n\n      var editableElement = editable.element; // Register the editable UI view in the editor. A single editor instance can aggregate multiple\n      // editable areas (roots) but the classic editor has only one.\n\n      this.setEditableElement(editable.name, editableElement); // Let the global focus tracker know that the editable UI element is focusable and\n      // belongs to the editor. From now on, the focus tracker will sustain the editor focus\n      // as long as the editable is focused (e.g. the user is typing).\n\n      this.focusTracker.add(editableElement); // Let the editable UI element respond to the changes in the global editor focus\n      // tracker. It has been added to the same tracker a few lines above but, in reality, there are\n      // many focusable areas in the editor, like balloons, toolbars or dropdowns and as long\n      // as they have focus, the editable should act like it is focused too (although technically\n      // it isn't), e.g. by setting the proper CSS class, visually announcing focus to the user.\n      // Doing otherwise will result in editable focus styles disappearing, once e.g. the\n      // toolbar gets focused.\n\n      view.editable.bind('isFocused').to(this.focusTracker); // Bind the editable UI element to the editing view, making it an end– and entry–point\n      // of the editor's engine. This is where the engine meets the UI.\n\n      editingView.attachDomRoot(editableElement); // If an element containing the initial data of the editor was provided, replace it with\n      // an editor instance's UI in DOM until the editor is destroyed. For instance, a <textarea>\n      // can be such element.\n\n      if (replacementElement) {\n        this._elementReplacer.replace(replacementElement, this.element);\n      }\n\n      this._initPlaceholder();\n\n      this._initToolbar();\n\n      this.fire('ready');\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var view = this.view;\n      var editingView = this.editor.editing.view;\n\n      this._elementReplacer.restore();\n\n      editingView.detachDomRoot(view.editable.name);\n      view.destroy();\n\n      _get(_getPrototypeOf(ClassicEditorUI.prototype), \"destroy\", this).call(this);\n    }\n    /**\n     * Initializes the editor toolbar.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_initToolbar\",\n    value: function _initToolbar() {\n      var editor = this.editor;\n      var view = this.view;\n      var editingView = editor.editing.view; // Set–up the sticky panel with toolbar.\n\n      view.stickyPanel.bind('isActive').to(this.focusTracker, 'isFocused');\n      view.stickyPanel.limiterElement = view.element;\n\n      if (this._toolbarConfig.viewportTopOffset) {\n        view.stickyPanel.viewportTopOffset = this._toolbarConfig.viewportTopOffset;\n      }\n\n      view.toolbar.fillFromConfig(this._toolbarConfig.items, this.componentFactory);\n      enableToolbarKeyboardFocus({\n        origin: editingView,\n        originFocusTracker: this.focusTracker,\n        originKeystrokeHandler: editor.keystrokes,\n        toolbar: view.toolbar\n      });\n    }\n    /**\n     * Enable the placeholder text on the editing root, if any was configured.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_initPlaceholder\",\n    value: function _initPlaceholder() {\n      var editor = this.editor;\n      var editingView = editor.editing.view;\n      var editingRoot = editingView.document.getRoot();\n      var sourceElement = editor.sourceElement;\n      var placeholderText = editor.config.get('placeholder') || sourceElement && sourceElement.tagName.toLowerCase() === 'textarea' && sourceElement.getAttribute('placeholder');\n\n      if (placeholderText) {\n        enablePlaceholder({\n          view: editingView,\n          element: editingRoot,\n          text: placeholderText,\n          isDirectHost: false\n        });\n      }\n    }\n  }, {\n    key: \"element\",\n    get: function get() {\n      return this.view.element;\n    }\n  }]);\n\n  return ClassicEditorUI;\n}(EditorUI);\n\nexport { ClassicEditorUI as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module editor-classic/classiceditoruiview\n */\nimport BoxedEditorUIView from '@ckeditor/ckeditor5-ui/src/editorui/boxed/boxededitoruiview';\nimport InlineEditableUIView from '@ckeditor/ckeditor5-ui/src/editableui/inline/inlineeditableuiview';\nimport StickyPanelView from '@ckeditor/ckeditor5-ui/src/panel/sticky/stickypanelview';\nimport ToolbarView from '@ckeditor/ckeditor5-ui/src/toolbar/toolbarview';\nimport \"../theme/classiceditor.css\";\n/**\n * Classic editor UI view. Uses an inline editable and a sticky toolbar, all\n * enclosed in a boxed UI view.\n *\n * @extends module:ui/editorui/boxed/boxededitoruiview~BoxedEditorUIView\n */\n\nvar ClassicEditorUIView = /*#__PURE__*/function (_BoxedEditorUIView) {\n  _inherits(ClassicEditorUIView, _BoxedEditorUIView);\n\n  var _super = _createSuper(ClassicEditorUIView);\n\n  /**\n   * Creates an instance of the classic editor UI view.\n   *\n   * @param {module:utils/locale~Locale} locale The {@link module:core/editor/editor~Editor#locale} instance.\n   * @param {module:engine/view/view~View} editingView The editing view instance this view is related to.\n   */\n  function ClassicEditorUIView(locale, editingView) {\n    var _this;\n\n    _classCallCheck(this, ClassicEditorUIView);\n\n    _this = _super.call(this, locale);\n    /**\n     * Sticky panel view instance. This is a parent view of a {@link #toolbar}\n     * that makes toolbar sticky.\n     *\n     * @readonly\n     * @member {module:ui/panel/sticky/stickypanelview~StickyPanelView}\n     */\n\n    _this.stickyPanel = new StickyPanelView(locale);\n    /**\n     * Toolbar view instance.\n     *\n     * @readonly\n     * @member {module:ui/toolbar/toolbarview~ToolbarView}\n     */\n\n    _this.toolbar = new ToolbarView(locale, {\n      shouldGroupWhenFull: true\n    });\n    /**\n     * Editable UI view.\n     *\n     * @readonly\n     * @member {module:ui/editableui/inline/inlineeditableuiview~InlineEditableUIView}\n     */\n\n    _this.editable = new InlineEditableUIView(locale, editingView);\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ClassicEditorUIView, [{\n    key: \"render\",\n    value: function render() {\n      _get(_getPrototypeOf(ClassicEditorUIView.prototype), \"render\", this).call(this); // Set toolbar as a child of a stickyPanel and makes toolbar sticky.\n\n\n      this.stickyPanel.content.add(this.toolbar);\n      this.top.add(this.stickyPanel);\n      this.main.add(this.editable);\n    }\n  }]);\n\n  return ClassicEditorUIView;\n}(BoxedEditorUIView);\n\nexport { ClassicEditorUIView as default };","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./classiceditor.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"2d6b91c0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./classiceditor.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./classiceditor.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.object.keys\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/controller/datacontroller\n */\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Mapper from \"../conversion/mapper\";\nimport DowncastDispatcher from \"../conversion/downcastdispatcher\";\nimport { insertText } from \"../conversion/downcasthelpers\";\nimport UpcastDispatcher from \"../conversion/upcastdispatcher\";\nimport { convertText, convertToModelFragment } from \"../conversion/upcasthelpers\";\nimport ViewDocumentFragment from \"../view/documentfragment\";\nimport ViewDocument from \"../view/document\";\nimport ViewDowncastWriter from \"../view/downcastwriter\";\nimport ModelRange from \"../model/range\";\n/**\n * Controller for the data pipeline. The data pipeline controls how data is retrieved from the document\n * and set inside it. Hence, the controller features two methods which allow to {@link ~DataController#get get}\n * and {@link ~DataController#set set} data of the {@link ~DataController#model model}\n * using given:\n *\n * * {@link module:engine/dataprocessor/dataprocessor~DataProcessor data processor},\n * * downcast converters,\n * * upcast converters.\n *\n * An instance of the data controller is always available in the {@link module:core/editor/editor~Editor#data `editor.data`}\n * property:\n *\n *\t\teditor.data.get( { rootName: 'customRoot' } ); // -> '<p>Hello!</p>'\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar DataController = /*#__PURE__*/function () {\n  /**\n   * Creates a data controller instance.\n   *\n   * @param {module:engine/model/model~Model} model Data model.\n   * @param {module:engine/dataprocessor/dataprocessor~DataProcessor} [dataProcessor] Data processor that should be used\n   * by the controller.\n   */\n  function DataController(model, dataProcessor) {\n    var _this = this;\n\n    _classCallCheck(this, DataController);\n\n    /**\n     * Data model.\n     *\n     * @readonly\n     * @member {module:engine/model/model~Model}\n     */\n    this.model = model;\n    /**\n     * Data processor used during the conversion.\n     *\n     * @readonly\n     * @member {module:engine/dataprocessor/dataprocessor~DataProcessor}\n     */\n\n    this.processor = dataProcessor;\n    /**\n     * Mapper used for the conversion. It has no permanent bindings, because they are created when getting data and\n     * cleared directly after the data are converted. However, the mapper is defined as a class property, because\n     * it needs to be passed to the `DowncastDispatcher` as a conversion API.\n     *\n     * @readonly\n     * @member {module:engine/conversion/mapper~Mapper}\n     */\n\n    this.mapper = new Mapper();\n    /**\n     * Downcast dispatcher used by the {@link #get get method}. Downcast converters should be attached to it.\n     *\n     * @readonly\n     * @member {module:engine/conversion/downcastdispatcher~DowncastDispatcher}\n     */\n\n    this.downcastDispatcher = new DowncastDispatcher({\n      mapper: this.mapper\n    });\n    this.downcastDispatcher.on('insert:$text', insertText(), {\n      priority: 'lowest'\n    });\n    /**\n     * Upcast dispatcher used by the {@link #set set method}. Upcast converters should be attached to it.\n     *\n     * @readonly\n     * @member {module:engine/conversion/upcastdispatcher~UpcastDispatcher}\n     */\n\n    this.upcastDispatcher = new UpcastDispatcher({\n      schema: model.schema\n    }); // Define default converters for text and elements.\n    //\n    // Note that if there is no default converter for the element it will be skipped, for instance `<b>foo</b>` will be\n    // converted to nothing. We add `convertToModelFragment` as a last converter so it converts children of that\n    // element to the document fragment so `<b>foo</b>` will be converted to `foo` if there is no converter for `<b>`.\n\n    this.upcastDispatcher.on('text', convertText(), {\n      priority: 'lowest'\n    });\n    this.upcastDispatcher.on('element', convertToModelFragment(), {\n      priority: 'lowest'\n    });\n    this.upcastDispatcher.on('documentFragment', convertToModelFragment(), {\n      priority: 'lowest'\n    });\n    this.decorate('init'); // Fire `ready` event when initialisation has completed. Such low level listener gives possibility\n    // to plug into initialisation pipeline without interrupting the initialisation flow.\n\n    this.on('init', function () {\n      _this.fire('ready');\n    }, {\n      priority: 'lowest'\n    });\n  }\n  /**\n   * Returns the model's data converted by downcast dispatchers attached to {@link #downcastDispatcher} and\n   * formatted by the {@link #processor data processor}.\n   *\n   * @param {Object} [options]\n   * @param {String} [options.rootName='main'] Root name.\n   * @param {String} [options.trim='empty'] Whether returned data should be trimmed. This option is set to `empty` by default,\n   * which means whenever editor content is considered empty, an empty string will be returned. To turn off trimming completely\n   * use `'none'`. In such cases exact content will be returned (for example `<p>&nbsp;</p>` for an empty editor).\n   * @returns {String} Output data.\n   */\n\n\n  _createClass(DataController, [{\n    key: \"get\",\n    value: function get(options) {\n      var _ref = options || {},\n          _ref$rootName = _ref.rootName,\n          rootName = _ref$rootName === void 0 ? 'main' : _ref$rootName,\n          _ref$trim = _ref.trim,\n          trim = _ref$trim === void 0 ? 'empty' : _ref$trim;\n\n      if (!this._checkIfRootsExists([rootName])) {\n        /**\n         * Cannot get data from a non-existing root. This error is thrown when {@link #get DataController#get() method}\n         * is called with non-existent root name. For example, if there is an editor instance with only `main` root,\n         * calling {@link #get} like:\n         *\n         *\t\tdata.get( { rootName: 'root2' } );\n         *\n         * will throw this error.\n         *\n         * @error datacontroller-get-non-existent-root\n         */\n        throw new CKEditorError('datacontroller-get-non-existent-root: Attempting to get data from a non-existing root.', this);\n      }\n\n      var root = this.model.document.getRoot(rootName);\n\n      if (trim === 'empty' && !this.model.hasContent(root, {\n        ignoreWhitespaces: true\n      })) {\n        return '';\n      }\n\n      return this.stringify(root);\n    }\n    /**\n     * Returns the content of the given {@link module:engine/model/element~Element model's element} or\n     * {@link module:engine/model/documentfragment~DocumentFragment model document fragment} converted by the downcast converters\n     * attached to {@link #downcastDispatcher} and formatted by the {@link #processor data processor}.\n     *\n     * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} modelElementOrFragment\n     * Element whose content will be stringified.\n     * @returns {String} Output data.\n     */\n\n  }, {\n    key: \"stringify\",\n    value: function stringify(modelElementOrFragment) {\n      // Model -> view.\n      var viewDocumentFragment = this.toView(modelElementOrFragment); // View -> data.\n\n      return this.processor.toData(viewDocumentFragment);\n    }\n    /**\n     * Returns the content of the given {@link module:engine/model/element~Element model element} or\n     * {@link module:engine/model/documentfragment~DocumentFragment model document fragment} converted by the downcast\n     * converters attached to {@link #downcastDispatcher} to a\n     * {@link module:engine/view/documentfragment~DocumentFragment view document fragment}.\n     *\n     * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} modelElementOrFragment\n     * Element or document fragment whose content will be converted.\n     * @returns {module:engine/view/documentfragment~DocumentFragment} Output view DocumentFragment.\n     */\n\n  }, {\n    key: \"toView\",\n    value: function toView(modelElementOrFragment) {\n      // Clear bindings so the call to this method gives correct results.\n      this.mapper.clearBindings(); // First, convert elements.\n\n      var modelRange = ModelRange._createIn(modelElementOrFragment);\n\n      var viewDocumentFragment = new ViewDocumentFragment(); // Create separate ViewDowncastWriter just for data conversion purposes.\n      // We have no view controller and rendering do DOM in DataController so view.change() block is not used here.\n\n      var viewWriter = new ViewDowncastWriter(new ViewDocument());\n      this.mapper.bindElements(modelElementOrFragment, viewDocumentFragment);\n      this.downcastDispatcher.convertInsert(modelRange, viewWriter);\n\n      if (!modelElementOrFragment.is('documentFragment')) {\n        // Then, if a document element is converted, convert markers.\n        // From all document markers, get those, which \"intersect\" with the converter element.\n        var markers = _getMarkersRelativeToElement(modelElementOrFragment);\n\n        var _iterator = _createForOfIteratorHelper(markers),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var _step$value = _slicedToArray(_step.value, 2),\n                name = _step$value[0],\n                range = _step$value[1];\n\n            this.downcastDispatcher.convertMarkerAdd(name, range, viewWriter);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n\n      return viewDocumentFragment;\n    }\n    /**\n     * Sets initial input data parsed by the {@link #processor data processor} and\n     * converted by the {@link #upcastDispatcher view-to-model converters}.\n     * Initial data can be set only to document that {@link module:engine/model/document~Document#version} is equal 0.\n     *\n     * **Note** This method is {@link module:utils/observablemixin~ObservableMixin#decorate decorated} which is\n     * used by e.g. collaborative editing plugin that syncs remote data on init.\n     *\n     * When data is passed as a string it is initialized on a default `main` root:\n     *\n     *\t\tdataController.init( '<p>Foo</p>' ); // Initializes data on the `main` root.\n     *\n     * To initialize data on a different root or multiple roots at once, object containing `rootName` - `data` pairs should be passed:\n     *\n     *\t\tdataController.init( { main: '<p>Foo</p>', title: '<h1>Bar</h1>' } ); // Initializes data on the `main` and `title` roots.\n     *\n     * @fires init\n     * @param {String|Object.<String,String>} data Input data as a string or an object containing `rootName` - `data`\n     * pairs to initialize data on multiple roots at once.\n     * @returns {Promise} Promise that is resolved after the data is set on the editor.\n     */\n\n  }, {\n    key: \"init\",\n    value: function init(data) {\n      var _this2 = this;\n\n      if (this.model.document.version) {\n        /**\n         * Cannot set initial data to not empty {@link module:engine/model/document~Document}.\n         * Initial data should be set once, during {@link module:core/editor/editor~Editor} initialization,\n         * when the {@link module:engine/model/document~Document#version} is equal 0.\n         *\n         * @error datacontroller-init-document-not-empty\n         */\n        throw new CKEditorError('datacontroller-init-document-not-empty: Trying to set initial data to not empty document.', this);\n      }\n\n      var initialData = {};\n\n      if (typeof data === 'string') {\n        initialData.main = data; // Default root is 'main'. To initiate data on a different root, object should be passed.\n      } else {\n        initialData = data;\n      }\n\n      if (!this._checkIfRootsExists(Object.keys(initialData))) {\n        /**\n         * Cannot init data on a non-existing root. This error is thrown when {@link #init DataController#init() method}\n         * is called with non-existent root name. For example, if there is an editor instance with only `main` root,\n         * calling {@link #init} like:\n         *\n         * \t\tdata.init( { main: '<p>Foo</p>', root2: '<p>Bar</p>' } );\n         *\n         * will throw this error.\n         *\n         * @error datacontroller-init-non-existent-root\n         */\n        throw new CKEditorError('datacontroller-init-non-existent-root: Attempting to init data on a non-existing root.', this);\n      }\n\n      this.model.enqueueChange('transparent', function (writer) {\n        for (var _i = 0, _Object$keys = Object.keys(initialData); _i < _Object$keys.length; _i++) {\n          var rootName = _Object$keys[_i];\n\n          var modelRoot = _this2.model.document.getRoot(rootName);\n\n          writer.insert(_this2.parse(initialData[rootName], modelRoot), modelRoot, 0);\n        }\n      });\n      return Promise.resolve();\n    }\n    /**\n     * Sets input data parsed by the {@link #processor data processor} and\n     * converted by the {@link #upcastDispatcher view-to-model converters}.\n     * This method can be used any time to replace existing editor data by the new one without clearing the\n     * {@link module:engine/model/document~Document#history document history}.\n     *\n     * This method also creates a batch with all the changes applied. If all you need is to parse data, use\n     * the {@link #parse} method.\n     *\n     * When data is passed as a string it is set on a default `main` root:\n     *\n     *\t\tdataController.set( '<p>Foo</p>' ); // Sets data on the `main` root.\n     *\n     * To set data on a different root or multiple roots at once, object containing `rootName` - `data` pairs should be passed:\n     *\n     *\t\tdataController.set( { main: '<p>Foo</p>', title: '<h1>Bar</h1>' } ); // Sets data on the `main` and `title` roots.\n     *\n     * @param {String|Object.<String,String>} data Input data as a string or an object containing `rootName` - `data`\n     * pairs to set data on multiple roots at once.\n     */\n\n  }, {\n    key: \"set\",\n    value: function set(data) {\n      var _this3 = this;\n\n      var newData = {};\n\n      if (typeof data === 'string') {\n        newData.main = data; // Default root is 'main'. To set data on a different root, object should be passed.\n      } else {\n        newData = data;\n      }\n\n      if (!this._checkIfRootsExists(Object.keys(newData))) {\n        /**\n         * Cannot set data on a non-existing root. This error is thrown when {@link #set DataController#set() method}\n         * is called with non-existent root name. For example, if there is an editor instance with only `main` root,\n         * calling {@link #set} like:\n         *\n         * \t\tdata.set( { main: '<p>Foo</p>', root2: '<p>Bar</p>' } );\n         *\n         * will throw this error.\n         *\n         * @error datacontroller-set-non-existent-root\n         */\n        throw new CKEditorError('datacontroller-set-non-existent-root: Attempting to set data on a non-existing root.', this);\n      }\n\n      this.model.enqueueChange('transparent', function (writer) {\n        writer.setSelection(null);\n        writer.removeSelectionAttribute(_this3.model.document.selection.getAttributeKeys());\n\n        for (var _i2 = 0, _Object$keys2 = Object.keys(newData); _i2 < _Object$keys2.length; _i2++) {\n          var rootName = _Object$keys2[_i2];\n\n          // Save to model.\n          var modelRoot = _this3.model.document.getRoot(rootName);\n\n          writer.remove(writer.createRangeIn(modelRoot));\n          writer.insert(_this3.parse(newData[rootName], modelRoot), modelRoot, 0);\n        }\n      });\n    }\n    /**\n     * Returns the data parsed by the {@link #processor data processor} and then converted by upcast converters\n     * attached to the {@link #upcastDispatcher}.\n     *\n     * @see #set\n     * @param {String} data Data to parse.\n     * @param {module:engine/model/schema~SchemaContextDefinition} [context='$root'] Base context in which the view will\n     * be converted to the model. See: {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher#convert}.\n     * @returns {module:engine/model/documentfragment~DocumentFragment} Parsed data.\n     */\n\n  }, {\n    key: \"parse\",\n    value: function parse(data) {\n      var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '$root';\n      // data -> view\n      var viewDocumentFragment = this.processor.toView(data); // view -> model\n\n      return this.toModel(viewDocumentFragment, context);\n    }\n    /**\n     * Returns the result of the given {@link module:engine/view/element~Element view element} or\n     * {@link module:engine/view/documentfragment~DocumentFragment view document fragment} converted by the\n     * {@link #upcastDispatcher view-to-model converters}, wrapped by {@link module:engine/model/documentfragment~DocumentFragment}.\n     *\n     * When marker elements were converted during the conversion process, it will be set as a document fragment's\n     * {@link module:engine/model/documentfragment~DocumentFragment#markers static markers map}.\n     *\n     * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} viewElementOrFragment\n     * Element or document fragment whose content will be converted.\n     * @param {module:engine/model/schema~SchemaContextDefinition} [context='$root'] Base context in which the view will\n     * be converted to the model. See: {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher#convert}.\n     * @returns {module:engine/model/documentfragment~DocumentFragment} Output document fragment.\n     */\n\n  }, {\n    key: \"toModel\",\n    value: function toModel(viewElementOrFragment) {\n      var _this4 = this;\n\n      var context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '$root';\n      return this.model.change(function (writer) {\n        return _this4.upcastDispatcher.convert(viewElementOrFragment, writer, context);\n      });\n    }\n    /**\n     * Removes all event listeners set by the DataController.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.stopListening();\n    }\n    /**\n     * Checks if all provided root names are existing editor roots.\n     *\n     * @private\n     * @param {Array.<String>} rootNames Root names to check.\n     * @returns {Boolean} Whether all provided root names are existing editor roots.\n     */\n\n  }, {\n    key: \"_checkIfRootsExists\",\n    value: function _checkIfRootsExists(rootNames) {\n      var _iterator2 = _createForOfIteratorHelper(rootNames),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var rootName = _step2.value;\n\n          if (!this.model.document.getRootNames().includes(rootName)) {\n            return false;\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      return true;\n    }\n    /**\n     * Event fired once data initialisation has finished.\n     *\n     * @event ready\n     */\n\n    /**\n     * Event fired after {@link #init init() method} has been run. It can be {@link #listenTo listened to} to adjust/modify\n     * the initialisation flow. However, if the `init` event is stopped or prevented, the {@link #event:ready ready event}\n     * should be fired manually.\n     *\n     * The `init` event is fired by decorated {@link #init} method.\n     * See {@link module:utils/observablemixin~ObservableMixin#decorate} for more information and samples.\n     *\n     * @event init\n     */\n\n  }]);\n\n  return DataController;\n}();\n\nexport { DataController as default };\nmix(DataController, ObservableMixin); // Helper function for downcast conversion.\n//\n// Takes a document element (element that is added to a model document) and checks which markers are inside it\n// and which markers are containing it. If the marker is intersecting with element, the intersection is returned.\n\nfunction _getMarkersRelativeToElement(element) {\n  var result = [];\n  var doc = element.root.document;\n\n  if (!doc) {\n    return [];\n  }\n\n  var elementRange = ModelRange._createIn(element);\n\n  var _iterator3 = _createForOfIteratorHelper(doc.model.markers),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var marker = _step3.value;\n      var intersection = elementRange.getIntersection(marker.getRange());\n\n      if (intersection) {\n        result.push([marker.name, intersection]);\n      }\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  return result;\n}","import \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/controller/editingcontroller\n */\nimport RootEditableElement from \"../view/rooteditableelement\";\nimport View from \"../view/view\";\nimport Mapper from \"../conversion/mapper\";\nimport DowncastDispatcher from \"../conversion/downcastdispatcher\";\nimport { clearAttributes, convertCollapsedSelection, convertRangeSelection, insertText, remove } from \"../conversion/downcasthelpers\";\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport { convertSelectionChange } from \"../conversion/upcasthelpers\";\n/**\n * Controller for the editing pipeline. The editing pipeline controls {@link ~EditingController#model model} rendering,\n * including selection handling. It also creates the {@link ~EditingController#view view} which builds a\n * browser-independent virtualization over the DOM elements. The editing controller also attaches default converters.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar EditingController = /*#__PURE__*/function () {\n  /**\n   * Creates an editing controller instance.\n   *\n   * @param {module:engine/model/model~Model} model Editing model.\n   */\n  function EditingController(model) {\n    var _this = this;\n\n    _classCallCheck(this, EditingController);\n\n    /**\n     * Editor model.\n     *\n     * @readonly\n     * @member {module:engine/model/model~Model}\n     */\n    this.model = model;\n    /**\n     * Editing view controller.\n     *\n     * @readonly\n     * @member {module:engine/view/view~View}\n     */\n\n    this.view = new View();\n    /**\n     * Mapper which describes the model-view binding.\n     *\n     * @readonly\n     * @member {module:engine/conversion/mapper~Mapper}\n     */\n\n    this.mapper = new Mapper();\n    /**\n     * Downcast dispatcher that converts changes from the model to {@link #view the editing view}.\n     *\n     * @readonly\n     * @member {module:engine/conversion/downcastdispatcher~DowncastDispatcher} #downcastDispatcher\n     */\n\n    this.downcastDispatcher = new DowncastDispatcher({\n      mapper: this.mapper\n    });\n    var doc = this.model.document;\n    var selection = doc.selection;\n    var markers = this.model.markers; // When plugins listen on model changes (on selection change, post fixers, etc) and change the view as a result of\n    // model's change, they might trigger view rendering before the conversion is completed (e.g. before the selection\n    // is converted). We disable rendering for the length of the outermost model change() block to prevent that.\n    //\n    // See  https://github.com/ckeditor/ckeditor5-engine/issues/1528\n\n    this.listenTo(this.model, '_beforeChanges', function () {\n      _this.view._disableRendering(true);\n    }, {\n      priority: 'highest'\n    });\n    this.listenTo(this.model, '_afterChanges', function () {\n      _this.view._disableRendering(false);\n    }, {\n      priority: 'lowest'\n    }); // Whenever model document is changed, convert those changes to the view (using model.Document#differ).\n    // Do it on 'low' priority, so changes are converted after other listeners did their job.\n    // Also convert model selection.\n\n    this.listenTo(doc, 'change', function () {\n      _this.view.change(function (writer) {\n        _this.downcastDispatcher.convertChanges(doc.differ, markers, writer);\n\n        _this.downcastDispatcher.convertSelection(selection, markers, writer);\n      });\n    }, {\n      priority: 'low'\n    }); // Convert selection from the view to the model when it changes in the view.\n\n    this.listenTo(this.view.document, 'selectionChange', convertSelectionChange(this.model, this.mapper)); // Attach default model converters.\n\n    this.downcastDispatcher.on('insert:$text', insertText(), {\n      priority: 'lowest'\n    });\n    this.downcastDispatcher.on('remove', remove(), {\n      priority: 'low'\n    }); // Attach default model selection converters.\n\n    this.downcastDispatcher.on('selection', clearAttributes(), {\n      priority: 'low'\n    });\n    this.downcastDispatcher.on('selection', convertRangeSelection(), {\n      priority: 'low'\n    });\n    this.downcastDispatcher.on('selection', convertCollapsedSelection(), {\n      priority: 'low'\n    }); // Binds {@link module:engine/view/document~Document#roots view roots collection} to\n    // {@link module:engine/model/document~Document#roots model roots collection} so creating\n    // model root automatically creates corresponding view root.\n\n    this.view.document.roots.bindTo(this.model.document.roots).using(function (root) {\n      // $graveyard is a special root that has no reflection in the view.\n      if (root.rootName == '$graveyard') {\n        return null;\n      }\n\n      var viewRoot = new RootEditableElement(root.name);\n      viewRoot.rootName = root.rootName;\n      viewRoot._document = _this.view.document;\n\n      _this.mapper.bindElements(root, viewRoot);\n\n      return viewRoot;\n    });\n  }\n  /**\n   * Removes all event listeners attached to the `EditingController`. Destroys all objects created\n   * by `EditingController` that need to be destroyed.\n   */\n\n\n  _createClass(EditingController, [{\n    key: \"destroy\",\n    value: function destroy() {\n      this.view.destroy();\n      this.stopListening();\n    }\n  }]);\n\n  return EditingController;\n}();\n\nexport { EditingController as default };\nmix(EditingController, ObservableMixin);","import \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nvar _marked = /*#__PURE__*/regeneratorRuntime.mark(_getAllUpcastDefinitions),\n    _marked2 = /*#__PURE__*/regeneratorRuntime.mark(_getUpcastDefinition);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/conversion/conversion\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport UpcastHelpers from \"./upcasthelpers\";\nimport DowncastHelpers from \"./downcasthelpers\";\n/**\n * A utility class that helps add converters to upcast and downcast dispatchers.\n *\n * We recommend reading the {@glink framework/guides/architecture/editing-engine Editing engine architecture} guide first to\n * understand the core concepts of the conversion mechanisms.\n *\n * An instance of the conversion manager is available in the\n * {@link module:core/editor/editor~Editor#conversion `editor.conversion`} property\n * and by default has the following groups of dispatchers (i.e. directions of conversion):\n *\n * * `downcast` (editing and data downcasts)\n * * `editingDowncast`\n * * `dataDowncast`\n * * `upcast`\n *\n * # One-way converters\n *\n * To add a converter to a specific group, use the {@link module:engine/conversion/conversion~Conversion#for `for()`}\n * method:\n *\n *\t\t// Add a converter to editing downcast and data downcast.\n *\t\teditor.conversion.for( 'downcast' ).elementToElement( config ) );\n *\n *\t\t// Add a converter to the data pipepline only:\n *\t\teditor.conversion.for( 'dataDowncast' ).elementToElement( dataConversionConfig ) );\n *\n *\t\t// And a slightly different one for the editing pipeline:\n *\t\teditor.conversion.for( 'editingDowncast' ).elementToElement( editingConversionConfig ) );\n *\n * See {@link module:engine/conversion/conversion~Conversion#for `for()`} method documentation to learn more about\n * available conversion helpers and how to use your custom ones.\n *\n * # Two-way converters\n *\n * Besides using one-way converters via the `for()` method, you can also use other methods available in this\n * class to add two-way converters (upcast and downcast):\n *\n * * {@link module:engine/conversion/conversion~Conversion#elementToElement `elementToElement()`} &ndash;\n * Model element to view element and vice versa.\n * * {@link module:engine/conversion/conversion~Conversion#attributeToElement `attributeToElement()`} &ndash;\n * Model attribute to view element and vice versa.\n * * {@link module:engine/conversion/conversion~Conversion#attributeToAttribute `attributeToAttribute()`} &ndash;\n * Model attribute to view element and vice versa.\n */\n\nvar Conversion = /*#__PURE__*/function () {\n  /**\n   * Creates a new conversion instance.\n   *\n   * @param {module:engine/conversion/downcastdispatcher~DowncastDispatcher|\n   * Array.<module:engine/conversion/downcastdispatcher~DowncastDispatcher>} downcastDispatchers\n   * @param {module:engine/conversion/upcastdispatcher~UpcastDispatcher|\n   * Array.<module:engine/conversion/upcastdispatcher~UpcastDispatcher>} upcastDispatchers\n   */\n  function Conversion(downcastDispatchers, upcastDispatchers) {\n    _classCallCheck(this, Conversion);\n\n    /**\n     * Maps dispatchers group name to ConversionHelpers instances.\n     *\n     * @private\n     * @member {Map.<String,module:engine/conversion/conversionhelpers~ConversionHelpers>}\n     */\n    this._helpers = new Map(); // Define default 'downcast' & 'upcast' dispatchers groups. Those groups are always available as two-way converters needs them.\n\n    this._downcast = Array.isArray(downcastDispatchers) ? downcastDispatchers : [downcastDispatchers];\n\n    this._createConversionHelpers({\n      name: 'downcast',\n      dispatchers: this._downcast,\n      isDowncast: true\n    });\n\n    this._upcast = Array.isArray(upcastDispatchers) ? upcastDispatchers : [upcastDispatchers];\n\n    this._createConversionHelpers({\n      name: 'upcast',\n      dispatchers: this._upcast,\n      isDowncast: false\n    });\n  }\n  /**\n   * Define an alias for registered dispatcher.\n   *\n   *\t\tconst conversion = new Conversion(\n   *\t\t\t[ dataDowncastDispatcher, editingDowncastDispatcher ],\n   *\t\t\tupcastDispatcher\n   *\t\t);\n   *\n   *\t\tconversion.addAlias( 'dataDowncast', dataDowncastDispatcher );\n   *\n   * @param {String} alias An alias of a dispatcher.\n   * @param {module:engine/conversion/downcastdispatcher~DowncastDispatcher|\n   * module:engine/conversion/upcastdispatcher~UpcastDispatcher} dispatcher Dispatcher which should have an alias.\n   */\n\n\n  _createClass(Conversion, [{\n    key: \"addAlias\",\n    value: function addAlias(alias, dispatcher) {\n      var isDowncast = this._downcast.includes(dispatcher);\n\n      var isUpcast = this._upcast.includes(dispatcher);\n\n      if (!isUpcast && !isDowncast) {\n        /**\n         * Trying to register and alias for a dispatcher that nas not been registered.\n         *\n         * @error conversion-add-alias-dispatcher-not-registered\n         */\n        throw new CKEditorError('conversion-add-alias-dispatcher-not-registered: ' + 'Trying to register and alias for a dispatcher that nas not been registered.', this);\n      }\n\n      this._createConversionHelpers({\n        name: alias,\n        dispatchers: [dispatcher],\n        isDowncast: isDowncast\n      });\n    }\n    /**\n     * Provides a chainable API to assign converters to conversion dispatchers group.\n     *\n     * If the given group name has not been registered, the\n     * {@link module:utils/ckeditorerror~CKEditorError `conversion-for-unknown-group` error} is thrown.\n     *\n     * You can use conversion helpers available directly in the `for()` chain or your custom ones via\n     * the {@link module:engine/conversion/conversionhelpers~ConversionHelpers#add `add()`} method.\n     *\n     * # Using bulit-in conversion helpers\n     *\n     * The `for()` chain comes with a set of conversion helpers which you can use like this:\n     *\n     *\t\teditor.conversion.for( 'downcast' )\n     *\t\t\t.elementToElement( config1 )        // Adds an element-to-element downcast converter.\n     *\t\t\t.attributeToElement( config2 );     // Adds an attribute-to-element downcast converter.\n     *\n     *\t\teditor.conversion.for( 'upcast' )\n     *\t\t\t.elementToAttribute( config3 );     // Adds an element-to-attribute upcast converter.\n     *\n     * Refer to the documentation of built-in conversion helpers to learn about their configuration options.\n     *\n     * * downcast (model-to-view) conversion helpers:\n     *\n     *\t* {@link module:engine/conversion/downcasthelpers~DowncastHelpers#elementToElement `elementToElement()`},\n     *\t* {@link module:engine/conversion/downcasthelpers~DowncastHelpers#attributeToElement `attributeToElement()`},\n     *\t* {@link module:engine/conversion/downcasthelpers~DowncastHelpers#attributeToAttribute `attributeToAttribute()`}.\n     *\t* {@link module:engine/conversion/downcasthelpers~DowncastHelpers#markerToElement `markerToElement()`}.\n     *\t* {@link module:engine/conversion/downcasthelpers~DowncastHelpers#markerToHighlight `markerToHighlight()`}.\n     *\n     * * upcast (view-to-model) conversion helpers:\n     *\n     *\t* {@link module:engine/conversion/upcasthelpers~UpcastHelpers#elementToElement `elementToElement()`},\n     *\t* {@link module:engine/conversion/upcasthelpers~UpcastHelpers#elementToAttribute `elementToAttribute()`},\n     *\t* {@link module:engine/conversion/upcasthelpers~UpcastHelpers#attributeToAttribute `attributeToAttribute()`}.\n     *\t* {@link module:engine/conversion/upcasthelpers~UpcastHelpers#elementToMarker `elementToMarker()`}.\n     *\n     * # Using custom conversion helpers\n     *\n     * If you need to implement a nontypical converter, you can do so by calling:\n     *\n     *\t\teditor.conversion.for( direction ).add( customHelper );\n     *\n     * The `.add()` method takes exactly one parameter, which is a function. This function should accept one parameter that\n     * is a dispatcher instance. The function should add an actual converter to the passed dispatcher instance.\n     *\n     * Example:\n     *\n     *\t\teditor.conversion.for( 'upcast' ).add( dispatcher => {\n     *\t\t\tdispatcher.on( 'element:a',  ( evt, data, conversionApi ) => {\n     *\t\t\t\t// Do something with a view <a> element.\n     *\t\t\t} );\n     *\t\t} );\n     *\n     * Refer to the documentation of {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher}\n     * and {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} to learn how to write\n     * custom converters.\n     *\n     * @param {String} groupName The name of dispatchers group to add the converters to.\n     * @returns {module:engine/conversion/downcasthelpers~DowncastHelpers|module:engine/conversion/upcasthelpers~UpcastHelpers}\n     */\n\n  }, {\n    key: \"for\",\n    value: function _for(groupName) {\n      if (!this._helpers.has(groupName)) {\n        /**\n         * Trying to add a converter to an unknown dispatchers group.\n         *\n         * @error conversion-for-unknown-group\n         */\n        throw new CKEditorError('conversion-for-unknown-group: Trying to add a converter to an unknown dispatchers group.', this);\n      }\n\n      return this._helpers.get(groupName);\n    }\n    /**\n     * Sets up converters between the model and the view that convert a model element to a view element (and vice versa).\n     * For example, the model `<paragraph>Foo</paragraph>` is `<p>Foo</p>` in the view.\n     *\n     *\t\t// A simple conversion from the `paragraph` model element to the `<p>` view element (and vice versa).\n     *\t\teditor.conversion.elementToElement( { model: 'paragraph', view: 'p' } );\n     *\n     *\t\t// Override other converters by specifying a converter definition with a higher priority.\n     *\t\teditor.conversion.elementToElement( { model: 'paragraph', view: 'div', converterPriority: 'high' } );\n     *\n     *\t\t// View specified as an object instead of a string.\n     *\t\teditor.conversion.elementToElement( {\n     *\t\t\tmodel: 'fancyParagraph',\n     *\t\t\tview: {\n     *\t\t\t\tname: 'p',\n     *\t\t\t\tclasses: 'fancy'\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\t// Use `upcastAlso` to define other view elements that should also be converted to a `paragraph` element.\n     *\t\teditor.conversion.elementToElement( {\n     *\t\t\tmodel: 'paragraph',\n     *\t\t\tview: 'p',\n     *\t\t\tupcastAlso: [\n     *\t\t\t\t'div',\n     *\t\t\t\t{\n     *\t\t\t\t\t// Any element with the `display: block` style.\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\tdisplay: 'block'\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t]\n     *\t\t} );\n     *\n     *\t\t// `upcastAlso` set as callback enables a conversion of a wide range of different view elements.\n     *\t\teditor.conversion.elementToElement( {\n     *\t\t\tmodel: 'heading',\n     *\t\t\tview: 'h2',\n     *\t\t\t// Convert \"headling-like\" paragraphs to headings.\n     *\t\t\tupcastAlso: viewElement => {\n     *\t\t\t\tconst fontSize = viewElement.getStyle( 'font-size' );\n     *\n     *\t\t\t\tif ( !fontSize ) {\n     *\t\t\t\t\treturn null;\n     *\t\t\t\t}\n     *\n     *\t\t\t\tconst match = fontSize.match( /(\\d+)\\s*px/ );\n     *\n     *\t\t\t\tif ( !match ) {\n     *\t\t\t\t\treturn null;\n     *\t\t\t\t}\n     *\n     *\t\t\t\tconst size = Number( match[ 1 ] );\n     *\n     *\t\t\t\tif ( size > 26 ) {\n     *\t\t\t\t\t// Returned value can be an object with the matched properties.\n     *\t\t\t\t\t// These properties will be \"consumed\" during the conversion.\n     *\t\t\t\t\t// See `engine.view.Matcher~MatcherPattern` and `engine.view.Matcher#match` for more details.\n     *\n     *\t\t\t\t\treturn { name: true, styles: [ 'font-size' ] };\n     *\t\t\t\t}\n     *\n     *\t\t\t\treturn null;\n     *\t\t\t}\n     *\t\t} );\n     *\n     * `definition.model` is a `String` with a model element name to convert from or to.\n     * See {@link module:engine/conversion/conversion~ConverterDefinition} to learn about other parameters.\n     *\n     * @param {module:engine/conversion/conversion~ConverterDefinition} definition The converter definition.\n     */\n\n  }, {\n    key: \"elementToElement\",\n    value: function elementToElement(definition) {\n      // Set up downcast converter.\n      this.for('downcast').elementToElement(definition); // Set up upcast converter.\n\n      var _iterator = _createForOfIteratorHelper(_getAllUpcastDefinitions(definition)),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var _step$value = _step.value,\n              model = _step$value.model,\n              view = _step$value.view;\n          this.for('upcast').elementToElement({\n            model: model,\n            view: view,\n            converterPriority: definition.converterPriority\n          });\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * Sets up converters between the model and the view that convert a model attribute to a view element (and vice versa).\n     * For example, a model text node with `\"Foo\"` as data and the `bold` attribute is `<strong>Foo</strong>` in the view.\n     *\n     *\t\t// A simple conversion from the `bold=true` attribute to the `<strong>` view element (and vice versa).\n     *\t\teditor.conversion.attributeToElement( { model: 'bold', view: 'strong' } );\n     *\n     *\t\t// Override other converters by specifying a converter definition with a higher priority.\n     *\t\teditor.conversion.attributeToElement( { model: 'bold', view: 'b', converterPriority: 'high' } );\n     *\n     *\t\t// View specified as an object instead of a string.\n     *\t\teditor.conversion.attributeToElement( {\n     *\t\t\tmodel: 'bold',\n     *\t\t\tview: {\n     *\t\t\t\tname: 'span',\n     *\t\t\t\tclasses: 'bold'\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\t// Use `config.model.name` to define the conversion only from a given node type, `$text` in this case.\n     *\t\t// The same attribute on different elements may then be handled by a different converter.\n     *\t\teditor.conversion.attributeToElement( {\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'textDecoration',\n     *\t\t\t\tvalues: [ 'underline', 'lineThrough' ],\n     *\t\t\t\tname: '$text'\n     *\t\t\t},\n     *\t\t\tview: {\n     *\t\t\t\tunderline: {\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'text-decoration': 'underline'\n     *\t\t\t\t\t}\n     *\t\t\t\t},\n     *\t\t\t\tlineThrough: {\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'text-decoration': 'line-through'\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\t// Use `upcastAlso` to define other view elements that should also be converted to the `bold` attribute.\n     *\t\teditor.conversion.attributeToElement( {\n     *\t\t\tmodel: 'bold',\n     *\t\t\tview: 'strong',\n     *\t\t\tupcastAlso: [\n     *\t\t\t\t'b',\n     *\t\t\t\t{\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tclasses: 'bold'\n     *\t\t\t\t},\n     *\t\t\t\t{\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'font-weight': 'bold'\n     *\t\t\t\t\t}\n     *\t\t\t\t},\n     *\t\t\t\tviewElement => {\n     *\t\t\t\t\tconst fontWeight = viewElement.getStyle( 'font-weight' );\n     *\n     *\t\t\t\t\tif ( viewElement.is( 'span' ) && fontWeight && /\\d+/.test() && Number( fontWeight ) > 500 ) {\n     *\t\t\t\t\t\t// Returned value can be an object with the matched properties.\n     *\t\t\t\t\t\t// These properties will be \"consumed\" during the conversion.\n     *\t\t\t\t\t\t// See `engine.view.Matcher~MatcherPattern` and `engine.view.Matcher#match` for more details.\n     *\n     *\t\t\t\t\t\treturn {\n     *\t\t\t\t\t\t\tname: true,\n     *\t\t\t\t\t\t\tstyles: [ 'font-weight' ]\n     *\t\t\t\t\t\t};\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t]\n     *\t\t} );\n     *\n     *\t\t// Conversion from and to a model attribute key whose value is an enum (`fontSize=big|small`).\n     *\t\t// `upcastAlso` set as callback enables a conversion of a wide range of different view elements.\n     *\t\teditor.conversion.attributeToElement( {\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'fontSize',\n     *\t\t\t\tvalues: [ 'big', 'small' ]\n     *\t\t\t},\n     *\t\t\tview: {\n     *\t\t\t\tbig: {\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'font-size': '1.2em'\n     *\t\t\t\t\t}\n     *\t\t\t\t},\n     *\t\t\t\tsmall: {\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'font-size': '0.8em'\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t},\n     *\t\t\tupcastAlso: {\n     *\t\t\t\tbig: viewElement => {\n     *\t\t\t\t\tconst fontSize = viewElement.getStyle( 'font-size' );\n     *\n     *\t\t\t\t\tif ( !fontSize ) {\n     *\t\t\t\t\t\treturn null;\n     *\t\t\t\t\t}\n     *\n     *\t\t\t\t\tconst match = fontSize.match( /(\\d+)\\s*px/ );\n     *\n     *\t\t\t\t\tif ( !match ) {\n     *\t\t\t\t\t\treturn null;\n     *\t\t\t\t\t}\n     *\n     *\t\t\t\t\tconst size = Number( match[ 1 ] );\n     *\n     *\t\t\t\t\tif ( viewElement.is( 'span' ) && size > 10 ) {\n     *\t\t\t\t\t\t// Returned value can be an object with the matched properties.\n     *\t\t\t\t\t\t// These properties will be \"consumed\" during the conversion.\n     *\t\t\t\t\t\t// See `engine.view.Matcher~MatcherPattern` and `engine.view.Matcher#match` for more details.\n     *\n     *\t\t\t\t\t\treturn { name: true, styles: [ 'font-size' ] };\n     *\t\t\t\t\t}\n     *\n     *\t\t\t\t\treturn null;\n     *\t\t\t\t},\n     *\t\t\t\tsmall: viewElement => {\n     *\t\t\t\t\tconst fontSize = viewElement.getStyle( 'font-size' );\n     *\n     *\t\t\t\t\tif ( !fontSize ) {\n     *\t\t\t\t\t\treturn null;\n     *\t\t\t\t\t}\n     *\n     *\t\t\t\t\tconst match = fontSize.match( /(\\d+)\\s*px/ );\n     *\n     *\t\t\t\t\tif ( !match ) {\n     *\t\t\t\t\t\treturn null;\n     *\t\t\t\t\t}\n     *\n     *\t\t\t\t\tconst size = Number( match[ 1 ] );\n     *\n     *\t\t\t\t\tif ( viewElement.is( 'span' ) && size < 10 ) {\n     *\t\t\t\t\t\t// Returned value can be an object with the matched properties.\n     *\t\t\t\t\t\t// These properties will be \"consumed\" during the conversion.\n     *\t\t\t\t\t\t// See `engine.view.Matcher~MatcherPattern` and `engine.view.Matcher#match` for more details.\n     *\n     *\t\t\t\t\t\treturn { name: true, styles: [ 'font-size' ] };\n     *\t\t\t\t\t}\n     *\n     *\t\t\t\t\treturn null;\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     * The `definition.model` parameter specifies which model attribute should be converted from or to. It can be a `{ key, value }` object\n     * describing the attribute key and value to convert or a `String` specifying just the attribute key (then `value` is set to `true`).\n     * See {@link module:engine/conversion/conversion~ConverterDefinition} to learn about other parameters.\n     *\n     * @param {module:engine/conversion/conversion~ConverterDefinition} definition The converter definition.\n     */\n\n  }, {\n    key: \"attributeToElement\",\n    value: function attributeToElement(definition) {\n      // Set up downcast converter.\n      this.for('downcast').attributeToElement(definition); // Set up upcast converter.\n\n      var _iterator2 = _createForOfIteratorHelper(_getAllUpcastDefinitions(definition)),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var _step2$value = _step2.value,\n              model = _step2$value.model,\n              view = _step2$value.view;\n          this.for('upcast').elementToAttribute({\n            view: view,\n            model: model,\n            converterPriority: definition.converterPriority\n          });\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n    /**\n     * Sets up converters between the model and the view that convert a model attribute to a view attribute (and vice versa).\n     * For example, `<image src='foo.jpg'></image>` is converted to `<img src='foo.jpg'></img>` (the same attribute key and value).\n     * This type of converters is intended to be used with {@link module:engine/model/element~Element model element} nodes.\n     * To convert text attributes {@link module:engine/conversion/conversion~Conversion#attributeToElement `attributeToElement converter`}\n     * should be set up.\n     *\n     *\t\t// A simple conversion from the `source` model attribute to the `src` view attribute (and vice versa).\n     *\t\teditor.conversion.attributeToAttribute( { model: 'source', view: 'src' } );\n     *\n     *\t\t// Attribute values are strictly specified.\n     *\t\teditor.conversion.attributeToAttribute( {\n     *\t\t\tmodel: {\n     *\t\t\t\tname: 'image',\n     *\t\t\t\tkey: 'aside',\n     *\t\t\t\tvalues: [ 'aside' ]\n     *\t\t\t},\n     *\t\t\tview: {\n     *\t\t\t\taside: {\n     *\t\t\t\t\tname: 'img',\n     *\t\t\t\t\tkey: 'class',\n     *\t\t\t\t\tvalue: [ 'aside', 'half-size' ]\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\t// Set the style attribute.\n     *\t\teditor.conversion.attributeToAttribute( {\n     *\t\t\tmodel: {\n     *\t\t\t\tname: 'image',\n     *\t\t\t\tkey: 'aside',\n     *\t\t\t\tvalues: [ 'aside' ]\n     *\t\t\t},\n     *\t\t\tview: {\n     *\t\t\t\taside: {\n     *\t\t\t\t\tname: 'img',\n     *\t\t\t\t\tkey: 'style',\n     *\t\t\t\t\tvalue: {\n     *\t\t\t\t\t\tfloat: 'right',\n     *\t\t\t\t\t\twidth: '50%',\n     *\t\t\t\t\t\tmargin: '5px'\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\t// Conversion from and to a model attribute key whose value is an enum (`align=right|center`).\n     *\t\t// Use `upcastAlso` to define other view elements that should also be converted to the `align=right` attribute.\n     *\t\teditor.conversion.attributeToAttribute( {\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'align',\n     *\t\t\t\tvalues: [ 'right', 'center' ]\n     *\t\t\t},\n     *\t\t\tview: {\n     *\t\t\t\tright: {\n     *\t\t\t\t\tkey: 'class',\n     *\t\t\t\t\tvalue: 'align-right'\n     *\t\t\t\t},\n     *\t\t\t\tcenter: {\n     *\t\t\t\t\tkey: 'class',\n     *\t\t\t\t\tvalue: 'align-center'\n     *\t\t\t\t}\n     *\t\t\t},\n     *\t\t\tupcastAlso: {\n     *\t\t\t\tright: {\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'text-align': 'right'\n     *\t\t\t\t\t}\n     *\t\t\t\t},\n     *\t\t\t\tcenter: {\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'text-align': 'center'\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     * The `definition.model` parameter specifies which model attribute should be converted from and to.\n     * It can be a `{ key, [ values ], [ name ] }` object or a `String`, which will be treated like `{ key: definition.model }`.\n     * The `key` property is the model attribute key to convert from and to.\n     * The `values` are the possible model attribute values. If `values` is not set, the model attribute value will be the same as the\n     * view attribute value.\n     * If `name` is set, the conversion will be set up only for model elements with the given name.\n     *\n     * The `definition.view` parameter specifies which view attribute should be converted from and to.\n     * It can be a `{ key, value, [ name ] }` object or a `String`, which will be treated like `{ key: definition.view }`.\n     * The `key` property is the view attribute key to convert from and to.\n     * The `value` is the view attribute value to convert from and to. If `definition.value` is not set, the view attribute value will be\n     * the same as the model attribute value.\n     * If `key` is `'class'`, `value` can be a `String` or an array of `String`s.\n     * If `key` is `'style'`, `value` is an object with key-value pairs.\n     * In other cases, `value` is a `String`.\n     * If `name` is set, the conversion will be set up only for model elements with the given name.\n     * If `definition.model.values` is set, `definition.view` is an object that assigns values from `definition.model.values`\n     * to `{ key, value, [ name ] }` objects.\n     *\n     * `definition.upcastAlso` specifies which other matching view elements should also be upcast to the given model configuration.\n     * If `definition.model.values` is set, `definition.upcastAlso` should be an object assigning values from `definition.model.values`\n     * to {@link module:engine/view/matcher~MatcherPattern}s or arrays of {@link module:engine/view/matcher~MatcherPattern}s.\n     *\n     * **Note:** `definition.model` and `definition.view` form should be mirrored, so the same types of parameters should\n     * be given in both parameters.\n     *\n     * @param {Object} definition The converter definition.\n     * @param {String|Object} definition.model The model attribute to convert from and to.\n     * @param {String|Object} definition.view The view attribute to convert from and to.\n     * @param {module:engine/view/matcher~MatcherPattern|Array.<module:engine/view/matcher~MatcherPattern>} [definition.upcastAlso]\n     * Any view element matching `definition.upcastAlso` will also be converted to the given model attribute. `definition.upcastAlso`\n     * is used only if `config.model.values` is specified.\n     */\n\n  }, {\n    key: \"attributeToAttribute\",\n    value: function attributeToAttribute(definition) {\n      // Set up downcast converter.\n      this.for('downcast').attributeToAttribute(definition); // Set up upcast converter.\n\n      var _iterator3 = _createForOfIteratorHelper(_getAllUpcastDefinitions(definition)),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var _step3$value = _step3.value,\n              model = _step3$value.model,\n              view = _step3$value.view;\n          this.for('upcast').attributeToAttribute({\n            view: view,\n            model: model\n          });\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n    }\n    /**\n     * Creates and caches conversion helpers for given dispatchers group.\n     *\n     * @private\n     * @param {Object} options\n     * @param {String} options.name Group name.\n     * @param {Array.<module:engine/conversion/downcastdispatcher~DowncastDispatcher|\n     * module:engine/conversion/upcastdispatcher~UpcastDispatcher>} options.dispatchers\n     * @param {Boolean} options.isDowncast\n     */\n\n  }, {\n    key: \"_createConversionHelpers\",\n    value: function _createConversionHelpers(_ref) {\n      var name = _ref.name,\n          dispatchers = _ref.dispatchers,\n          isDowncast = _ref.isDowncast;\n\n      if (this._helpers.has(name)) {\n        /**\n         * Trying to register a group name that has already been registered.\n         *\n         * @error conversion-group-exists\n         */\n        throw new CKEditorError('conversion-group-exists: Trying to register a group name that has already been registered.', this);\n      }\n\n      var helpers = isDowncast ? new DowncastHelpers(dispatchers) : new UpcastHelpers(dispatchers);\n\n      this._helpers.set(name, helpers);\n    }\n  }]);\n\n  return Conversion;\n}();\n/**\n * Defines how the model should be converted from and to the view.\n *\n * @typedef {Object} module:engine/conversion/conversion~ConverterDefinition\n *\n * @property {*} [model] The model conversion definition. Describes the model element or model attribute to convert. This parameter differs\n * for different functions that accept `ConverterDefinition`. See the description of the function to learn how to set it.\n * @property {module:engine/view/elementdefinition~ElementDefinition|Object} view The definition of the view element to convert from and\n * to. If `model` describes multiple values, `view` is an object that assigns these values (`view` object keys) to view element definitions\n * (`view` object values).\n * @property {module:engine/view/matcher~MatcherPattern|Array.<module:engine/view/matcher~MatcherPattern>} [upcastAlso]\n * Any view element matching `upcastAlso` will also be converted to the model. If `model` describes multiple values, `upcastAlso`\n * is an object that assigns these values (`upcastAlso` object keys) to {@link module:engine/view/matcher~MatcherPattern}s\n * (`upcastAlso` object values).\n * @property {module:utils/priorities~PriorityString} [converterPriority] The converter priority.\n */\n// Helper function that creates a joint array out of an item passed in `definition.view` and items passed in\n// `definition.upcastAlso`.\n//\n// @param {module:engine/conversion/conversion~ConverterDefinition} definition\n// @returns {Array} Array containing view definitions.\n\n\nexport { Conversion as default };\n\nfunction _getAllUpcastDefinitions(definition) {\n  var _iterator4, _step4, value, model, view, upcastAlso;\n\n  return regeneratorRuntime.wrap(function _getAllUpcastDefinitions$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          if (!definition.model.values) {\n            _context.next = 22;\n            break;\n          }\n\n          _iterator4 = _createForOfIteratorHelper(definition.model.values);\n          _context.prev = 2;\n\n          _iterator4.s();\n\n        case 4:\n          if ((_step4 = _iterator4.n()).done) {\n            _context.next = 12;\n            break;\n          }\n\n          value = _step4.value;\n          model = {\n            key: definition.model.key,\n            value: value\n          };\n          view = definition.view[value];\n          upcastAlso = definition.upcastAlso ? definition.upcastAlso[value] : undefined;\n          return _context.delegateYield(_getUpcastDefinition(model, view, upcastAlso), \"t0\", 10);\n\n        case 10:\n          _context.next = 4;\n          break;\n\n        case 12:\n          _context.next = 17;\n          break;\n\n        case 14:\n          _context.prev = 14;\n          _context.t1 = _context[\"catch\"](2);\n\n          _iterator4.e(_context.t1);\n\n        case 17:\n          _context.prev = 17;\n\n          _iterator4.f();\n\n          return _context.finish(17);\n\n        case 20:\n          _context.next = 23;\n          break;\n\n        case 22:\n          return _context.delegateYield(_getUpcastDefinition(definition.model, definition.view, definition.upcastAlso), \"t2\", 23);\n\n        case 23:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, _marked, null, [[2, 14, 17, 20]]);\n}\n\nfunction _getUpcastDefinition(model, view, upcastAlso) {\n  var _iterator5, _step5, upcastAlsoItem;\n\n  return regeneratorRuntime.wrap(function _getUpcastDefinition$(_context2) {\n    while (1) {\n      switch (_context2.prev = _context2.next) {\n        case 0:\n          _context2.next = 2;\n          return {\n            model: model,\n            view: view\n          };\n\n        case 2:\n          if (!upcastAlso) {\n            _context2.next = 21;\n            break;\n          }\n\n          upcastAlso = Array.isArray(upcastAlso) ? upcastAlso : [upcastAlso];\n          _iterator5 = _createForOfIteratorHelper(upcastAlso);\n          _context2.prev = 5;\n\n          _iterator5.s();\n\n        case 7:\n          if ((_step5 = _iterator5.n()).done) {\n            _context2.next = 13;\n            break;\n          }\n\n          upcastAlsoItem = _step5.value;\n          _context2.next = 11;\n          return {\n            model: model,\n            view: upcastAlsoItem\n          };\n\n        case 11:\n          _context2.next = 7;\n          break;\n\n        case 13:\n          _context2.next = 18;\n          break;\n\n        case 15:\n          _context2.prev = 15;\n          _context2.t0 = _context2[\"catch\"](5);\n\n          _iterator5.e(_context2.t0);\n\n        case 18:\n          _context2.prev = 18;\n\n          _iterator5.f();\n\n          return _context2.finish(18);\n\n        case 21:\n        case \"end\":\n          return _context2.stop();\n      }\n    }\n  }, _marked2, null, [[5, 15, 18, 21]]);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/conversion/conversionhelpers\n */\n\n/**\n * Base class for conversion helpers.\n */\nvar ConversionHelpers = /*#__PURE__*/function () {\n  /**\n   * Creates a conversion helpers instance.\n   *\n   * @param {Array.<module:engine/conversion/downcastdispatcher~DowncastDispatcher|\n   * module:engine/conversion/upcastdispatcher~UpcastDispatcher>} dispatchers\n   */\n  function ConversionHelpers(dispatchers) {\n    _classCallCheck(this, ConversionHelpers);\n\n    this._dispatchers = dispatchers;\n  }\n  /**\n   * Registers a conversion helper.\n   *\n   * **Note**: See full usage example in the `{@link module:engine/conversion/conversion~Conversion#for conversion.for()}`\n   * method description.\n   *\n   * @param {Function} conversionHelper The function to be called on event.\n   * @returns {module:engine/conversion/downcasthelpers~DowncastHelpers|module:engine/conversion/upcasthelpers~UpcastHelpers}\n   */\n\n\n  _createClass(ConversionHelpers, [{\n    key: \"add\",\n    value: function add(conversionHelper) {\n      var _iterator = _createForOfIteratorHelper(this._dispatchers),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var dispatcher = _step.value;\n          conversionHelper(dispatcher);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return this;\n    }\n  }]);\n\n  return ConversionHelpers;\n}();\n\nexport { ConversionHelpers as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/conversion/downcastdispatcher\n */\nimport Consumable from \"./modelconsumable\";\nimport Range from \"../model/range\";\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport { extend } from 'lodash-es';\n/**\n * `DowncastDispatcher` is a central point of downcasting (conversion from model to view), which is a process of reacting to changes\n * in the model and firing a set of events. Callbacks listening to those events are called converters. Those\n * converters role is to convert the model changes to changes in view (for example, adding view nodes or\n * changing attributes on view elements).\n *\n * During conversion process, `DowncastDispatcher` fires events, basing on state of the model and prepares\n * data for those events. It is important to understand that those events are connected with changes done on model,\n * for example: \"node has been inserted\" or \"attribute has changed\". This is in a contrary to upcasting (view to model conversion),\n * where we convert view state (view nodes) to a model tree.\n *\n * The events are prepared basing on a diff created by {@link module:engine/model/differ~Differ Differ}, which buffers them\n * and then passes to `DowncastDispatcher` as a diff between old model state and new model state.\n *\n * Note, that because changes are converted there is a need to have a mapping between model structure and view structure.\n * To map positions and elements during downcast (model to view conversion) use {@link module:engine/conversion/mapper~Mapper}.\n *\n * `DowncastDispatcher` fires following events for model tree changes:\n *\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert insert}\n * if a range of nodes has been inserted to the model tree,\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:remove remove}\n * if a range of nodes has been removed from the model tree,\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute attribute}\n * if attribute has been added, changed or removed from a model node.\n *\n * For {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert insert}\n * and {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute attribute},\n * `DowncastDispatcher` generates {@link module:engine/conversion/modelconsumable~ModelConsumable consumables}.\n * These are used to have a control over which changes has been already consumed. It is useful when some converters\n * overwrite other or converts multiple changes (for example converts insertion of an element and also converts that\n * element's attributes during insertion).\n *\n * Additionally, `DowncastDispatcher` fires events for {@link module:engine/model/markercollection~Marker marker} changes:\n *\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:addMarker} if a marker has been added,\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:removeMarker} if a marker has been removed.\n *\n * Note, that changing a marker is done through removing the marker from the old range, and adding on the new range,\n * so both those events are fired.\n *\n * Finally, `DowncastDispatcher` also handles firing events for {@link module:engine/model/selection model selection}\n * conversion:\n *\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:selection}\n * which converts selection from model to view,\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute}\n * which is fired for every selection attribute,\n * * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:addMarker}\n * which is fired for every marker which contains selection.\n *\n * Unlike model tree and markers, events for selection are not fired for changes but for selection state.\n *\n * When providing custom listeners for `DowncastDispatcher` remember to check whether given change has not been\n * {@link module:engine/conversion/modelconsumable~ModelConsumable#consume consumed} yet.\n *\n * When providing custom listeners for `DowncastDispatcher` keep in mind that any callback that had\n * {@link module:engine/conversion/modelconsumable~ModelConsumable#consume consumed} a value from a consumable and\n * converted the change should also stop the event (for efficiency purposes).\n *\n * When providing custom listeners for `DowncastDispatcher` remember to use provided\n * {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer} to apply changes to the view document.\n *\n * Example of a custom converter for `DowncastDispatcher`:\n *\n *\t\t// We will convert inserting \"paragraph\" model element into the model.\n *\t\tdowncastDispatcher.on( 'insert:paragraph', ( evt, data, conversionApi ) => {\n *\t\t\t// Remember to check whether the change has not been consumed yet and consume it.\n *\t\t\tif ( conversionApi.consumable.consume( data.item, 'insert' ) ) {\n *\t\t\t\treturn;\n *\t\t\t}\n *\n *\t\t\t// Translate position in model to position in view.\n *\t\t\tconst viewPosition = conversionApi.mapper.toViewPosition( data.range.start );\n *\n *\t\t\t// Create <p> element that will be inserted in view at `viewPosition`.\n *\t\t\tconst viewElement = conversionApi.writer.createContainerElement( 'p' );\n *\n *\t\t\t// Bind the newly created view element to model element so positions will map accordingly in future.\n *\t\t\tconversionApi.mapper.bindElements( data.item, viewElement );\n *\n *\t\t\t// Add the newly created view element to the view.\n *\t\t\tconversionApi.writer.insert( viewPosition, viewElement );\n *\n *\t\t\t// Remember to stop the event propagation.\n *\t\t\tevt.stop();\n *\t\t} );\n */\n\nvar DowncastDispatcher = /*#__PURE__*/function () {\n  /**\n   * Creates a `DowncastDispatcher` instance.\n   *\n   * @see module:engine/conversion/downcastdispatcher~DowncastConversionApi\n   * @param {Object} conversionApi Additional properties for interface that will be passed to events fired\n   * by `DowncastDispatcher`.\n   */\n  function DowncastDispatcher(conversionApi) {\n    _classCallCheck(this, DowncastDispatcher);\n\n    /**\n     * Interface passed by dispatcher to the events callbacks.\n     *\n     * @member {module:engine/conversion/downcastdispatcher~DowncastConversionApi}\n     */\n    this.conversionApi = extend({\n      dispatcher: this\n    }, conversionApi);\n  }\n  /**\n   * Takes {@link module:engine/model/differ~Differ model differ} object with buffered changes and fires conversion basing on it.\n   *\n   * @param {module:engine/model/differ~Differ} differ Differ object with buffered changes.\n   * @param {module:engine/model/markercollection~MarkerCollection} markers Markers connected with converted model.\n   * @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.\n   */\n\n\n  _createClass(DowncastDispatcher, [{\n    key: \"convertChanges\",\n    value: function convertChanges(differ, markers, writer) {\n      // Before the view is updated, remove markers which have changed.\n      var _iterator = _createForOfIteratorHelper(differ.getMarkersToRemove()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var change = _step.value;\n          this.convertMarkerRemove(change.name, change.range, writer);\n        } // Convert changes that happened on model tree.\n\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      var _iterator2 = _createForOfIteratorHelper(differ.getChanges()),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var entry = _step2.value;\n\n          if (entry.type == 'insert') {\n            this.convertInsert(Range._createFromPositionAndShift(entry.position, entry.length), writer);\n          } else if (entry.type == 'remove') {\n            this.convertRemove(entry.position, entry.length, entry.name, writer);\n          } else {\n            // entry.type == 'attribute'.\n            this.convertAttribute(entry.range, entry.attributeKey, entry.attributeOldValue, entry.attributeNewValue, writer);\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var _iterator3 = _createForOfIteratorHelper(this.conversionApi.mapper.flushUnboundMarkerNames()),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var markerName = _step3.value;\n          var markerRange = markers.get(markerName).getRange();\n          this.convertMarkerRemove(markerName, markerRange, writer);\n          this.convertMarkerAdd(markerName, markerRange, writer);\n        } // After the view is updated, convert markers which have changed.\n\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      var _iterator4 = _createForOfIteratorHelper(differ.getMarkersToAdd()),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var _change = _step4.value;\n          this.convertMarkerAdd(_change.name, _change.range, writer);\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n    }\n    /**\n     * Starts conversion of a range insertion.\n     *\n     * For each node in the range, {@link #event:insert insert event is fired}. For each attribute on each node,\n     * {@link #event:attribute attribute event is fired}.\n     *\n     * @fires insert\n     * @fires attribute\n     * @param {module:engine/model/range~Range} range Inserted range.\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.\n     */\n\n  }, {\n    key: \"convertInsert\",\n    value: function convertInsert(range, writer) {\n      this.conversionApi.writer = writer; // Create a list of things that can be consumed, consisting of nodes and their attributes.\n\n      this.conversionApi.consumable = this._createInsertConsumable(range); // Fire a separate insert event for each node and text fragment contained in the range.\n\n      var _iterator5 = _createForOfIteratorHelper(range),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var value = _step5.value;\n          var item = value.item;\n\n          var itemRange = Range._createFromPositionAndShift(value.previousPosition, value.length);\n\n          var data = {\n            item: item,\n            range: itemRange\n          };\n\n          this._testAndFire('insert', data); // Fire a separate addAttribute event for each attribute that was set on inserted items.\n          // This is important because most attributes converters will listen only to add/change/removeAttribute events.\n          // If we would not add this part, attributes on inserted nodes would not be converted.\n\n\n          var _iterator6 = _createForOfIteratorHelper(item.getAttributeKeys()),\n              _step6;\n\n          try {\n            for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n              var key = _step6.value;\n              data.attributeKey = key;\n              data.attributeOldValue = null;\n              data.attributeNewValue = item.getAttribute(key);\n\n              this._testAndFire(\"attribute:\".concat(key), data);\n            }\n          } catch (err) {\n            _iterator6.e(err);\n          } finally {\n            _iterator6.f();\n          }\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      this._clearConversionApi();\n    }\n    /**\n     * Fires conversion of a single node removal. Fires {@link #event:remove remove event} with provided data.\n     *\n     * @param {module:engine/model/position~Position} position Position from which node was removed.\n     * @param {Number} length Offset size of removed node.\n     * @param {String} name Name of removed node.\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.\n     */\n\n  }, {\n    key: \"convertRemove\",\n    value: function convertRemove(position, length, name, writer) {\n      this.conversionApi.writer = writer;\n      this.fire('remove:' + name, {\n        position: position,\n        length: length\n      }, this.conversionApi);\n\n      this._clearConversionApi();\n    }\n    /**\n     * Starts conversion of attribute change on given `range`.\n     *\n     * For each node in the given `range`, {@link #event:attribute attribute event} is fired with the passed data.\n     *\n     * @fires attribute\n     * @param {module:engine/model/range~Range} range Changed range.\n     * @param {String} key Key of the attribute that has changed.\n     * @param {*} oldValue Attribute value before the change or `null` if the attribute has not been set before.\n     * @param {*} newValue New attribute value or `null` if the attribute has been removed.\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.\n     */\n\n  }, {\n    key: \"convertAttribute\",\n    value: function convertAttribute(range, key, oldValue, newValue, writer) {\n      this.conversionApi.writer = writer; // Create a list with attributes to consume.\n\n      this.conversionApi.consumable = this._createConsumableForRange(range, \"attribute:\".concat(key)); // Create a separate attribute event for each node in the range.\n\n      var _iterator7 = _createForOfIteratorHelper(range),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var value = _step7.value;\n          var item = value.item;\n\n          var itemRange = Range._createFromPositionAndShift(value.previousPosition, value.length);\n\n          var data = {\n            item: item,\n            range: itemRange,\n            attributeKey: key,\n            attributeOldValue: oldValue,\n            attributeNewValue: newValue\n          };\n\n          this._testAndFire(\"attribute:\".concat(key), data);\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n\n      this._clearConversionApi();\n    }\n    /**\n     * Starts model selection conversion.\n     *\n     * Fires events for given {@link module:engine/model/selection~Selection selection} to start selection conversion.\n     *\n     * @fires selection\n     * @fires addMarker\n     * @fires attribute\n     * @param {module:engine/model/selection~Selection} selection Selection to convert.\n     * @param {module:engine/model/markercollection~MarkerCollection} markers Markers connected with converted model.\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.\n     */\n\n  }, {\n    key: \"convertSelection\",\n    value: function convertSelection(selection, markers, writer) {\n      var markersAtSelection = Array.from(markers.getMarkersAtPosition(selection.getFirstPosition()));\n      this.conversionApi.writer = writer;\n      this.conversionApi.consumable = this._createSelectionConsumable(selection, markersAtSelection);\n      this.fire('selection', {\n        selection: selection\n      }, this.conversionApi);\n\n      if (!selection.isCollapsed) {\n        return;\n      }\n\n      for (var _i = 0, _markersAtSelection = markersAtSelection; _i < _markersAtSelection.length; _i++) {\n        var marker = _markersAtSelection[_i];\n        var markerRange = marker.getRange();\n\n        if (!shouldMarkerChangeBeConverted(selection.getFirstPosition(), marker, this.conversionApi.mapper)) {\n          continue;\n        }\n\n        var data = {\n          item: selection,\n          markerName: marker.name,\n          markerRange: markerRange\n        };\n\n        if (this.conversionApi.consumable.test(selection, 'addMarker:' + marker.name)) {\n          this.fire('addMarker:' + marker.name, data, this.conversionApi);\n        }\n      }\n\n      var _iterator8 = _createForOfIteratorHelper(selection.getAttributeKeys()),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var key = _step8.value;\n          var _data = {\n            item: selection,\n            range: selection.getFirstRange(),\n            attributeKey: key,\n            attributeOldValue: null,\n            attributeNewValue: selection.getAttribute(key)\n          }; // Do not fire event if the attribute has been consumed.\n\n          if (this.conversionApi.consumable.test(selection, 'attribute:' + _data.attributeKey)) {\n            this.fire('attribute:' + _data.attributeKey + ':$text', _data, this.conversionApi);\n          }\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      this._clearConversionApi();\n    }\n    /**\n     * Converts added marker. Fires {@link #event:addMarker addMarker} event for each item\n     * in marker's range. If range is collapsed single event is dispatched. See event description for more details.\n     *\n     * @fires addMarker\n     * @param {String} markerName Marker name.\n     * @param {module:engine/model/range~Range} markerRange Marker range.\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.\n     */\n\n  }, {\n    key: \"convertMarkerAdd\",\n    value: function convertMarkerAdd(markerName, markerRange, writer) {\n      // Do not convert if range is in graveyard or not in the document (e.g. in DocumentFragment).\n      if (!markerRange.root.document || markerRange.root.rootName == '$graveyard') {\n        return;\n      }\n\n      this.conversionApi.writer = writer; // In markers' case, event name == consumable name.\n\n      var eventName = 'addMarker:' + markerName; //\n      // First, fire an event for the whole marker.\n      //\n\n      var consumable = new Consumable();\n      consumable.add(markerRange, eventName);\n      this.conversionApi.consumable = consumable;\n      this.fire(eventName, {\n        markerName: markerName,\n        markerRange: markerRange\n      }, this.conversionApi); //\n      // Do not fire events for each item inside the range if the range got consumed.\n      //\n\n      if (!consumable.test(markerRange, eventName)) {\n        return;\n      } //\n      // Then, fire an event for each item inside the marker range.\n      //\n\n\n      this.conversionApi.consumable = this._createConsumableForRange(markerRange, eventName);\n\n      var _iterator9 = _createForOfIteratorHelper(markerRange.getItems()),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var item = _step9.value;\n\n          // Do not fire event for already consumed items.\n          if (!this.conversionApi.consumable.test(item, eventName)) {\n            continue;\n          }\n\n          var data = {\n            item: item,\n            range: Range._createOn(item),\n            markerName: markerName,\n            markerRange: markerRange\n          };\n          this.fire(eventName, data, this.conversionApi);\n        }\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      this._clearConversionApi();\n    }\n    /**\n     * Fires conversion of marker removal. Fires {@link #event:removeMarker removeMarker} event with provided data.\n     *\n     * @fires removeMarker\n     * @param {String} markerName Marker name.\n     * @param {module:engine/model/range~Range} markerRange Marker range.\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer View writer that should be used to modify view document.\n     */\n\n  }, {\n    key: \"convertMarkerRemove\",\n    value: function convertMarkerRemove(markerName, markerRange, writer) {\n      // Do not convert if range is in graveyard or not in the document (e.g. in DocumentFragment).\n      if (!markerRange.root.document || markerRange.root.rootName == '$graveyard') {\n        return;\n      }\n\n      this.conversionApi.writer = writer;\n      this.fire('removeMarker:' + markerName, {\n        markerName: markerName,\n        markerRange: markerRange\n      }, this.conversionApi);\n\n      this._clearConversionApi();\n    }\n    /**\n     * Creates {@link module:engine/conversion/modelconsumable~ModelConsumable} with values to consume from given range,\n     * assuming that the range has just been inserted to the model.\n     *\n     * @private\n     * @param {module:engine/model/range~Range} range Inserted range.\n     * @returns {module:engine/conversion/modelconsumable~ModelConsumable} Values to consume.\n     */\n\n  }, {\n    key: \"_createInsertConsumable\",\n    value: function _createInsertConsumable(range) {\n      var consumable = new Consumable();\n\n      var _iterator10 = _createForOfIteratorHelper(range),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var value = _step10.value;\n          var item = value.item;\n          consumable.add(item, 'insert');\n\n          var _iterator11 = _createForOfIteratorHelper(item.getAttributeKeys()),\n              _step11;\n\n          try {\n            for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n              var key = _step11.value;\n              consumable.add(item, 'attribute:' + key);\n            }\n          } catch (err) {\n            _iterator11.e(err);\n          } finally {\n            _iterator11.f();\n          }\n        }\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n\n      return consumable;\n    }\n    /**\n     * Creates {@link module:engine/conversion/modelconsumable~ModelConsumable} with values to consume for given range.\n     *\n     * @private\n     * @param {module:engine/model/range~Range} range Affected range.\n     * @param {String} type Consumable type.\n     * @returns {module:engine/conversion/modelconsumable~ModelConsumable} Values to consume.\n     */\n\n  }, {\n    key: \"_createConsumableForRange\",\n    value: function _createConsumableForRange(range, type) {\n      var consumable = new Consumable();\n\n      var _iterator12 = _createForOfIteratorHelper(range.getItems()),\n          _step12;\n\n      try {\n        for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n          var item = _step12.value;\n          consumable.add(item, type);\n        }\n      } catch (err) {\n        _iterator12.e(err);\n      } finally {\n        _iterator12.f();\n      }\n\n      return consumable;\n    }\n    /**\n     * Creates {@link module:engine/conversion/modelconsumable~ModelConsumable} with selection consumable values.\n     *\n     * @private\n     * @param {module:engine/model/selection~Selection} selection Selection to create consumable from.\n     * @param {Iterable.<module:engine/model/markercollection~Marker>} markers Markers which contains selection.\n     * @returns {module:engine/conversion/modelconsumable~ModelConsumable} Values to consume.\n     */\n\n  }, {\n    key: \"_createSelectionConsumable\",\n    value: function _createSelectionConsumable(selection, markers) {\n      var consumable = new Consumable();\n      consumable.add(selection, 'selection');\n\n      var _iterator13 = _createForOfIteratorHelper(markers),\n          _step13;\n\n      try {\n        for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n          var marker = _step13.value;\n          consumable.add(selection, 'addMarker:' + marker.name);\n        }\n      } catch (err) {\n        _iterator13.e(err);\n      } finally {\n        _iterator13.f();\n      }\n\n      var _iterator14 = _createForOfIteratorHelper(selection.getAttributeKeys()),\n          _step14;\n\n      try {\n        for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n          var key = _step14.value;\n          consumable.add(selection, 'attribute:' + key);\n        }\n      } catch (err) {\n        _iterator14.e(err);\n      } finally {\n        _iterator14.f();\n      }\n\n      return consumable;\n    }\n    /**\n     * Tests passed `consumable` to check whether given event can be fired and if so, fires it.\n     *\n     * @private\n     * @fires insert\n     * @fires attribute\n     * @param {String} type Event type.\n     * @param {Object} data Event data.\n     */\n\n  }, {\n    key: \"_testAndFire\",\n    value: function _testAndFire(type, data) {\n      if (!this.conversionApi.consumable.test(data.item, type)) {\n        // Do not fire event if the item was consumed.\n        return;\n      }\n\n      var name = data.item.name || '$text';\n      this.fire(type + ':' + name, data, this.conversionApi);\n    }\n    /**\n     * Clears conversion API object.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_clearConversionApi\",\n    value: function _clearConversionApi() {\n      delete this.conversionApi.writer;\n      delete this.conversionApi.consumable;\n    }\n    /**\n     * Fired for inserted nodes.\n     *\n     * `insert` is a namespace for a class of events. Names of actually called events follow this pattern:\n     * `insert:name`. `name` is either `'$text'`, when {@link module:engine/model/text~Text a text node} has been inserted,\n     * or {@link module:engine/model/element~Element#name name} of inserted element.\n     *\n     * This way listeners can either listen to a general `insert` event or specific event (for example `insert:paragraph`).\n     *\n     * @event insert\n     * @param {Object} data Additional information about the change.\n     * @param {module:engine/model/item~Item} data.item Inserted item.\n     * @param {module:engine/model/range~Range} data.range Range spanning over inserted item.\n     * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface\n     * to be used by callback, passed in `DowncastDispatcher` constructor.\n     */\n\n    /**\n     * Fired for removed nodes.\n     *\n     * `remove` is a namespace for a class of events. Names of actually called events follow this pattern:\n     * `remove:name`. `name` is either `'$text'`, when {@link module:engine/model/text~Text a text node} has been removed,\n     * or the {@link module:engine/model/element~Element#name name} of removed element.\n     *\n     * This way listeners can either listen to a general `remove` event or specific event (for example `remove:paragraph`).\n     *\n     * @event remove\n     * @param {Object} data Additional information about the change.\n     * @param {module:engine/model/position~Position} data.position Position from which the node has been removed.\n     * @param {Number} data.length Offset size of the removed node.\n     * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface\n     * to be used by callback, passed in `DowncastDispatcher` constructor.\n     */\n\n    /**\n     * Fired in the following cases:\n     *\n     * * when an attribute has been added, changed, or removed from a node,\n     * * when a node with an attribute is inserted,\n     * * when collapsed model selection attribute is converted.\n     *\n     * `attribute` is a namespace for a class of events. Names of actually called events follow this pattern:\n     * `attribute:attributeKey:name`. `attributeKey` is the key of added/changed/removed attribute.\n     * `name` is either `'$text'` if change was on {@link module:engine/model/text~Text a text node},\n     * or the {@link module:engine/model/element~Element#name name} of element which attribute has changed.\n     *\n     * This way listeners can either listen to a general `attribute:bold` event or specific event (for example `attribute:src:image`).\n     *\n     * @event attribute\n     * @param {Object} data Additional information about the change.\n     * @param {module:engine/model/item~Item|module:engine/model/documentselection~DocumentSelection} data.item Changed item\n     * or converted selection.\n     * @param {module:engine/model/range~Range} data.range Range spanning over changed item or selection range.\n     * @param {String} data.attributeKey Attribute key.\n     * @param {*} data.attributeOldValue Attribute value before the change. This is `null` when selection attribute is converted.\n     * @param {*} data.attributeNewValue New attribute value.\n     * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface\n     * to be used by callback, passed in `DowncastDispatcher` constructor.\n     */\n\n    /**\n     * Fired for {@link module:engine/model/selection~Selection selection} changes.\n     *\n     * @event selection\n     * @param {module:engine/model/selection~Selection} selection Selection that is converted.\n     * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface\n     * to be used by callback, passed in `DowncastDispatcher` constructor.\n     */\n\n    /**\n     * Fired when a new marker is added to the model. Also fired when collapsed model selection that is inside marker is converted.\n     *\n     * `addMarker` is a namespace for a class of events. Names of actually called events follow this pattern:\n     * `addMarker:markerName`. By specifying certain marker names, you can make the events even more gradual. For example,\n     * if markers are named `foo:abc`, `foo:bar`, then it is possible to listen to `addMarker:foo` or `addMarker:foo:abc` and\n     * `addMarker:foo:bar` events.\n     *\n     * If the marker range is not collapsed:\n     *\n     * * the event is fired for each item in the marker range one by one,\n     * * `conversionApi.consumable` includes each item of the marker range and the consumable value is same as event name.\n     *\n     * If the marker range is collapsed:\n     *\n     * * there is only one event,\n     * * `conversionApi.consumable` includes marker range with event name.\n     *\n     * If selection inside a marker is converted:\n     *\n     * * there is only one event,\n     * * `conversionApi.consumable` includes selection instance with event name.\n     *\n     * @event addMarker\n     * @param {Object} data Additional information about the change.\n     * @param {module:engine/model/item~Item|module:engine/model/selection~Selection} data.item Item inside the new marker or\n     * the selection that is being converted.\n     * @param {module:engine/model/range~Range} [data.range] Range spanning over converted item. Available only in marker conversion, if\n     * the marker range was not collapsed.\n     * @param {module:engine/model/range~Range} data.markerRange Marker range.\n     * @param {String} data.markerName Marker name.\n     * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface\n     * to be used by callback, passed in `DowncastDispatcher` constructor.\n     */\n\n    /**\n     * Fired when marker is removed from the model.\n     *\n     * `removeMarker` is a namespace for a class of events. Names of actually called events follow this pattern:\n     * `removeMarker:markerName`. By specifying certain marker names, you can make the events even more gradual. For example,\n     * if markers are named `foo:abc`, `foo:bar`, then it is possible to listen to `removeMarker:foo` or `removeMarker:foo:abc` and\n     * `removeMarker:foo:bar` events.\n     *\n     * @event removeMarker\n     * @param {Object} data Additional information about the change.\n     * @param {module:engine/model/range~Range} data.markerRange Marker range.\n     * @param {String} data.markerName Marker name.\n     * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface\n     * to be used by callback, passed in `DowncastDispatcher` constructor.\n     */\n\n  }]);\n\n  return DowncastDispatcher;\n}();\n\nexport { DowncastDispatcher as default };\nmix(DowncastDispatcher, EmitterMixin); // Helper function, checks whether change of `marker` at `modelPosition` should be converted. Marker changes are not\n// converted if they happen inside an element with custom conversion method.\n//\n// @param {module:engine/model/position~Position} modelPosition\n// @param {module:engine/model/markercollection~Marker} marker\n// @param {module:engine/conversion/mapper~Mapper} mapper\n// @returns {Boolean}\n\nfunction shouldMarkerChangeBeConverted(modelPosition, marker, mapper) {\n  var range = marker.getRange();\n  var ancestors = Array.from(modelPosition.getAncestors());\n  ancestors.shift(); // Remove root element. It cannot be passed to `model.Range#containsItem`.\n\n  ancestors.reverse();\n  var hasCustomHandling = ancestors.some(function (element) {\n    if (range.containsItem(element)) {\n      var viewElement = mapper.toViewElement(element);\n      return !!viewElement.getCustomProperty('addHighlight');\n    }\n  });\n  return !hasCustomHandling;\n}\n/**\n * Conversion interface that is registered for given {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}\n * and is passed as one of parameters when {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher dispatcher}\n * fires it's events.\n *\n * @interface module:engine/conversion/downcastdispatcher~DowncastConversionApi\n */\n\n/**\n * The {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} instance.\n *\n * @member {module:engine/conversion/downcastdispatcher~DowncastDispatcher} #dispatcher\n */\n\n/**\n * Stores information about what parts of processed model item are still waiting to be handled. After a piece of model item\n * was converted, appropriate consumable value should be {@link module:engine/conversion/modelconsumable~ModelConsumable#consume consumed}.\n *\n * @member {module:engine/conversion/modelconsumable~ModelConsumable} #consumable\n */\n\n/**\n * The {@link module:engine/conversion/mapper~Mapper} instance.\n *\n * @member {module:engine/conversion/mapper~Mapper} #mapper\n */\n\n/**\n * The {@link module:engine/view/downcastwriter~DowncastWriter} instance used to manipulate data during conversion.\n *\n * @member {module:engine/view/downcastwriter~DowncastWriter} #writer\n */","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _typeof from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/typeof\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * Contains downcast (model-to-view) converters for {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}.\n *\n * @module engine/conversion/downcasthelpers\n */\nimport ModelRange from \"../model/range\";\nimport ModelSelection from \"../model/selection\";\nimport ModelElement from \"../model/element\";\nimport ViewAttributeElement from \"../view/attributeelement\";\nimport DocumentSelection from \"../model/documentselection\";\nimport ConversionHelpers from \"./conversionhelpers\";\nimport { cloneDeep } from 'lodash-es';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Downcast conversion helper functions.\n *\n * @extends module:engine/conversion/conversionhelpers~ConversionHelpers\n */\n\nvar DowncastHelpers = /*#__PURE__*/function (_ConversionHelpers) {\n  _inherits(DowncastHelpers, _ConversionHelpers);\n\n  var _super = _createSuper(DowncastHelpers);\n\n  function DowncastHelpers() {\n    _classCallCheck(this, DowncastHelpers);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(DowncastHelpers, [{\n    key: \"elementToElement\",\n\n    /**\n     * Model element to view element conversion helper.\n     *\n     * This conversion results in creating a view element. For example, model `<paragraph>Foo</paragraph>` becomes `<p>Foo</p>` in the view.\n     *\n     *\t\teditor.conversion.for( 'downcast' ).elementToElement( {\n     *\t\t\tmodel: 'paragraph',\n     *\t\t\tview: 'p'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).elementToElement( {\n     *\t\t\tmodel: 'paragraph',\n     *\t\t\tview: 'div',\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).elementToElement( {\n     *\t\t\tmodel: 'fancyParagraph',\n     *\t\t\tview: {\n     *\t\t\t\tname: 'p',\n     *\t\t\t\tclasses: 'fancy'\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).elementToElement( {\n     *\t\t\tmodel: 'heading',\n     *\t\t\tview: ( modelElement, viewWriter ) => {\n     *\t\t\t\treturn viewWriter.createContainerElement( 'h' + modelElement.getAttribute( 'level' ) )\n     *\t\t\t}\n     *\t\t} );\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #elementToElement\n     * @param {Object} config Conversion configuration.\n     * @param {String} config.model The name of the model element to convert.\n     * @param {module:engine/view/elementdefinition~ElementDefinition|Function} config.view A view element definition or a function\n     * that takes the model element and {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer}\n     * as parameters and returns a view container element.\n     * @returns {module:engine/conversion/downcasthelpers~DowncastHelpers}\n     */\n    value: function elementToElement(config) {\n      return this.add(downcastElementToElement(config));\n    }\n    /**\n     * Model attribute to view element conversion helper.\n     *\n     * This conversion results in wrapping view nodes with a view attribute element. For example, a model text node with\n     * `\"Foo\"` as data and the `bold` attribute becomes `<strong>Foo</strong>` in the view.\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n     *\t\t\tmodel: 'bold',\n     *\t\t\tview: 'strong'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n     *\t\t\tmodel: 'bold',\n     *\t\t\tview: 'b',\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n     *\t\t\tmodel: 'invert',\n     *\t\t\tview: {\n     *\t\t\t\tname: 'span',\n     *\t\t\t\tclasses: [ 'font-light', 'bg-dark' ]\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'fontSize',\n     *\t\t\t\tvalues: [ 'big', 'small' ]\n     *\t\t\t},\n     *\t\t\tview: {\n     *\t\t\t\tbig: {\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'font-size': '1.2em'\n     *\t\t\t\t\t}\n     *\t\t\t\t},\n     *\t\t\t\tsmall: {\n     *\t\t\t\t\tname: 'span',\n     *\t\t\t\t\tstyles: {\n     *\t\t\t\t\t\t'font-size': '0.8em'\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n     *\t\t\tmodel: 'bold',\n     *\t\t\tview: ( modelAttributeValue, viewWriter ) => {\n     *\t\t\t\treturn viewWriter.createAttributeElement( 'span', {\n     *\t\t\t\t\tstyle: 'font-weight:' + modelAttributeValue\n     *\t\t\t\t} );\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'color',\n     *\t\t\t\tname: '$text'\n     *\t\t\t},\n     *\t\t\tview: ( modelAttributeValue, viewWriter ) => {\n     *\t\t\t\treturn viewWriter.createAttributeElement( 'span', {\n     *\t\t\t\t\tstyle: 'color:' + modelAttributeValue\n     *\t\t\t\t} );\n     *\t\t\t}\n     *\t\t} );\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #attributeToElement\n     * @param {Object} config Conversion configuration.\n     * @param {String|Object} config.model The key of the attribute to convert from or a `{ key, values }` object. `values` is an array\n     * of `String`s with possible values if the model attribute is an enumerable.\n     * @param {module:engine/view/elementdefinition~ElementDefinition|Function|Object} config.view A view element definition or a function\n     * that takes the model attribute value and {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer}\n     * as parameters and returns a view attribute element. If `config.model.values` is\n     * given, `config.view` should be an object assigning values from `config.model.values` to view element definitions or functions.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n     * @returns {module:engine/conversion/downcasthelpers~DowncastHelpers}\n     */\n\n  }, {\n    key: \"attributeToElement\",\n    value: function attributeToElement(config) {\n      return this.add(downcastAttributeToElement(config));\n    }\n    /**\n     * Model attribute to view attribute conversion helper.\n     *\n     * This conversion results in adding an attribute to a view node, basing on an attribute from a model node. For example,\n     * `<image src='foo.jpg'></image>` is converted to `<img src='foo.jpg'></img>`.\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n     *\t\t\tmodel: 'source',\n     *\t\t\tview: 'src'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n     *\t\t\tmodel: 'source',\n     *\t\t\tview: 'href',\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n     *\t\t\tmodel: {\n     *\t\t\t\tname: 'image',\n     *\t\t\t\tkey: 'source'\n     *\t\t\t},\n     *\t\t\tview: 'src'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n     *\t\t\tmodel: {\n     *\t\t\t\tname: 'styled',\n     *\t\t\t\tvalues: [ 'dark', 'light' ]\n     *\t\t\t},\n     *\t\t\tview: {\n     *\t\t\t\tdark: {\n     *\t\t\t\t\tkey: 'class',\n     *\t\t\t\t\tvalue: [ 'styled', 'styled-dark' ]\n     *\t\t\t\t},\n     *\t\t\t\tlight: {\n     *\t\t\t\t\tkey: 'class',\n     *\t\t\t\t\tvalue: [ 'styled', 'styled-light' ]\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n     *\t\t\tmodel: 'styled',\n     *\t\t\tview: modelAttributeValue => ( { key: 'class', value: 'styled-' + modelAttributeValue } )\n     *\t\t} );\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #attributeToAttribute\n     * @param {Object} config Conversion configuration.\n     * @param {String|Object} config.model The key of the attribute to convert from or a `{ key, values, [ name ] }` object describing\n     * the attribute key, possible values and, optionally, an element name to convert from.\n     * @param {String|Object|Function} config.view A view attribute key, or a `{ key, value }` object or a function that takes\n     * the model attribute value and returns a `{ key, value }` object. If `key` is `'class'`, `value` can be a `String` or an\n     * array of `String`s. If `key` is `'style'`, `value` is an object with key-value pairs. In other cases, `value` is a `String`.\n     * If `config.model.values` is set, `config.view` should be an object assigning values from `config.model.values` to\n     * `{ key, value }` objects or a functions.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n     * @returns {module:engine/conversion/downcasthelpers~DowncastHelpers}\n     */\n\n  }, {\n    key: \"attributeToAttribute\",\n    value: function attributeToAttribute(config) {\n      return this.add(downcastAttributeToAttribute(config));\n    }\n    /**\n     * Model marker to view element conversion helper.\n     *\n     * This conversion results in creating a view element on the boundaries of the converted marker. If the converted marker\n     * is collapsed, only one element is created. For example, model marker set like this: `<paragraph>F[oo b]ar</paragraph>`\n     * becomes `<p>F<span data-marker=\"search\"></span>oo b<span data-marker=\"search\"></span>ar</p>` in the view.\n     *\n     *\t\teditor.conversion.for( 'downcast' ).markerToElement( {\n     *\t\t\tmodel: 'search',\n     *\t\t\tview: 'marker-search'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).markerToElement( {\n     *\t\t\tmodel: 'search',\n     *\t\t\tview: 'search-result',\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).markerToElement( {\n     *\t\t\tmodel: 'search',\n     *\t\t\tview: {\n     *\t\t\t\tname: 'span',\n     *\t\t\t\tattributes: {\n     *\t\t\t\t\t'data-marker': 'search'\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).markerToElement( {\n     *\t\t\tmodel: 'search',\n     *\t\t\tview: ( markerData, viewWriter ) => {\n     *\t\t\t\treturn viewWriter.createUIElement( 'span', {\n     *\t\t\t\t\t'data-marker': 'search',\n     *\t\t\t\t\t'data-start': markerData.isOpening\n     *\t\t\t\t} );\n     *\t\t\t}\n     *\t\t} );\n     *\n     * If a function is passed as the `config.view` parameter, it will be used to generate both boundary elements. The function\n     * receives the `data` object as a parameter and should return an instance of the\n     * {@link module:engine/view/uielement~UIElement view UI element}. The `data` object and\n     * {@link module:engine/conversion/downcastdispatcher~DowncastConversionApi `conversionApi`} are passed from\n     * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:addMarker}. Additionally,\n     * the `data.isOpening` parameter is passed, which is set to `true` for the marker start boundary element, and `false` to\n     * the marker end boundary element.\n     *\n     * This kind of conversion is useful for saving data into the database, so it should be used in the data conversion pipeline.\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #markerToElement\n     * @param {Object} config Conversion configuration.\n     * @param {String} config.model The name of the model marker (or model marker group) to convert.\n     * @param {module:engine/view/elementdefinition~ElementDefinition|Function} config.view A view element definition or a function\n     * that takes the model marker data as a parameter and returns a view UI element.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n     * @returns {module:engine/conversion/downcasthelpers~DowncastHelpers}\n     */\n\n  }, {\n    key: \"markerToElement\",\n    value: function markerToElement(config) {\n      return this.add(downcastMarkerToElement(config));\n    }\n    /**\n     * Model marker to highlight conversion helper.\n     *\n     * This conversion results in creating a highlight on view nodes. For this kind of conversion,\n     * {@link module:engine/conversion/downcasthelpers~HighlightDescriptor} should be provided.\n     *\n     * For text nodes, a `<span>` {@link module:engine/view/attributeelement~AttributeElement} is created and it wraps all text nodes\n     * in the converted marker range. For example, a model marker set like this: `<paragraph>F[oo b]ar</paragraph>` becomes\n     * `<p>F<span class=\"comment\">oo b</span>ar</p>` in the view.\n     *\n     * {@link module:engine/view/containerelement~ContainerElement} may provide a custom way of handling highlight. Most often,\n     * the element itself is given classes and attributes described in the highlight descriptor (instead of being wrapped in `<span>`).\n     * For example, a model marker set like this: `[<image src=\"foo.jpg\"></image>]` becomes `<img src=\"foo.jpg\" class=\"comment\"></img>`\n     * in the view.\n     *\n     * For container elements, the conversion is two-step. While the converter processes the highlight descriptor and passes it\n     * to a container element, it is the container element instance itself that applies values from the highlight descriptor.\n     * So, in a sense, the converter takes care of stating what should be applied on what, while the element decides how to apply that.\n     *\n     *\t\teditor.conversion.for( 'downcast' ).markerToHighlight( { model: 'comment', view: { classes: 'comment' } } );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).markerToHighlight( {\n     *\t\t\tmodel: 'comment',\n     *\t\t\tview: { classes: 'new-comment' },\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'downcast' ).markerToHighlight( {\n     *\t\t\tmodel: 'comment',\n     *\t\t\tview: data => {\n     *\t\t\t\t// Assuming that the marker name is in a form of comment:commentType.\n     *\t\t\t\tconst commentType = data.markerName.split( ':' )[ 1 ];\n     *\n     *\t\t\t\treturn {\n     *\t\t\t\t\tclasses: [ 'comment', 'comment-' + commentType ]\n     *\t\t\t\t};\n     *\t\t\t}\n     *\t\t} );\n     *\n     * If a function is passed as the `config.view` parameter, it will be used to generate the highlight descriptor. The function\n     * receives the `data` object as a parameter and should return a\n     * {@link module:engine/conversion/downcasthelpers~HighlightDescriptor highlight descriptor}.\n     * The `data` object properties are passed from {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:addMarker}.\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #markerToHighlight\n     * @param {Object} config Conversion configuration.\n     * @param {String} config.model The name of the model marker (or model marker group) to convert.\n     * @param {module:engine/conversion/downcasthelpers~HighlightDescriptor|Function} config.view A highlight descriptor\n     * that will be used for highlighting or a function that takes the model marker data as a parameter and returns a highlight descriptor.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n     * @returns {module:engine/conversion/downcasthelpers~DowncastHelpers}\n     */\n\n  }, {\n    key: \"markerToHighlight\",\n    value: function markerToHighlight(config) {\n      return this.add(downcastMarkerToHighlight(config));\n    }\n  }]);\n\n  return DowncastHelpers;\n}(ConversionHelpers);\n/**\n * Function factory that creates a default downcast converter for text insertion changes.\n *\n * The converter automatically consumes the corresponding value from the consumables list and stops the event (see\n * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}).\n *\n *\t\tmodelDispatcher.on( 'insert:$text', insertText() );\n *\n * @returns {Function} Insert text event converter.\n */\n\n\nexport { DowncastHelpers as default };\nexport function insertText() {\n  return function (evt, data, conversionApi) {\n    if (!conversionApi.consumable.consume(data.item, 'insert')) {\n      return;\n    }\n\n    var viewWriter = conversionApi.writer;\n    var viewPosition = conversionApi.mapper.toViewPosition(data.range.start);\n    var viewText = viewWriter.createText(data.item.data);\n    viewWriter.insert(viewPosition, viewText);\n  };\n}\n/**\n * Function factory that creates a default downcast converter for node remove changes.\n *\n *\t\tmodelDispatcher.on( 'remove', remove() );\n *\n * @returns {Function} Remove event converter.\n */\n\nexport function remove() {\n  return function (evt, data, conversionApi) {\n    // Find view range start position by mapping model position at which the remove happened.\n    var viewStart = conversionApi.mapper.toViewPosition(data.position);\n    var modelEnd = data.position.getShiftedBy(data.length);\n    var viewEnd = conversionApi.mapper.toViewPosition(modelEnd, {\n      isPhantom: true\n    });\n    var viewRange = conversionApi.writer.createRange(viewStart, viewEnd); // Trim the range to remove in case some UI elements are on the view range boundaries.\n\n    var removed = conversionApi.writer.remove(viewRange.getTrimmed()); // After the range is removed, unbind all view elements from the model.\n    // Range inside view document fragment is used to unbind deeply.\n\n    var _iterator = _createForOfIteratorHelper(conversionApi.writer.createRangeIn(removed).getItems()),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var child = _step.value;\n        conversionApi.mapper.unbindViewElement(child);\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  };\n}\n/**\n * Creates a `<span>` {@link module:engine/view/attributeelement~AttributeElement view attribute element} from the information\n * provided by the {@link module:engine/conversion/downcasthelpers~HighlightDescriptor highlight descriptor} object. If a priority\n * is not provided in the descriptor, the default priority will be used.\n *\n * @param {module:engine/conversion/downcasthelpers~HighlightDescriptor} descriptor\n * @returns {module:engine/view/attributeelement~AttributeElement}\n */\n\nexport function createViewElementFromHighlightDescriptor(descriptor) {\n  var viewElement = new ViewAttributeElement('span', descriptor.attributes);\n\n  if (descriptor.classes) {\n    viewElement._addClass(descriptor.classes);\n  }\n\n  if (descriptor.priority) {\n    viewElement._priority = descriptor.priority;\n  }\n\n  viewElement._id = descriptor.id;\n  return viewElement;\n}\n/**\n * Function factory that creates a converter which converts a non-collapsed {@link module:engine/model/selection~Selection model selection}\n * to a {@link module:engine/view/documentselection~DocumentSelection view selection}. The converter consumes appropriate\n * value from the `consumable` object and maps model positions from the selection to view positions.\n *\n *\t\tmodelDispatcher.on( 'selection', convertRangeSelection() );\n *\n * @returns {Function} Selection converter.\n */\n\nexport function convertRangeSelection() {\n  return function (evt, data, conversionApi) {\n    var selection = data.selection;\n\n    if (selection.isCollapsed) {\n      return;\n    }\n\n    if (!conversionApi.consumable.consume(selection, 'selection')) {\n      return;\n    }\n\n    var viewRanges = [];\n\n    var _iterator2 = _createForOfIteratorHelper(selection.getRanges()),\n        _step2;\n\n    try {\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var range = _step2.value;\n        var viewRange = conversionApi.mapper.toViewRange(range);\n        viewRanges.push(viewRange);\n      }\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n\n    conversionApi.writer.setSelection(viewRanges, {\n      backward: selection.isBackward\n    });\n  };\n}\n/**\n * Function factory that creates a converter which converts a collapsed {@link module:engine/model/selection~Selection model selection} to\n * a {@link module:engine/view/documentselection~DocumentSelection view selection}. The converter consumes appropriate\n * value from the `consumable` object, maps the model selection position to the view position and breaks\n * {@link module:engine/view/attributeelement~AttributeElement attribute elements} at the selection position.\n *\n *\t\tmodelDispatcher.on( 'selection', convertCollapsedSelection() );\n *\n * An example of the view state before and after converting the collapsed selection:\n *\n *\t\t   <p><strong>f^oo<strong>bar</p>\n *\t\t-> <p><strong>f</strong>^<strong>oo</strong>bar</p>\n *\n * By breaking attribute elements like `<strong>`, the selection is in a correct element. Then, when the selection attribute is\n * converted, broken attributes might be merged again, or the position where the selection is may be wrapped\n * with different, appropriate attribute elements.\n *\n * See also {@link module:engine/conversion/downcasthelpers~clearAttributes} which does a clean-up\n * by merging attributes.\n *\n * @returns {Function} Selection converter.\n */\n\nexport function convertCollapsedSelection() {\n  return function (evt, data, conversionApi) {\n    var selection = data.selection;\n\n    if (!selection.isCollapsed) {\n      return;\n    }\n\n    if (!conversionApi.consumable.consume(selection, 'selection')) {\n      return;\n    }\n\n    var viewWriter = conversionApi.writer;\n    var modelPosition = selection.getFirstPosition();\n    var viewPosition = conversionApi.mapper.toViewPosition(modelPosition);\n    var brokenPosition = viewWriter.breakAttributes(viewPosition);\n    viewWriter.setSelection(brokenPosition);\n  };\n}\n/**\n * Function factory that creates a converter which clears artifacts after the previous\n * {@link module:engine/model/selection~Selection model selection} conversion. It removes all empty\n * {@link module:engine/view/attributeelement~AttributeElement view attribute elements} and merges sibling attributes at all start and end\n * positions of all ranges.\n *\n *\t\t   <p><strong>^</strong></p>\n *\t\t-> <p>^</p>\n *\n *\t\t   <p><strong>foo</strong>^<strong>bar</strong>bar</p>\n *\t\t-> <p><strong>foo^bar<strong>bar</p>\n *\n *\t\t   <p><strong>foo</strong><em>^</em><strong>bar</strong>bar</p>\n *\t\t-> <p><strong>foo^bar<strong>bar</p>\n *\n * This listener should be assigned before any converter for the new selection:\n *\n *\t\tmodelDispatcher.on( 'selection', clearAttributes() );\n *\n * See {@link module:engine/conversion/downcasthelpers~convertCollapsedSelection}\n * which does the opposite by breaking attributes in the selection position.\n *\n * @returns {Function} Selection converter.\n */\n\nexport function clearAttributes() {\n  return function (evt, data, conversionApi) {\n    var viewWriter = conversionApi.writer;\n    var viewSelection = viewWriter.document.selection;\n\n    var _iterator3 = _createForOfIteratorHelper(viewSelection.getRanges()),\n        _step3;\n\n    try {\n      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n        var range = _step3.value;\n\n        // Not collapsed selection should not have artifacts.\n        if (range.isCollapsed) {\n          // Position might be in the node removed by the view writer.\n          if (range.end.parent.document) {\n            conversionApi.writer.mergeAttributes(range.start);\n          }\n        }\n      }\n    } catch (err) {\n      _iterator3.e(err);\n    } finally {\n      _iterator3.f();\n    }\n\n    viewWriter.setSelection(null);\n  };\n}\n/**\n * Function factory that creates a converter which converts set/change/remove attribute changes from the model to the view.\n * It can also be used to convert selection attributes. In that case, an empty attribute element will be created and the\n * selection will be put inside it.\n *\n * Attributes from the model are converted to a view element that will be wrapping these view nodes that are bound to\n * model elements having the given attribute. This is useful for attributes like `bold` that may be set on text nodes in the model\n * but are represented as an element in the view:\n *\n *\t\t[paragraph]              MODEL ====> VIEW        <p>\n *\t\t\t|- a {bold: true}                             |- <b>\n *\t\t\t|- b {bold: true}                             |   |- ab\n *\t\t\t|- c                                          |- c\n *\n * Passed `Function` will be provided with the attribute value and then all the parameters of the\n * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute `attribute` event}.\n * It is expected that the function returns an {@link module:engine/view/element~Element}.\n * The result of the function will be the wrapping element.\n * When the provided `Function` does not return any element, no conversion will take place.\n *\n * The converter automatically consumes the corresponding value from the consumables list and stops the event (see\n * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}).\n *\n *\t\tmodelDispatcher.on( 'attribute:bold', wrap( ( modelAttributeValue, viewWriter ) => {\n *\t\t\treturn viewWriter.createAttributeElement( 'strong' );\n *\t\t} );\n *\n * @protected\n * @param {Function} elementCreator Function returning a view element that will be used for wrapping.\n * @returns {Function} Set/change attribute converter.\n */\n\nexport function wrap(elementCreator) {\n  return function (evt, data, conversionApi) {\n    // Recreate current wrapping node. It will be used to unwrap view range if the attribute value has changed\n    // or the attribute was removed.\n    var oldViewElement = elementCreator(data.attributeOldValue, conversionApi.writer); // Create node to wrap with.\n\n    var newViewElement = elementCreator(data.attributeNewValue, conversionApi.writer);\n\n    if (!oldViewElement && !newViewElement) {\n      return;\n    }\n\n    if (!conversionApi.consumable.consume(data.item, evt.name)) {\n      return;\n    }\n\n    var viewWriter = conversionApi.writer;\n    var viewSelection = viewWriter.document.selection;\n\n    if (data.item instanceof ModelSelection || data.item instanceof DocumentSelection) {\n      // Selection attribute conversion.\n      viewWriter.wrap(viewSelection.getFirstRange(), newViewElement);\n    } else {\n      // Node attribute conversion.\n      var viewRange = conversionApi.mapper.toViewRange(data.range); // First, unwrap the range from current wrapper.\n\n      if (data.attributeOldValue !== null && oldViewElement) {\n        viewRange = viewWriter.unwrap(viewRange, oldViewElement);\n      }\n\n      if (data.attributeNewValue !== null && newViewElement) {\n        viewWriter.wrap(viewRange, newViewElement);\n      }\n    }\n  };\n}\n/**\n * Function factory that creates a converter which converts node insertion changes from the model to the view.\n * The function passed will be provided with all the parameters of the dispatcher's\n * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert `insert` event}.\n * It is expected that the function returns an {@link module:engine/view/element~Element}.\n * The result of the function will be inserted into the view.\n *\n * The converter automatically consumes the corresponding value from the consumables list, stops the event (see\n * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}) and binds the model and view elements.\n *\n *\t\tdowncastDispatcher.on(\n *\t\t\t'insert:myElem',\n *\t\t\tinsertElement( ( modelItem, viewWriter ) => {\n *\t\t\t\tconst text = viewWriter.createText( 'myText' );\n *\t\t\t\tconst myElem = viewWriter.createElement( 'myElem', { myAttr: 'my-' + modelItem.getAttribute( 'myAttr' ) }, text );\n *\n *\t\t\t\t// Do something fancy with `myElem` using `modelItem` or other parameters.\n *\n *\t\t\t\treturn myElem;\n *\t\t\t}\n *\t\t) );\n *\n * @protected\n * @param {Function} elementCreator Function returning a view element, which will be inserted.\n * @returns {Function} Insert element event converter.\n */\n\nexport function insertElement(elementCreator) {\n  return function (evt, data, conversionApi) {\n    var viewElement = elementCreator(data.item, conversionApi.writer);\n\n    if (!viewElement) {\n      return;\n    }\n\n    if (!conversionApi.consumable.consume(data.item, 'insert')) {\n      return;\n    }\n\n    var viewPosition = conversionApi.mapper.toViewPosition(data.range.start);\n    conversionApi.mapper.bindElements(data.item, viewElement);\n    conversionApi.writer.insert(viewPosition, viewElement);\n  };\n}\n/**\n * Function factory that creates a converter which converts marker adding change to the\n * {@link module:engine/view/uielement~UIElement view UI element}.\n *\n * The view UI element that will be added to the view depends on the passed parameter. See {@link ~insertElement}.\n * In case of a non-collapsed range, the UI element will not wrap nodes but separate elements will be placed at the beginning\n * and at the end of the range.\n *\n * This converter binds created UI elements with the marker name using {@link module:engine/conversion/mapper~Mapper#bindElementToMarker}.\n *\n * @protected\n * @param {module:engine/view/uielement~UIElement|Function} elementCreator A view UI element or a function returning the view element\n * that will be inserted.\n * @returns {Function} Insert element event converter.\n */\n\nexport function insertUIElement(elementCreator) {\n  return function (evt, data, conversionApi) {\n    // Create two view elements. One will be inserted at the beginning of marker, one at the end.\n    // If marker is collapsed, only \"opening\" element will be inserted.\n    data.isOpening = true;\n    var viewStartElement = elementCreator(data, conversionApi.writer);\n    data.isOpening = false;\n    var viewEndElement = elementCreator(data, conversionApi.writer);\n\n    if (!viewStartElement || !viewEndElement) {\n      return;\n    }\n\n    var markerRange = data.markerRange; // Marker that is collapsed has consumable build differently that non-collapsed one.\n    // For more information see `addMarker` event description.\n    // If marker's range is collapsed - check if it can be consumed.\n\n    if (markerRange.isCollapsed && !conversionApi.consumable.consume(markerRange, evt.name)) {\n      return;\n    } // If marker's range is not collapsed - consume all items inside.\n\n\n    var _iterator4 = _createForOfIteratorHelper(markerRange),\n        _step4;\n\n    try {\n      for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n        var value = _step4.value;\n\n        if (!conversionApi.consumable.consume(value.item, evt.name)) {\n          return;\n        }\n      }\n    } catch (err) {\n      _iterator4.e(err);\n    } finally {\n      _iterator4.f();\n    }\n\n    var mapper = conversionApi.mapper;\n    var viewWriter = conversionApi.writer; // Add \"opening\" element.\n\n    viewWriter.insert(mapper.toViewPosition(markerRange.start), viewStartElement);\n    conversionApi.mapper.bindElementToMarker(viewStartElement, data.markerName); // Add \"closing\" element only if range is not collapsed.\n\n    if (!markerRange.isCollapsed) {\n      viewWriter.insert(mapper.toViewPosition(markerRange.end), viewEndElement);\n      conversionApi.mapper.bindElementToMarker(viewEndElement, data.markerName);\n    }\n\n    evt.stop();\n  };\n} // Function factory that returns a default downcast converter for removing a {@link module:engine/view/uielement~UIElement UI element}\n// basing on marker remove change.\n//\n// This converter unbinds elements from the marker name.\n//\n// @returns {Function} Removed UI element converter.\n\nfunction removeUIElement() {\n  return function (evt, data, conversionApi) {\n    var elements = conversionApi.mapper.markerNameToElements(data.markerName);\n\n    if (!elements) {\n      return;\n    }\n\n    var _iterator5 = _createForOfIteratorHelper(elements),\n        _step5;\n\n    try {\n      for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n        var element = _step5.value;\n        conversionApi.mapper.unbindElementFromMarkerName(element, data.markerName);\n        conversionApi.writer.clear(conversionApi.writer.createRangeOn(element), element);\n      }\n    } catch (err) {\n      _iterator5.e(err);\n    } finally {\n      _iterator5.f();\n    }\n\n    conversionApi.writer.clearClonedElementsGroup(data.markerName);\n    evt.stop();\n  };\n} // Function factory that creates a converter which converts set/change/remove attribute changes from the model to the view.\n//\n// Attributes from the model are converted to the view element attributes in the view. You may provide a custom function to generate\n// a key-value attribute pair to add/change/remove. If not provided, model attributes will be converted to view element\n// attributes on a one-to-one basis.\n//\n// *Note:** The provided attribute creator should always return the same `key` for a given attribute from the model.\n//\n// The converter automatically consumes the corresponding value from the consumables list and stops the event (see\n// {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}).\n//\n//\t\tmodelDispatcher.on( 'attribute:customAttr:myElem', changeAttribute( ( value, data ) => {\n//\t\t\t// Change attribute key from `customAttr` to `class` in the view.\n//\t\t\tconst key = 'class';\n//\t\t\tlet value = data.attributeNewValue;\n//\n//\t\t\t// Force attribute value to 'empty' if the model element is empty.\n//\t\t\tif ( data.item.childCount === 0 ) {\n//\t\t\t\tvalue = 'empty';\n//\t\t\t}\n//\n//\t\t\t// Return the key-value pair.\n//\t\t\treturn { key, value };\n//\t\t} ) );\n//\n// @param {Function} [attributeCreator] Function returning an object with two properties: `key` and `value`, which\n// represent the attribute key and attribute value to be set on a {@link module:engine/view/element~Element view element}.\n// The function is passed the model attribute value as the first parameter and additional data about the change as the second parameter.\n// @returns {Function} Set/change attribute converter.\n\n\nfunction changeAttribute(attributeCreator) {\n  return function (evt, data, conversionApi) {\n    var oldAttribute = attributeCreator(data.attributeOldValue, data);\n    var newAttribute = attributeCreator(data.attributeNewValue, data);\n\n    if (!oldAttribute && !newAttribute) {\n      return;\n    }\n\n    if (!conversionApi.consumable.consume(data.item, evt.name)) {\n      return;\n    }\n\n    var viewElement = conversionApi.mapper.toViewElement(data.item);\n    var viewWriter = conversionApi.writer; // If model item cannot be mapped to a view element, it means item is not an `Element` instance but a `TextProxy` node.\n    // Only elements can have attributes in a view so do not proceed for anything else (#1587).\n\n    if (!viewElement) {\n      /**\n       * This error occurs when a {@link module:engine/model/textproxy~TextProxy text node's} attribute is to be downcasted\n       * by {@link module:engine/conversion/conversion~Conversion#attributeToAttribute `Attribute to Attribute converter`}.\n       * In most cases it is caused by converters misconfiguration when only \"generic\" converter is defined:\n       *\n       *\t\teditor.conversion.for( 'downcast' ).attributeToAttribute( {\n       *\t\t\tmodel: 'attribute-name',\n       *\t\t\tview: 'attribute-name'\n       *\t\t} ) );\n       *\n       * and given attribute is used on text node, for example:\n       *\n       *\t\tmodel.change( writer => {\n       *\t\t\twriter.insertText( 'Foo', { 'attribute-name': 'bar' }, parent, 0 );\n       *\t\t} );\n       *\n       * In such cases, to convert the same attribute for both {@link module:engine/model/element~Element}\n       * and {@link module:engine/model/textproxy~TextProxy `Text`} nodes, text specific\n       * {@link module:engine/conversion/conversion~Conversion#attributeToElement `Attribute to Element converter`}\n       * with higher {@link module:utils/priorities~PriorityString priority} must also be defined:\n       *\n       *\t\teditor.conversion.for( 'downcast' ).attributeToElement( {\n       *\t\t\tmodel: {\n       *\t\t\t\tkey: 'attribute-name',\n       *\t\t\t\tname: '$text'\n       *\t\t\t},\n       *\t\t\tview: ( value, writer ) => {\n       *\t\t\t\treturn writer.createAttributeElement( 'span', { 'attribute-name': value } );\n       *\t\t\t},\n       *\t\t\tconverterPriority: 'high'\n       *\t\t} ) );\n       *\n       * @error conversion-attribute-to-attribute-on-text\n       */\n      throw new CKEditorError('conversion-attribute-to-attribute-on-text: ' + 'Trying to convert text node\\'s attribute with attribute-to-attribute converter.', [data, conversionApi]);\n    } // First remove the old attribute if there was one.\n\n\n    if (data.attributeOldValue !== null && oldAttribute) {\n      if (oldAttribute.key == 'class') {\n        var classes = Array.isArray(oldAttribute.value) ? oldAttribute.value : [oldAttribute.value];\n\n        var _iterator6 = _createForOfIteratorHelper(classes),\n            _step6;\n\n        try {\n          for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n            var className = _step6.value;\n            viewWriter.removeClass(className, viewElement);\n          }\n        } catch (err) {\n          _iterator6.e(err);\n        } finally {\n          _iterator6.f();\n        }\n      } else if (oldAttribute.key == 'style') {\n        var keys = Object.keys(oldAttribute.value);\n\n        for (var _i = 0, _keys = keys; _i < _keys.length; _i++) {\n          var key = _keys[_i];\n          viewWriter.removeStyle(key, viewElement);\n        }\n      } else {\n        viewWriter.removeAttribute(oldAttribute.key, viewElement);\n      }\n    } // Then set the new attribute.\n\n\n    if (data.attributeNewValue !== null && newAttribute) {\n      if (newAttribute.key == 'class') {\n        var _classes = Array.isArray(newAttribute.value) ? newAttribute.value : [newAttribute.value];\n\n        var _iterator7 = _createForOfIteratorHelper(_classes),\n            _step7;\n\n        try {\n          for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n            var _className = _step7.value;\n            viewWriter.addClass(_className, viewElement);\n          }\n        } catch (err) {\n          _iterator7.e(err);\n        } finally {\n          _iterator7.f();\n        }\n      } else if (newAttribute.key == 'style') {\n        var _keys2 = Object.keys(newAttribute.value);\n\n        for (var _i2 = 0, _keys3 = _keys2; _i2 < _keys3.length; _i2++) {\n          var _key = _keys3[_i2];\n          viewWriter.setStyle(_key, newAttribute.value[_key], viewElement);\n        }\n      } else {\n        viewWriter.setAttribute(newAttribute.key, newAttribute.value, viewElement);\n      }\n    }\n  };\n} // Function factory that creates a converter which converts the text inside marker's range. The converter wraps the text with\n// {@link module:engine/view/attributeelement~AttributeElement} created from the provided descriptor.\n// See {link module:engine/conversion/downcasthelpers~createViewElementFromHighlightDescriptor}.\n//\n// It can also be used to convert the selection that is inside a marker. In that case, an empty attribute element will be\n// created and the selection will be put inside it.\n//\n// If the highlight descriptor does not provide the `priority` property, `10` will be used.\n//\n// If the highlight descriptor does not provide the `id` property, the name of the marker will be used.\n//\n// This converter binds the created {@link module:engine/view/attributeelement~AttributeElement attribute elemens} with the marker name\n// using the {@link module:engine/conversion/mapper~Mapper#bindElementToMarker} method.\n//\n// @param {module:engine/conversion/downcasthelpers~HighlightDescriptor|Function} highlightDescriptor\n// @returns {Function}\n\n\nfunction highlightText(highlightDescriptor) {\n  return function (evt, data, conversionApi) {\n    if (!data.item) {\n      return;\n    }\n\n    if (!(data.item instanceof ModelSelection || data.item instanceof DocumentSelection) && !data.item.is('textProxy')) {\n      return;\n    }\n\n    var descriptor = prepareDescriptor(highlightDescriptor, data, conversionApi);\n\n    if (!descriptor) {\n      return;\n    }\n\n    if (!conversionApi.consumable.consume(data.item, evt.name)) {\n      return;\n    }\n\n    var viewElement = createViewElementFromHighlightDescriptor(descriptor);\n    var viewWriter = conversionApi.writer;\n    var viewSelection = viewWriter.document.selection;\n\n    if (data.item instanceof ModelSelection || data.item instanceof DocumentSelection) {\n      viewWriter.wrap(viewSelection.getFirstRange(), viewElement, viewSelection);\n    } else {\n      var viewRange = conversionApi.mapper.toViewRange(data.range);\n      var rangeAfterWrap = viewWriter.wrap(viewRange, viewElement);\n\n      var _iterator8 = _createForOfIteratorHelper(rangeAfterWrap.getItems()),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var element = _step8.value;\n\n          if (element.is('attributeElement') && element.isSimilar(viewElement)) {\n            conversionApi.mapper.bindElementToMarker(element, data.markerName); // One attribute element is enough, because all of them are bound together by the view writer.\n            // Mapper uses this binding to get all the elements no matter how many of them are registered in the mapper.\n\n            break;\n          }\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n    }\n  };\n} // Converter function factory. It creates a function which applies the marker's highlight to an element inside the marker's range.\n//\n// The converter checks if an element has the `addHighlight` function stored as a\n// {@link module:engine/view/element~Element#_setCustomProperty custom property} and, if so, uses it to apply the highlight.\n// In such case the converter will consume all element's children, assuming that they were handled by the element itself.\n//\n// When the `addHighlight` custom property is not present, the element is not converted in any special way.\n// This means that converters will proceed to convert the element's child nodes.\n//\n// If the highlight descriptor does not provide the `priority` property, `10` will be used.\n//\n// If the highlight descriptor does not provide the `id` property, the name of the marker will be used.\n//\n// This converter binds altered {@link module:engine/view/containerelement~ContainerElement container elements} with the marker name using\n// the {@link module:engine/conversion/mapper~Mapper#bindElementToMarker} method.\n//\n// @param {module:engine/conversion/downcasthelpers~HighlightDescriptor|Function} highlightDescriptor\n// @returns {Function}\n\n\nfunction highlightElement(highlightDescriptor) {\n  return function (evt, data, conversionApi) {\n    if (!data.item) {\n      return;\n    }\n\n    if (!(data.item instanceof ModelElement)) {\n      return;\n    }\n\n    var descriptor = prepareDescriptor(highlightDescriptor, data, conversionApi);\n\n    if (!descriptor) {\n      return;\n    }\n\n    if (!conversionApi.consumable.test(data.item, evt.name)) {\n      return;\n    }\n\n    var viewElement = conversionApi.mapper.toViewElement(data.item);\n\n    if (viewElement && viewElement.getCustomProperty('addHighlight')) {\n      // Consume element itself.\n      conversionApi.consumable.consume(data.item, evt.name); // Consume all children nodes.\n\n      var _iterator9 = _createForOfIteratorHelper(ModelRange._createIn(data.item)),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var value = _step9.value;\n          conversionApi.consumable.consume(value.item, evt.name);\n        }\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      viewElement.getCustomProperty('addHighlight')(viewElement, descriptor, conversionApi.writer);\n      conversionApi.mapper.bindElementToMarker(viewElement, data.markerName);\n    }\n  };\n} // Function factory that creates a converter which converts the removing model marker to the view.\n//\n// Both text nodes and elements are handled by this converter but they are handled a bit differently.\n//\n// Text nodes are unwrapped using the {@link module:engine/view/attributeelement~AttributeElement attribute element} created from the\n// provided highlight descriptor. See {link module:engine/conversion/downcasthelpers~HighlightDescriptor}.\n//\n// For elements, the converter checks if an element has the `removeHighlight` function stored as a\n// {@link module:engine/view/element~Element#_setCustomProperty custom property}. If so, it uses it to remove the highlight.\n// In such case, the children of that element will not be converted.\n//\n// When `removeHighlight` is not present, the element is not converted in any special way.\n// The converter will proceed to convert the element's child nodes instead.\n//\n// If the highlight descriptor does not provide the `priority` property, `10` will be used.\n//\n// If the highlight descriptor does not provide the `id` property, the name of the marker will be used.\n//\n// This converter unbinds elements from the marker name.\n//\n// @param {module:engine/conversion/downcasthelpers~HighlightDescriptor|Function} highlightDescriptor\n// @returns {Function}\n\n\nfunction removeHighlight(highlightDescriptor) {\n  return function (evt, data, conversionApi) {\n    // This conversion makes sense only for non-collapsed range.\n    if (data.markerRange.isCollapsed) {\n      return;\n    }\n\n    var descriptor = prepareDescriptor(highlightDescriptor, data, conversionApi);\n\n    if (!descriptor) {\n      return;\n    } // View element that will be used to unwrap `AttributeElement`s.\n\n\n    var viewHighlightElement = createViewElementFromHighlightDescriptor(descriptor); // Get all elements bound with given marker name.\n\n    var elements = conversionApi.mapper.markerNameToElements(data.markerName);\n\n    if (!elements) {\n      return;\n    }\n\n    var _iterator10 = _createForOfIteratorHelper(elements),\n        _step10;\n\n    try {\n      for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n        var element = _step10.value;\n        conversionApi.mapper.unbindElementFromMarkerName(element, data.markerName);\n\n        if (element.is('attributeElement')) {\n          conversionApi.writer.unwrap(conversionApi.writer.createRangeOn(element), viewHighlightElement);\n        } else {\n          // if element.is( 'containerElement' ).\n          element.getCustomProperty('removeHighlight')(element, descriptor.id, conversionApi.writer);\n        }\n      }\n    } catch (err) {\n      _iterator10.e(err);\n    } finally {\n      _iterator10.f();\n    }\n\n    conversionApi.writer.clearClonedElementsGroup(data.markerName);\n    evt.stop();\n  };\n} // Model element to view element conversion helper.\n//\n// See {@link ~DowncastHelpers#elementToElement `.elementToElement()` downcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {String} config.model The name of the model element to convert.\n// @param {module:engine/view/elementdefinition~ElementDefinition|Function} config.view A view element definition or a function\n// that takes the model element and {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer}\n// as parameters and returns a view container element.\n// @returns {Function} Conversion helper.\n\n\nfunction downcastElementToElement(config) {\n  config = cloneDeep(config);\n  config.view = normalizeToElementConfig(config.view, 'container');\n  return function (dispatcher) {\n    dispatcher.on('insert:' + config.model, insertElement(config.view), {\n      priority: config.converterPriority || 'normal'\n    });\n  };\n} // Model attribute to view element conversion helper.\n//\n// See {@link ~DowncastHelpers#attributeToElement `.attributeToElement()` downcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {String|Object} config.model The key of the attribute to convert from or a `{ key, values }` object. `values` is an array\n// of `String`s with possible values if the model attribute is an enumerable.\n// @param {module:engine/view/elementdefinition~ElementDefinition|Function|Object} config.view A view element definition or a function\n// that takes the model attribute value and {@link module:engine/view/downcastwriter~DowncastWriter view downcast writer}\n// as parameters and returns a view attribute element. If `config.model.values` is\n// given, `config.view` should be an object assigning values from `config.model.values` to view element definitions or functions.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n// @returns {Function} Conversion helper.\n\n\nfunction downcastAttributeToElement(config) {\n  config = cloneDeep(config);\n  var modelKey = config.model.key ? config.model.key : config.model;\n  var eventName = 'attribute:' + modelKey;\n\n  if (config.model.name) {\n    eventName += ':' + config.model.name;\n  }\n\n  if (config.model.values) {\n    var _iterator11 = _createForOfIteratorHelper(config.model.values),\n        _step11;\n\n    try {\n      for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n        var modelValue = _step11.value;\n        config.view[modelValue] = normalizeToElementConfig(config.view[modelValue], 'attribute');\n      }\n    } catch (err) {\n      _iterator11.e(err);\n    } finally {\n      _iterator11.f();\n    }\n  } else {\n    config.view = normalizeToElementConfig(config.view, 'attribute');\n  }\n\n  var elementCreator = getFromAttributeCreator(config);\n  return function (dispatcher) {\n    dispatcher.on(eventName, wrap(elementCreator), {\n      priority: config.converterPriority || 'normal'\n    });\n  };\n} // Model attribute to view attribute conversion helper.\n//\n// See {@link ~DowncastHelpers#attributeToAttribute `.attributeToAttribute()` downcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {String|Object} config.model The key of the attribute to convert from or a `{ key, values, [ name ] }` object describing\n// the attribute key, possible values and, optionally, an element name to convert from.\n// @param {String|Object|Function} config.view A view attribute key, or a `{ key, value }` object or a function that takes\n// the model attribute value and returns a `{ key, value }` object. If `key` is `'class'`, `value` can be a `String` or an\n// array of `String`s. If `key` is `'style'`, `value` is an object with key-value pairs. In other cases, `value` is a `String`.\n// If `config.model.values` is set, `config.view` should be an object assigning values from `config.model.values` to\n// `{ key, value }` objects or a functions.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n// @returns {Function} Conversion helper.\n\n\nfunction downcastAttributeToAttribute(config) {\n  config = cloneDeep(config);\n  var modelKey = config.model.key ? config.model.key : config.model;\n  var eventName = 'attribute:' + modelKey;\n\n  if (config.model.name) {\n    eventName += ':' + config.model.name;\n  }\n\n  if (config.model.values) {\n    var _iterator12 = _createForOfIteratorHelper(config.model.values),\n        _step12;\n\n    try {\n      for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n        var modelValue = _step12.value;\n        config.view[modelValue] = normalizeToAttributeConfig(config.view[modelValue]);\n      }\n    } catch (err) {\n      _iterator12.e(err);\n    } finally {\n      _iterator12.f();\n    }\n  } else {\n    config.view = normalizeToAttributeConfig(config.view);\n  }\n\n  var elementCreator = getFromAttributeCreator(config);\n  return function (dispatcher) {\n    dispatcher.on(eventName, changeAttribute(elementCreator), {\n      priority: config.converterPriority || 'normal'\n    });\n  };\n} // Model marker to view element conversion helper.\n//\n// See {@link ~DowncastHelpers#markerToElement `.markerToElement()` downcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {String} config.model The name of the model marker (or model marker group) to convert.\n// @param {module:engine/view/elementdefinition~ElementDefinition|Function} config.view A view element definition or a function\n// that takes the model marker data as a parameter and returns a view UI element.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n// @returns {Function} Conversion helper.\n\n\nfunction downcastMarkerToElement(config) {\n  config = cloneDeep(config);\n  config.view = normalizeToElementConfig(config.view, 'ui');\n  return function (dispatcher) {\n    dispatcher.on('addMarker:' + config.model, insertUIElement(config.view), {\n      priority: config.converterPriority || 'normal'\n    });\n    dispatcher.on('removeMarker:' + config.model, removeUIElement(config.view), {\n      priority: config.converterPriority || 'normal'\n    });\n  };\n} // Model marker to highlight conversion helper.\n//\n// See {@link ~DowncastHelpers#markerToElement `.markerToElement()` downcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {String} config.model The name of the model marker (or model marker group) to convert.\n// @param {module:engine/conversion/downcasthelpers~HighlightDescriptor|Function} config.view A highlight descriptor\n// that will be used for highlighting or a function that takes the model marker data as a parameter and returns a highlight descriptor.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n// @returns {Function} Conversion helper.\n\n\nfunction downcastMarkerToHighlight(config) {\n  return function (dispatcher) {\n    dispatcher.on('addMarker:' + config.model, highlightText(config.view), {\n      priority: config.converterPriority || 'normal'\n    });\n    dispatcher.on('addMarker:' + config.model, highlightElement(config.view), {\n      priority: config.converterPriority || 'normal'\n    });\n    dispatcher.on('removeMarker:' + config.model, removeHighlight(config.view), {\n      priority: config.converterPriority || 'normal'\n    });\n  };\n} // Takes `config.view`, and if it is an {@link module:engine/view/elementdefinition~ElementDefinition}, converts it\n// to a function (because lower level converters accept only element creator functions).\n//\n// @param {module:engine/view/elementdefinition~ElementDefinition|Function} view View configuration.\n// @param {'container'|'attribute'|'ui'} viewElementType View element type to create.\n// @returns {Function} Element creator function to use in lower level converters.\n\n\nfunction normalizeToElementConfig(view, viewElementType) {\n  if (typeof view == 'function') {\n    // If `view` is already a function, don't do anything.\n    return view;\n  }\n\n  return function (modelData, viewWriter) {\n    return createViewElementFromDefinition(view, viewWriter, viewElementType);\n  };\n} // Creates a view element instance from the provided {@link module:engine/view/elementdefinition~ElementDefinition} and class.\n//\n// @param {module:engine/view/elementdefinition~ElementDefinition} viewElementDefinition\n// @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter\n// @param {'container'|'attribute'|'ui'} viewElementType\n// @returns {module:engine/view/element~Element}\n\n\nfunction createViewElementFromDefinition(viewElementDefinition, viewWriter, viewElementType) {\n  if (typeof viewElementDefinition == 'string') {\n    // If `viewElementDefinition` is given as a `String`, normalize it to an object with `name` property.\n    viewElementDefinition = {\n      name: viewElementDefinition\n    };\n  }\n\n  var element;\n  var attributes = Object.assign({}, viewElementDefinition.attributes);\n\n  if (viewElementType == 'container') {\n    element = viewWriter.createContainerElement(viewElementDefinition.name, attributes);\n  } else if (viewElementType == 'attribute') {\n    var options = {\n      priority: viewElementDefinition.priority || ViewAttributeElement.DEFAULT_PRIORITY\n    };\n    element = viewWriter.createAttributeElement(viewElementDefinition.name, attributes, options);\n  } else {\n    // 'ui'.\n    element = viewWriter.createUIElement(viewElementDefinition.name, attributes);\n  }\n\n  if (viewElementDefinition.styles) {\n    var keys = Object.keys(viewElementDefinition.styles);\n\n    for (var _i3 = 0, _keys4 = keys; _i3 < _keys4.length; _i3++) {\n      var key = _keys4[_i3];\n      viewWriter.setStyle(key, viewElementDefinition.styles[key], element);\n    }\n  }\n\n  if (viewElementDefinition.classes) {\n    var classes = viewElementDefinition.classes;\n\n    if (typeof classes == 'string') {\n      viewWriter.addClass(classes, element);\n    } else {\n      var _iterator13 = _createForOfIteratorHelper(classes),\n          _step13;\n\n      try {\n        for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n          var className = _step13.value;\n          viewWriter.addClass(className, element);\n        }\n      } catch (err) {\n        _iterator13.e(err);\n      } finally {\n        _iterator13.f();\n      }\n    }\n  }\n\n  return element;\n}\n\nfunction getFromAttributeCreator(config) {\n  if (config.model.values) {\n    return function (modelAttributeValue, viewWriter) {\n      var view = config.view[modelAttributeValue];\n\n      if (view) {\n        return view(modelAttributeValue, viewWriter);\n      }\n\n      return null;\n    };\n  } else {\n    return config.view;\n  }\n} // Takes the configuration, adds default parameters if they do not exist and normalizes other parameters to be used in downcast converters\n// for generating a view attribute.\n//\n// @param {Object} view View configuration.\n\n\nfunction normalizeToAttributeConfig(view) {\n  if (typeof view == 'string') {\n    return function (modelAttributeValue) {\n      return {\n        key: view,\n        value: modelAttributeValue\n      };\n    };\n  } else if (_typeof(view) == 'object') {\n    // { key, value, ... }\n    if (view.value) {\n      return function () {\n        return view;\n      };\n    } // { key, ... }\n    else {\n        return function (modelAttributeValue) {\n          return {\n            key: view.key,\n            value: modelAttributeValue\n          };\n        };\n      }\n  } else {\n    // function.\n    return view;\n  }\n} // Helper function for `highlight`. Prepares the actual descriptor object using value passed to the converter.\n\n\nfunction prepareDescriptor(highlightDescriptor, data, conversionApi) {\n  // If passed descriptor is a creator function, call it. If not, just use passed value.\n  var descriptor = typeof highlightDescriptor == 'function' ? highlightDescriptor(data, conversionApi) : highlightDescriptor;\n\n  if (!descriptor) {\n    return null;\n  } // Apply default descriptor priority.\n\n\n  if (!descriptor.priority) {\n    descriptor.priority = 10;\n  } // Default descriptor id is marker name.\n\n\n  if (!descriptor.id) {\n    descriptor.id = data.markerName;\n  }\n\n  return descriptor;\n}\n/**\n * An object describing how the marker highlight should be represented in the view.\n *\n * Each text node contained in a highlighted range will be wrapped in a `<span>`\n * {@link module:engine/view/attributeelement~AttributeElement view attribute element} with CSS class(es), attributes and a priority\n * described by this object.\n *\n * Additionally, each {@link module:engine/view/containerelement~ContainerElement container element} can handle displaying the highlight\n * separately by providing the `addHighlight` and `removeHighlight` custom properties. In this case:\n *\n *  * The `HighlightDescriptor` object is passed to the `addHighlight` function upon conversion and should be used to apply the highlight to\n *  the element.\n *  * The descriptor `id` is passed to the `removeHighlight` function upon conversion and should be used to remove the highlight with the\n *  given ID from the element.\n *\n * @typedef {Object} module:engine/conversion/downcasthelpers~HighlightDescriptor\n *\n * @property {String|Array.<String>} classes A CSS class or an array of classes to set. If the descriptor is used to\n * create an {@link module:engine/view/attributeelement~AttributeElement attribute element} over text nodes, these classes will be set\n * on that attribute element. If the descriptor is applied to an element, usually these classes will be set on that element, however,\n * this depends on how the element converts the descriptor.\n *\n * @property {String} [id] Descriptor identifier. If not provided, it defaults to the converted marker's name.\n *\n * @property {Number} [priority] Descriptor priority. If not provided, it defaults to `10`. If the descriptor is used to create\n * an {@link module:engine/view/attributeelement~AttributeElement attribute element}, it will be that element's\n * {@link module:engine/view/attributeelement~AttributeElement#priority priority}. If the descriptor is applied to an element,\n * the priority will be used to determine which descriptor is more important.\n *\n * @property {Object} [attributes] Attributes to set. If the descriptor is used to create\n * an {@link module:engine/view/attributeelement~AttributeElement attribute element} over text nodes, these attributes will be set on that\n * attribute element. If the descriptor is applied to an element, usually these attributes will be set on that element, however,\n * this depends on how the element converts the descriptor.\n */","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.weak-map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/conversion/mapper\n */\nimport ModelPosition from \"../model/position\";\nimport ModelRange from \"../model/range\";\nimport ViewPosition from \"../view/position\";\nimport ViewRange from \"../view/range\";\nimport ViewText from \"../view/text\";\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * Maps elements, positions and markers between {@link module:engine/view/document~Document the view} and\n * {@link module:engine/model/model the model}.\n *\n * The instance of the Mapper used for the editing pipeline is available in\n * {@link module:engine/controller/editingcontroller~EditingController#mapper `editor.editing.mapper`}.\n *\n * Mapper uses bound elements to find corresponding elements and positions, so, to get proper results,\n * all model elements should be {@link module:engine/conversion/mapper~Mapper#bindElements bound}.\n *\n * To map complex model to/from view relations, you may provide custom callbacks for\n * {@link module:engine/conversion/mapper~Mapper#event:modelToViewPosition modelToViewPosition event} and\n * {@link module:engine/conversion/mapper~Mapper#event:viewToModelPosition viewToModelPosition event} that are fired whenever\n * a position mapping request occurs.\n * Those events are fired by {@link module:engine/conversion/mapper~Mapper#toViewPosition toViewPosition}\n * and {@link module:engine/conversion/mapper~Mapper#toModelPosition toModelPosition} methods. `Mapper` adds it's own default callbacks\n * with `'lowest'` priority. To override default `Mapper` mapping, add custom callback with higher priority and\n * stop the event.\n */\n\nvar Mapper = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the mapper.\n   */\n  function Mapper() {\n    var _this = this;\n\n    _classCallCheck(this, Mapper);\n\n    /**\n     * Model element to view element mapping.\n     *\n     * @private\n     * @member {WeakMap}\n     */\n    this._modelToViewMapping = new WeakMap();\n    /**\n     * View element to model element mapping.\n     *\n     * @private\n     * @member {WeakMap}\n     */\n\n    this._viewToModelMapping = new WeakMap();\n    /**\n     * A map containing callbacks between view element names and functions evaluating length of view elements\n     * in model.\n     *\n     * @private\n     * @member {Map}\n     */\n\n    this._viewToModelLengthCallbacks = new Map();\n    /**\n     * Model marker name to view elements mapping.\n     *\n     * Keys are `String`s while values are `Set`s with {@link module:engine/view/element~Element view elements}.\n     * One marker (name) can be mapped to multiple elements.\n     *\n     * @private\n     * @member {Map}\n     */\n\n    this._markerNameToElements = new Map();\n    /**\n     * View element to model marker names mapping.\n     *\n     * This is reverse to {@link ~Mapper#_markerNameToElements} map.\n     *\n     * @private\n     * @member {Map}\n     */\n\n    this._elementToMarkerNames = new Map();\n    /**\n     * Stores marker names of markers which has changed due to unbinding a view element (so it is assumed that the view element\n     * has been removed, moved or renamed).\n     *\n     * @private\n     * @member {Set.<module:engine/model/markercollection~Marker>}\n     */\n\n    this._unboundMarkerNames = new Set(); // Default mapper algorithm for mapping model position to view position.\n\n    this.on('modelToViewPosition', function (evt, data) {\n      if (data.viewPosition) {\n        return;\n      }\n\n      var viewContainer = _this._modelToViewMapping.get(data.modelPosition.parent);\n\n      data.viewPosition = _this._findPositionIn(viewContainer, data.modelPosition.offset);\n    }, {\n      priority: 'low'\n    }); // Default mapper algorithm for mapping view position to model position.\n\n    this.on('viewToModelPosition', function (evt, data) {\n      if (data.modelPosition) {\n        return;\n      }\n\n      var viewBlock = _this.findMappedViewAncestor(data.viewPosition);\n\n      var modelParent = _this._viewToModelMapping.get(viewBlock);\n\n      var modelOffset = _this._toModelOffset(data.viewPosition.parent, data.viewPosition.offset, viewBlock);\n\n      data.modelPosition = ModelPosition._createAt(modelParent, modelOffset);\n    }, {\n      priority: 'low'\n    });\n  }\n  /**\n   * Marks model and view elements as corresponding. Corresponding elements can be retrieved by using\n   * the {@link module:engine/conversion/mapper~Mapper#toModelElement toModelElement} and\n   * {@link module:engine/conversion/mapper~Mapper#toViewElement toViewElement} methods.\n   * The information that elements are bound is also used to translate positions.\n   *\n   * @param {module:engine/model/element~Element} modelElement Model element.\n   * @param {module:engine/view/element~Element} viewElement View element.\n   */\n\n\n  _createClass(Mapper, [{\n    key: \"bindElements\",\n    value: function bindElements(modelElement, viewElement) {\n      this._modelToViewMapping.set(modelElement, viewElement);\n\n      this._viewToModelMapping.set(viewElement, modelElement);\n    }\n    /**\n     * Unbinds given {@link module:engine/view/element~Element view element} from the map.\n     *\n     * **Note:** view-to-model binding will be removed, if it existed. However, corresponding model-to-view binding\n     * will be removed only if model element is still bound to passed `viewElement`.\n     *\n     * This behavior lets for re-binding model element to another view element without fear of losing the new binding\n     * when the previously bound view element is unbound.\n     *\n     * @param {module:engine/view/element~Element} viewElement View element to unbind.\n     */\n\n  }, {\n    key: \"unbindViewElement\",\n    value: function unbindViewElement(viewElement) {\n      var modelElement = this.toModelElement(viewElement);\n\n      this._viewToModelMapping.delete(viewElement);\n\n      if (this._elementToMarkerNames.has(viewElement)) {\n        var _iterator = _createForOfIteratorHelper(this._elementToMarkerNames.get(viewElement)),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var markerName = _step.value;\n\n            this._unboundMarkerNames.add(markerName);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n\n      if (this._modelToViewMapping.get(modelElement) == viewElement) {\n        this._modelToViewMapping.delete(modelElement);\n      }\n    }\n    /**\n     * Unbinds given {@link module:engine/model/element~Element model element} from the map.\n     *\n     * **Note:** model-to-view binding will be removed, if it existed. However, corresponding view-to-model binding\n     * will be removed only if view element is still bound to passed `modelElement`.\n     *\n     * This behavior lets for re-binding view element to another model element without fear of losing the new binding\n     * when the previously bound model element is unbound.\n     *\n     * @param {module:engine/model/element~Element} modelElement Model element to unbind.\n     */\n\n  }, {\n    key: \"unbindModelElement\",\n    value: function unbindModelElement(modelElement) {\n      var viewElement = this.toViewElement(modelElement);\n\n      this._modelToViewMapping.delete(modelElement);\n\n      if (this._viewToModelMapping.get(viewElement) == modelElement) {\n        this._viewToModelMapping.delete(viewElement);\n      }\n    }\n    /**\n     * Binds given marker name with given {@link module:engine/view/element~Element view element}. The element\n     * will be added to the current set of elements bound with given marker name.\n     *\n     * @param {module:engine/view/element~Element} element Element to bind.\n     * @param {String} name Marker name.\n     */\n\n  }, {\n    key: \"bindElementToMarker\",\n    value: function bindElementToMarker(element, name) {\n      var elements = this._markerNameToElements.get(name) || new Set();\n      elements.add(element);\n      var names = this._elementToMarkerNames.get(element) || new Set();\n      names.add(name);\n\n      this._markerNameToElements.set(name, elements);\n\n      this._elementToMarkerNames.set(element, names);\n    }\n    /**\n     * Unbinds an element from given marker name.\n     *\n     * @param {module:engine/view/element~Element} element Element to unbind.\n     * @param {String} name Marker name.\n     */\n\n  }, {\n    key: \"unbindElementFromMarkerName\",\n    value: function unbindElementFromMarkerName(element, name) {\n      var nameToElements = this._markerNameToElements.get(name);\n\n      if (nameToElements) {\n        nameToElements.delete(element);\n\n        if (nameToElements.size == 0) {\n          this._markerNameToElements.delete(name);\n        }\n      }\n\n      var elementToNames = this._elementToMarkerNames.get(element);\n\n      if (elementToNames) {\n        elementToNames.delete(name);\n\n        if (elementToNames.size == 0) {\n          this._elementToMarkerNames.delete(element);\n        }\n      }\n    }\n    /**\n     * Returns all marker names of markers which has changed due to unbinding a view element (so it is assumed that the view element\n     * has been removed, moved or renamed) since the last flush. After returning, the marker names list is cleared.\n     *\n     * @returns {Array.<String>}\n     */\n\n  }, {\n    key: \"flushUnboundMarkerNames\",\n    value: function flushUnboundMarkerNames() {\n      var markerNames = Array.from(this._unboundMarkerNames);\n\n      this._unboundMarkerNames.clear();\n\n      return markerNames;\n    }\n    /**\n     * Removes all model to view and view to model bindings.\n     */\n\n  }, {\n    key: \"clearBindings\",\n    value: function clearBindings() {\n      this._modelToViewMapping = new WeakMap();\n      this._viewToModelMapping = new WeakMap();\n      this._markerNameToElements = new Map();\n      this._elementToMarkerNames = new Map();\n      this._unboundMarkerNames = new Set();\n    }\n    /**\n     * Gets the corresponding model element.\n     *\n     * **Note:** {@link module:engine/view/uielement~UIElement} does not have corresponding element in model.\n     *\n     * @param {module:engine/view/element~Element} viewElement View element.\n     * @returns {module:engine/model/element~Element|undefined} Corresponding model element or `undefined` if not found.\n     */\n\n  }, {\n    key: \"toModelElement\",\n    value: function toModelElement(viewElement) {\n      return this._viewToModelMapping.get(viewElement);\n    }\n    /**\n     * Gets the corresponding view element.\n     *\n     * @param {module:engine/model/element~Element} modelElement Model element.\n     * @returns {module:engine/view/element~Element|undefined} Corresponding view element or `undefined` if not found.\n     */\n\n  }, {\n    key: \"toViewElement\",\n    value: function toViewElement(modelElement) {\n      return this._modelToViewMapping.get(modelElement);\n    }\n    /**\n     * Gets the corresponding model range.\n     *\n     * @param {module:engine/view/range~Range} viewRange View range.\n     * @returns {module:engine/model/range~Range} Corresponding model range.\n     */\n\n  }, {\n    key: \"toModelRange\",\n    value: function toModelRange(viewRange) {\n      return new ModelRange(this.toModelPosition(viewRange.start), this.toModelPosition(viewRange.end));\n    }\n    /**\n     * Gets the corresponding view range.\n     *\n     * @param {module:engine/model/range~Range} modelRange Model range.\n     * @returns {module:engine/view/range~Range} Corresponding view range.\n     */\n\n  }, {\n    key: \"toViewRange\",\n    value: function toViewRange(modelRange) {\n      return new ViewRange(this.toViewPosition(modelRange.start), this.toViewPosition(modelRange.end));\n    }\n    /**\n     * Gets the corresponding model position.\n     *\n     * @fires viewToModelPosition\n     * @param {module:engine/view/position~Position} viewPosition View position.\n     * @returns {module:engine/model/position~Position} Corresponding model position.\n     */\n\n  }, {\n    key: \"toModelPosition\",\n    value: function toModelPosition(viewPosition) {\n      var data = {\n        viewPosition: viewPosition,\n        mapper: this\n      };\n      this.fire('viewToModelPosition', data);\n      return data.modelPosition;\n    }\n    /**\n     * Gets the corresponding view position.\n     *\n     * @fires modelToViewPosition\n     * @param {module:engine/model/position~Position} modelPosition Model position.\n     * @param {Object} [options] Additional options for position mapping process.\n     * @param {Boolean} [options.isPhantom=false] Should be set to `true` if the model position to map is pointing to a place\n     * in model tree which no longer exists. For example, it could be an end of a removed model range.\n     * @returns {module:engine/view/position~Position} Corresponding view position.\n     */\n\n  }, {\n    key: \"toViewPosition\",\n    value: function toViewPosition(modelPosition) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n        isPhantom: false\n      };\n      var data = {\n        modelPosition: modelPosition,\n        mapper: this,\n        isPhantom: options.isPhantom\n      };\n      this.fire('modelToViewPosition', data);\n      return data.viewPosition;\n    }\n    /**\n     * Gets all view elements bound to the given marker name.\n     *\n     * @param {String} name Marker name.\n     * @returns {Set.<module:engine/view/element~Element>|null} View elements bound with given marker name or `null`\n     * if no elements are bound to given marker name.\n     */\n\n  }, {\n    key: \"markerNameToElements\",\n    value: function markerNameToElements(name) {\n      var boundElements = this._markerNameToElements.get(name);\n\n      if (!boundElements) {\n        return null;\n      }\n\n      var elements = new Set();\n\n      var _iterator2 = _createForOfIteratorHelper(boundElements),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var element = _step2.value;\n\n          if (element.is('attributeElement')) {\n            var _iterator3 = _createForOfIteratorHelper(element.getElementsWithSameId()),\n                _step3;\n\n            try {\n              for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n                var clone = _step3.value;\n                elements.add(clone);\n              }\n            } catch (err) {\n              _iterator3.e(err);\n            } finally {\n              _iterator3.f();\n            }\n          } else {\n            elements.add(element);\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      return elements;\n    }\n    /**\n     * Registers a callback that evaluates the length in the model of a view element with given name.\n     *\n     * The callback is fired with one argument, which is a view element instance. The callback is expected to return\n     * a number representing the length of view element in model.\n     *\n     *\t\t// List item in view may contain nested list, which have other list items. In model though,\n     *\t\t// the lists are represented by flat structure. Because of those differences, length of list view element\n     *\t\t// may be greater than one. In the callback it's checked how many nested list items are in evaluated list item.\n     *\n     *\t\tfunction getViewListItemLength( element ) {\n     *\t\t\tlet length = 1;\n     *\n     *\t\t\tfor ( let child of element.getChildren() ) {\n     *\t\t\t\tif ( child.name == 'ul' || child.name == 'ol' ) {\n     *\t\t\t\t\tfor ( let item of child.getChildren() ) {\n     *\t\t\t\t\t\tlength += getViewListItemLength( item );\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t}\n     *\n     *\t\t\treturn length;\n     *\t\t}\n     *\n     *\t\tmapper.registerViewToModelLength( 'li', getViewListItemLength );\n     *\n     * @param {String} viewElementName Name of view element for which callback is registered.\n     * @param {Function} lengthCallback Function return a length of view element instance in model.\n     */\n\n  }, {\n    key: \"registerViewToModelLength\",\n    value: function registerViewToModelLength(viewElementName, lengthCallback) {\n      this._viewToModelLengthCallbacks.set(viewElementName, lengthCallback);\n    }\n    /**\n     * For given `viewPosition`, finds and returns the closest ancestor of this position that has a mapping to\n     * the model.\n     *\n     * @param {module:engine/view/position~Position} viewPosition Position for which mapped ancestor should be found.\n     * @returns {module:engine/view/element~Element}\n     */\n\n  }, {\n    key: \"findMappedViewAncestor\",\n    value: function findMappedViewAncestor(viewPosition) {\n      var parent = viewPosition.parent;\n\n      while (!this._viewToModelMapping.has(parent)) {\n        parent = parent.parent;\n      }\n\n      return parent;\n    }\n    /**\n     * Calculates model offset based on the view position and the block element.\n     *\n     * Example:\n     *\n     *\t\t<p>foo<b>ba|r</b></p> // _toModelOffset( b, 2, p ) -> 5\n     *\n     * Is a sum of:\n     *\n     *\t\t<p>foo|<b>bar</b></p> // _toModelOffset( p, 3, p ) -> 3\n     *\t\t<p>foo<b>ba|r</b></p> // _toModelOffset( b, 2, b ) -> 2\n     *\n     * @private\n     * @param {module:engine/view/element~Element} viewParent Position parent.\n     * @param {Number} viewOffset Position offset.\n     * @param {module:engine/view/element~Element} viewBlock Block used as a base to calculate offset.\n     * @returns {Number} Offset in the model.\n     */\n\n  }, {\n    key: \"_toModelOffset\",\n    value: function _toModelOffset(viewParent, viewOffset, viewBlock) {\n      if (viewBlock != viewParent) {\n        // See example.\n        var offsetToParentStart = this._toModelOffset(viewParent.parent, viewParent.index, viewBlock);\n\n        var offsetInParent = this._toModelOffset(viewParent, viewOffset, viewParent);\n\n        return offsetToParentStart + offsetInParent;\n      } // viewBlock == viewParent, so we need to calculate the offset in the parent element.\n      // If the position is a text it is simple (\"ba|r\" -> 2).\n\n\n      if (viewParent.is('text')) {\n        return viewOffset;\n      } // If the position is in an element we need to sum lengths of siblings ( <b> bar </b> foo | -> 3 + 3 = 6 ).\n\n\n      var modelOffset = 0;\n\n      for (var i = 0; i < viewOffset; i++) {\n        modelOffset += this.getModelLength(viewParent.getChild(i));\n      }\n\n      return modelOffset;\n    }\n    /**\n     * Gets the length of the view element in the model.\n     *\n     * The length is calculated as follows:\n     * * if {@link #registerViewToModelLength length mapping callback} is provided for given `viewNode` it is used to\n     * evaluate model length (`viewNode` is used as first and only parameter passed to the callback),\n     * * length of a {@link module:engine/view/text~Text text node} is equal to the length of it's\n     * {@link module:engine/view/text~Text#data data},\n     * * length of a {@link module:engine/view/uielement~UIElement ui element} is equal to 0,\n     * * length of a mapped {@link module:engine/view/element~Element element} is equal to 1,\n     * * length of a not-mapped {@link module:engine/view/element~Element element} is equal to the length of it's children.\n     *\n     * Examples:\n     *\n     *\t\tfoo                          -> 3 // Text length is equal to it's data length.\n     *\t\t<p>foo</p>                   -> 1 // Length of an element which is mapped is by default equal to 1.\n     *\t\t<b>foo</b>                   -> 3 // Length of an element which is not mapped is a length of its children.\n     *\t\t<div><p>x</p><p>y</p></div>  -> 2 // Assuming that <div> is not mapped and <p> are mapped.\n     *\n     * @param {module:engine/view/element~Element} viewNode View node.\n     * @returns {Number} Length of the node in the tree model.\n     */\n\n  }, {\n    key: \"getModelLength\",\n    value: function getModelLength(viewNode) {\n      if (this._viewToModelLengthCallbacks.get(viewNode.name)) {\n        var callback = this._viewToModelLengthCallbacks.get(viewNode.name);\n\n        return callback(viewNode);\n      } else if (this._viewToModelMapping.has(viewNode)) {\n        return 1;\n      } else if (viewNode.is('text')) {\n        return viewNode.data.length;\n      } else if (viewNode.is('uiElement')) {\n        return 0;\n      } else {\n        var len = 0;\n\n        var _iterator4 = _createForOfIteratorHelper(viewNode.getChildren()),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var child = _step4.value;\n            len += this.getModelLength(child);\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n\n        return len;\n      }\n    }\n    /**\n     * Finds the position in the view node (or its children) with the expected model offset.\n     *\n     * Example:\n     *\n     *\t\t<p>fo<b>bar</b>bom</p> -> expected offset: 4\n     *\n     *\t\t_findPositionIn( p, 4 ):\n     *\t\t<p>|fo<b>bar</b>bom</p> -> expected offset: 4, actual offset: 0\n     *\t\t<p>fo|<b>bar</b>bom</p> -> expected offset: 4, actual offset: 2\n     *\t\t<p>fo<b>bar</b>|bom</p> -> expected offset: 4, actual offset: 5 -> we are too far\n     *\n     *\t\t_findPositionIn( b, 4 - ( 5 - 3 ) ):\n     *\t\t<p>fo<b>|bar</b>bom</p> -> expected offset: 2, actual offset: 0\n     *\t\t<p>fo<b>bar|</b>bom</p> -> expected offset: 2, actual offset: 3 -> we are too far\n     *\n     *\t\t_findPositionIn( bar, 2 - ( 3 - 3 ) ):\n     *\t\tWe are in the text node so we can simple find the offset.\n     *\t\t<p>fo<b>ba|r</b>bom</p> -> expected offset: 2, actual offset: 2 -> position found\n     *\n     * @private\n     * @param {module:engine/view/element~Element} viewParent Tree view element in which we are looking for the position.\n     * @param {Number} expectedOffset Expected offset.\n     * @returns {module:engine/view/position~Position} Found position.\n     */\n\n  }, {\n    key: \"_findPositionIn\",\n    value: function _findPositionIn(viewParent, expectedOffset) {\n      // Last scanned view node.\n      var viewNode; // Length of the last scanned view node.\n\n      var lastLength = 0;\n      var modelOffset = 0;\n      var viewOffset = 0; // In the text node it is simple: offset in the model equals offset in the text.\n\n      if (viewParent.is('text')) {\n        return new ViewPosition(viewParent, expectedOffset);\n      } // In other cases we add lengths of child nodes to find the proper offset.\n      // If it is smaller we add the length.\n\n\n      while (modelOffset < expectedOffset) {\n        viewNode = viewParent.getChild(viewOffset);\n        lastLength = this.getModelLength(viewNode);\n        modelOffset += lastLength;\n        viewOffset++;\n      } // If it equals we found the position.\n\n\n      if (modelOffset == expectedOffset) {\n        return this._moveViewPositionToTextNode(new ViewPosition(viewParent, viewOffset));\n      } // If it is higher we need to enter last child.\n      else {\n          // ( modelOffset - lastLength ) is the offset to the child we enter,\n          // so we subtract it from the expected offset to fine the offset in the child.\n          return this._findPositionIn(viewNode, expectedOffset - (modelOffset - lastLength));\n        }\n    }\n    /**\n     * Because we prefer positions in text nodes over positions next to text node moves view position to the text node\n     * if it was next to it.\n     *\n     *\t\t<p>[]<b>foo</b></p> -> <p>[]<b>foo</b></p> // do not touch if position is not directly next to text\n     *\t\t<p>foo[]<b>foo</b></p> -> <p>foo{}<b>foo</b></p> // move to text node\n     *\t\t<p><b>[]foo</b></p> -> <p><b>{}foo</b></p> // move to text node\n     *\n     * @private\n     * @param {module:engine/view/position~Position} viewPosition Position potentially next to text node.\n     * @returns {module:engine/view/position~Position} Position in text node if possible.\n     */\n\n  }, {\n    key: \"_moveViewPositionToTextNode\",\n    value: function _moveViewPositionToTextNode(viewPosition) {\n      // If the position is just after text node, put it at the end of that text node.\n      // If the position is just before text node, put it at the beginning of that text node.\n      var nodeBefore = viewPosition.nodeBefore;\n      var nodeAfter = viewPosition.nodeAfter;\n\n      if (nodeBefore instanceof ViewText) {\n        return new ViewPosition(nodeBefore, nodeBefore.data.length);\n      } else if (nodeAfter instanceof ViewText) {\n        return new ViewPosition(nodeAfter, 0);\n      } // Otherwise, just return the given position.\n\n\n      return viewPosition;\n    }\n    /**\n     * Fired for each model-to-view position mapping request. The purpose of this event is to enable custom model-to-view position\n     * mapping. Callbacks added to this event take {@link module:engine/model/position~Position model position} and are expected to\n     * calculate {@link module:engine/view/position~Position view position}. Calculated view position should be added as `viewPosition`\n     * value in `data` object that is passed as one of parameters to the event callback.\n     *\n     * \t\t// Assume that \"captionedImage\" model element is converted to <img> and following <span> elements in view,\n     * \t\t// and the model element is bound to <img> element. Force mapping model positions inside \"captionedImage\" to that\n     * \t\t// <span> element.\n     *\t\tmapper.on( 'modelToViewPosition', ( evt, data ) => {\n     *\t\t\tconst positionParent = modelPosition.parent;\n     *\n     *\t\t\tif ( positionParent.name == 'captionedImage' ) {\n     *\t\t\t\tconst viewImg = data.mapper.toViewElement( positionParent );\n     *\t\t\t\tconst viewCaption = viewImg.nextSibling; // The <span> element.\n     *\n     *\t\t\t\tdata.viewPosition = new ViewPosition( viewCaption, modelPosition.offset );\n     *\n     *\t\t\t\t// Stop the event if other callbacks should not modify calculated value.\n     *\t\t\t\tevt.stop();\n     *\t\t\t}\n     *\t\t} );\n     *\n     * **Note:** keep in mind that sometimes a \"phantom\" model position is being converted. \"Phantom\" model position is\n     * a position that points to a non-existing place in model. Such position might still be valid for conversion, though\n     * (it would point to a correct place in view when converted). One example of such situation is when a range is\n     * removed from model, there may be a need to map the range's end (which is no longer valid model position). To\n     * handle such situation, check `data.isPhantom` flag:\n     *\n     * \t\t// Assume that there is \"customElement\" model element and whenever position is before it, we want to move it\n     * \t\t// to the inside of the view element bound to \"customElement\".\n     *\t\tmapper.on( 'modelToViewPosition', ( evt, data ) => {\n     *\t\t\tif ( data.isPhantom ) {\n     *\t\t\t\treturn;\n     *\t\t\t}\n     *\n     *\t\t\t// Below line might crash for phantom position that does not exist in model.\n     *\t\t\tconst sibling = data.modelPosition.nodeBefore;\n     *\n     *\t\t\t// Check if this is the element we are interested in.\n     *\t\t\tif ( !sibling.is( 'customElement' ) ) {\n     *\t\t\t\treturn;\n     *\t\t\t}\n     *\n     *\t\t\tconst viewElement = data.mapper.toViewElement( sibling );\n     *\n     *\t\t\tdata.viewPosition = new ViewPosition( sibling, 0 );\n     *\n     *\t\t\tevt.stop();\n     *\t\t} );\n     *\n     * **Note:** default mapping callback is provided with `low` priority setting and does not cancel the event, so it is possible to\n     * attach a custom callback after default callback and also use `data.viewPosition` calculated by default callback\n     * (for example to fix it).\n     *\n     * **Note:** default mapping callback will not fire if `data.viewPosition` is already set.\n     *\n     * **Note:** these callbacks are called **very often**. For efficiency reasons, it is advised to use them only when position\n     * mapping between given model and view elements is unsolvable using just elements mapping and default algorithm. Also,\n     * the condition that checks if special case scenario happened should be as simple as possible.\n     *\n     * @event modelToViewPosition\n     * @param {Object} data Data pipeline object that can store and pass data between callbacks. The callback should add\n     * `viewPosition` value to that object with calculated {@link module:engine/view/position~Position view position}.\n     * @param {module:engine/conversion/mapper~Mapper} data.mapper Mapper instance that fired the event.\n     */\n\n    /**\n     * Fired for each view-to-model position mapping request. See {@link module:engine/conversion/mapper~Mapper#event:modelToViewPosition}.\n     *\n     * \t\t// See example in `modelToViewPosition` event description.\n     * \t\t// This custom mapping will map positions from <span> element next to <img> to the \"captionedImage\" element.\n     *\t\tmapper.on( 'viewToModelPosition', ( evt, data ) => {\n     *\t\t\tconst positionParent = viewPosition.parent;\n     *\n     *\t\t\tif ( positionParent.hasClass( 'image-caption' ) ) {\n     *\t\t\t\tconst viewImg = positionParent.previousSibling;\n     *\t\t\t\tconst modelImg = data.mapper.toModelElement( viewImg );\n     *\n     *\t\t\t\tdata.modelPosition = new ModelPosition( modelImg, viewPosition.offset );\n     *\t\t\t\tevt.stop();\n     *\t\t\t}\n     *\t\t} );\n     *\n     * **Note:** default mapping callback is provided with `low` priority setting and does not cancel the event, so it is possible to\n     * attach a custom callback after default callback and also use `data.modelPosition` calculated by default callback\n     * (for example to fix it).\n     *\n     * **Note:** default mapping callback will not fire if `data.modelPosition` is already set.\n     *\n     * **Note:** these callbacks are called **very often**. For efficiency reasons, it is advised to use them only when position\n     * mapping between given model and view elements is unsolvable using just elements mapping and default algorithm. Also,\n     * the condition that checks if special case scenario happened should be as simple as possible.\n     *\n     * @event viewToModelPosition\n     * @param {Object} data Data pipeline object that can store and pass data between callbacks. The callback should add\n     * `modelPosition` value to that object with calculated {@link module:engine/model/position~Position model position}.\n     * @param {module:engine/conversion/mapper~Mapper} data.mapper Mapper instance that fired the event.\n     */\n\n  }]);\n\n  return Mapper;\n}();\n\nexport { Mapper as default };\nmix(Mapper, EmitterMixin);","import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/conversion/modelconsumable\n */\nimport TextProxy from \"../model/textproxy\";\n/**\n * Manages a list of consumable values for {@link module:engine/model/item~Item model items}.\n *\n * Consumables are various aspects of the model. A model item can be broken down into singular properties that might be\n * taken into consideration when converting that item.\n *\n * `ModelConsumable` is used by {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} while analyzing changed\n * parts of {@link module:engine/model/document~Document the document}. The added / changed / removed model items are broken down\n * into singular properties (the item itself and it's attributes). All those parts are saved in `ModelConsumable`. Then,\n * during conversion, when given part of model item is converted (i.e. the view element has been inserted into the view,\n * but without attributes), consumable value is removed from `ModelConsumable`.\n *\n * For model items, `ModelConsumable` stores consumable values of one of following types: `insert`, `addattribute:<attributeKey>`,\n * `changeattributes:<attributeKey>`, `removeattributes:<attributeKey>`.\n *\n * In most cases, it is enough to let {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher}\n * gather consumable values, so there is no need to use\n * {@link module:engine/conversion/modelconsumable~ModelConsumable#add add method} directly.\n * However, it is important to understand how consumable values can be\n * {@link module:engine/conversion/modelconsumable~ModelConsumable#consume consumed}.\n * See {@link module:engine/conversion/downcasthelpers default downcast converters} for more information.\n *\n * Keep in mind, that one conversion event may have multiple callbacks (converters) attached to it. Each of those is\n * able to convert one or more parts of the model. However, when one of those callbacks actually converts\n * something, other should not, because they would duplicate the results. Using `ModelConsumable` helps avoiding\n * this situation, because callbacks should only convert those values, which were not yet consumed from `ModelConsumable`.\n *\n * Consuming multiple values in a single callback:\n *\n *\t\t// Converter for custom `image` element that might have a `caption` element inside which changes\n *\t\t// how the image is displayed in the view:\n *\t\t//\n *\t\t// Model:\n *\t\t//\n *\t\t// [image]\n *\t\t//   └─ [caption]\n *\t\t//       └─ foo\n *\t\t//\n *\t\t// View:\n *\t\t//\n *\t\t// <figure>\n *\t\t//   ├─ <img />\n *\t\t//   └─ <caption>\n *\t\t//       └─ foo\n *\t\tmodelConversionDispatcher.on( 'insert:image', ( evt, data, conversionApi ) => {\n *\t\t\t// First, consume the `image` element.\n *\t\t\tconversionApi.consumable.consume( data.item, 'insert' );\n *\n *\t\t\t// Just create normal image element for the view.\n *\t\t\t// Maybe it will be \"decorated\" later.\n *\t\t\tconst viewImage = new ViewElement( 'img' );\n *\t\t\tconst insertPosition = conversionApi.mapper.toViewPosition( data.range.start );\n *\t\t\tconst viewWriter = conversionApi.writer;\n *\n *\t\t\t// Check if the `image` element has children.\n *\t\t\tif ( data.item.childCount > 0 ) {\n *\t\t\t\tconst modelCaption = data.item.getChild( 0 );\n *\n *\t\t\t\t// `modelCaption` insertion change is consumed from consumable values.\n *\t\t\t\t// It will not be converted by other converters, but it's children (probably some text) will be.\n *\t\t\t\t// Through mapping, converters for text will know where to insert contents of `modelCaption`.\n *\t\t\t\tif ( conversionApi.consumable.consume( modelCaption, 'insert' ) ) {\n *\t\t\t\t\tconst viewCaption = new ViewElement( 'figcaption' );\n *\n *\t\t\t\t\tconst viewImageHolder = new ViewElement( 'figure', null, [ viewImage, viewCaption ] );\n *\n *\t\t\t\t\tconversionApi.mapper.bindElements( modelCaption, viewCaption );\n *\t\t\t\t\tconversionApi.mapper.bindElements( data.item, viewImageHolder );\n *\t\t\t\t\tviewWriter.insert( insertPosition, viewImageHolder );\n *\t\t\t\t}\n *\t\t\t} else {\n *\t\t\t\tconversionApi.mapper.bindElements( data.item, viewImage );\n *\t\t\t\tviewWriter.insert( insertPosition, viewImage );\n *\t\t\t}\n *\n *\t\t\tevt.stop();\n *\t\t} );\n */\n\nvar ModelConsumable = /*#__PURE__*/function () {\n  /**\n   * Creates an empty consumables list.\n   */\n  function ModelConsumable() {\n    _classCallCheck(this, ModelConsumable);\n\n    /**\n     * Contains list of consumable values.\n     *\n     * @private\n     * @member {Map} module:engine/conversion/modelconsumable~ModelConsumable#_consumable\n     */\n    this._consumable = new Map();\n    /**\n     * For each {@link module:engine/model/textproxy~TextProxy} added to `ModelConsumable`, this registry holds parent\n     * of that `TextProxy` and start and end indices of that `TextProxy`. This allows identification of `TextProxy`\n     * instances that points to the same part of the model but are different instances. Each distinct `TextProxy`\n     * is given unique `Symbol` which is then registered as consumable. This process is transparent for `ModelConsumable`\n     * API user because whenever `TextProxy` is added, tested, consumed or reverted, internal mechanisms of\n     * `ModelConsumable` translates `TextProxy` to that unique `Symbol`.\n     *\n     * @private\n     * @member {Map} module:engine/conversion/modelconsumable~ModelConsumable#_textProxyRegistry\n     */\n\n    this._textProxyRegistry = new Map();\n  }\n  /**\n   * Adds a consumable value to the consumables list and links it with given model item.\n   *\n   *\t\tmodelConsumable.add( modelElement, 'insert' ); // Add `modelElement` insertion change to consumable values.\n   *\t\tmodelConsumable.add( modelElement, 'addAttribute:bold' ); // Add `bold` attribute insertion on `modelElement` change.\n   *\t\tmodelConsumable.add( modelElement, 'removeAttribute:bold' ); // Add `bold` attribute removal on `modelElement` change.\n   *\t\tmodelConsumable.add( modelSelection, 'selection' ); // Add `modelSelection` to consumable values.\n   *\t\tmodelConsumable.add( modelRange, 'range' ); // Add `modelRange` to consumable values.\n   *\n   * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item\n   * Model item, range or selection that has the consumable.\n   * @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.\n   * Second colon and everything after will be cut. Passing event name is a safe and good practice.\n   */\n\n\n  _createClass(ModelConsumable, [{\n    key: \"add\",\n    value: function add(item, type) {\n      type = _normalizeConsumableType(type);\n\n      if (item instanceof TextProxy) {\n        item = this._getSymbolForTextProxy(item);\n      }\n\n      if (!this._consumable.has(item)) {\n        this._consumable.set(item, new Map());\n      }\n\n      this._consumable.get(item).set(type, true);\n    }\n    /**\n     * Removes given consumable value from given model item.\n     *\n     *\t\tmodelConsumable.consume( modelElement, 'insert' ); // Remove `modelElement` insertion change from consumable values.\n     *\t\tmodelConsumable.consume( modelElement, 'addAttribute:bold' ); // Remove `bold` attribute insertion on `modelElement` change.\n     *\t\tmodelConsumable.consume( modelElement, 'removeAttribute:bold' ); // Remove `bold` attribute removal on `modelElement` change.\n     *\t\tmodelConsumable.consume( modelSelection, 'selection' ); // Remove `modelSelection` from consumable values.\n     *\t\tmodelConsumable.consume( modelRange, 'range' ); // Remove 'modelRange' from consumable values.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item\n     * Model item, range or selection from which consumable will be consumed.\n     * @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.\n     * Second colon and everything after will be cut. Passing event name is a safe and good practice.\n     * @returns {Boolean} `true` if consumable value was available and was consumed, `false` otherwise.\n     */\n\n  }, {\n    key: \"consume\",\n    value: function consume(item, type) {\n      type = _normalizeConsumableType(type);\n\n      if (item instanceof TextProxy) {\n        item = this._getSymbolForTextProxy(item);\n      }\n\n      if (this.test(item, type)) {\n        this._consumable.get(item).set(type, false);\n\n        return true;\n      } else {\n        return false;\n      }\n    }\n    /**\n     * Tests whether there is a consumable value of given type connected with given model item.\n     *\n     *\t\tmodelConsumable.test( modelElement, 'insert' ); // Check for `modelElement` insertion change.\n     *\t\tmodelConsumable.test( modelElement, 'addAttribute:bold' ); // Check for `bold` attribute insertion on `modelElement` change.\n     *\t\tmodelConsumable.test( modelElement, 'removeAttribute:bold' ); // Check for `bold` attribute removal on `modelElement` change.\n     *\t\tmodelConsumable.test( modelSelection, 'selection' ); // Check if `modelSelection` is consumable.\n     *\t\tmodelConsumable.test( modelRange, 'range' ); // Check if `modelRange` is consumable.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item\n     * Model item, range or selection to be tested.\n     * @param {String} type Consumable type. Will be normalized to a proper form, that is either `<word>` or `<part>:<part>`.\n     * Second colon and everything after will be cut. Passing event name is a safe and good practice.\n     * @returns {null|Boolean} `null` if such consumable was never added, `false` if the consumable values was\n     * already consumed or `true` if it was added and not consumed yet.\n     */\n\n  }, {\n    key: \"test\",\n    value: function test(item, type) {\n      type = _normalizeConsumableType(type);\n\n      if (item instanceof TextProxy) {\n        item = this._getSymbolForTextProxy(item);\n      }\n\n      var itemConsumables = this._consumable.get(item);\n\n      if (itemConsumables === undefined) {\n        return null;\n      }\n\n      var value = itemConsumables.get(type);\n\n      if (value === undefined) {\n        return null;\n      }\n\n      return value;\n    }\n    /**\n     * Reverts consuming of consumable value.\n     *\n     *\t\tmodelConsumable.revert( modelElement, 'insert' ); // Revert consuming `modelElement` insertion change.\n     *\t\tmodelConsumable.revert( modelElement, 'addAttribute:bold' ); // Revert consuming `bold` attribute insert from `modelElement`.\n     *\t\tmodelConsumable.revert( modelElement, 'removeAttribute:bold' ); // Revert consuming `bold` attribute remove from `modelElement`.\n     *\t\tmodelConsumable.revert( modelSelection, 'selection' ); // Revert consuming `modelSelection`.\n     *\t\tmodelConsumable.revert( modelRange, 'range' ); // Revert consuming `modelRange`.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/selection~Selection|module:engine/model/range~Range} item\n     * Model item, range or selection to be reverted.\n     * @param {String} type Consumable type.\n     * @returns {null|Boolean} `true` if consumable has been reversed, `false` otherwise. `null` if the consumable has\n     * never been added.\n     */\n\n  }, {\n    key: \"revert\",\n    value: function revert(item, type) {\n      type = _normalizeConsumableType(type);\n\n      if (item instanceof TextProxy) {\n        item = this._getSymbolForTextProxy(item);\n      }\n\n      var test = this.test(item, type);\n\n      if (test === false) {\n        this._consumable.get(item).set(type, true);\n\n        return true;\n      } else if (test === true) {\n        return false;\n      }\n\n      return null;\n    }\n    /**\n     * Gets a unique symbol for passed {@link module:engine/model/textproxy~TextProxy} instance. All `TextProxy` instances that\n     * have same parent, same start index and same end index will get the same symbol.\n     *\n     * Used internally to correctly consume `TextProxy` instances.\n     *\n     * @private\n     * @param {module:engine/model/textproxy~TextProxy} textProxy `TextProxy` instance to get a symbol for.\n     * @returns {Symbol} Symbol representing all equal instances of `TextProxy`.\n     */\n\n  }, {\n    key: \"_getSymbolForTextProxy\",\n    value: function _getSymbolForTextProxy(textProxy) {\n      var symbol = null;\n\n      var startMap = this._textProxyRegistry.get(textProxy.startOffset);\n\n      if (startMap) {\n        var endMap = startMap.get(textProxy.endOffset);\n\n        if (endMap) {\n          symbol = endMap.get(textProxy.parent);\n        }\n      }\n\n      if (!symbol) {\n        symbol = this._addSymbolForTextProxy(textProxy.startOffset, textProxy.endOffset, textProxy.parent);\n      }\n\n      return symbol;\n    }\n    /**\n     * Adds a symbol for given properties that characterizes a {@link module:engine/model/textproxy~TextProxy} instance.\n     *\n     * Used internally to correctly consume `TextProxy` instances.\n     *\n     * @private\n     * @param {Number} startIndex Text proxy start index in it's parent.\n     * @param {Number} endIndex Text proxy end index in it's parent.\n     * @param {module:engine/model/element~Element} parent Text proxy parent.\n     * @returns {Symbol} Symbol generated for given properties.\n     */\n\n  }, {\n    key: \"_addSymbolForTextProxy\",\n    value: function _addSymbolForTextProxy(start, end, parent) {\n      var symbol = Symbol('textProxySymbol');\n      var startMap, endMap;\n      startMap = this._textProxyRegistry.get(start);\n\n      if (!startMap) {\n        startMap = new Map();\n\n        this._textProxyRegistry.set(start, startMap);\n      }\n\n      endMap = startMap.get(end);\n\n      if (!endMap) {\n        endMap = new Map();\n        startMap.set(end, endMap);\n      }\n\n      endMap.set(parent, symbol);\n      return symbol;\n    }\n  }]);\n\n  return ModelConsumable;\n}(); // Returns a normalized consumable type name from given string. A normalized consumable type name is a string that has\n// at most one colon, for example: `insert` or `addMarker:highlight`. If string to normalize has more \"parts\" (more colons),\n// the other parts are dropped, for example: `addattribute:bold:$text` -> `addattributes:bold`.\n//\n// @param {String} type Consumable type.\n// @returns {String} Normalized consumable type.\n\n\nexport { ModelConsumable as default };\n\nfunction _normalizeConsumableType(type) {\n  var parts = type.split(':');\n  return parts.length > 1 ? parts[0] + ':' + parts[1] : parts[0];\n}","import \"core-js/modules/es6.set\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/conversion/upcastdispatcher\n */\nimport ViewConsumable from \"./viewconsumable\";\nimport ModelRange from \"../model/range\";\nimport ModelPosition from \"../model/position\";\nimport { SchemaContext } from \"../model/schema\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * `UpcastDispatcher` is a central point of {@link module:engine/view/view view} conversion, which is a process of\n * converting given {@link module:engine/view/documentfragment~DocumentFragment view document fragment} or\n * {@link module:engine/view/element~Element} into another structure.\n * In default application, {@link module:engine/view/view view} is converted to {@link module:engine/model/model}.\n *\n * During conversion process, for all {@link module:engine/view/node~Node view nodes} from the converted view document fragment,\n * `UpcastDispatcher` fires corresponding events. Special callbacks called \"converters\" should listen to\n * `UpcastDispatcher` for those events.\n *\n * Each callback, as the second argument, is passed a special object `data` that has `viewItem`, `modelCursor` and\n * `modelRange` properties. `viewItem` property contains {@link module:engine/view/node~Node view node} or\n * {@link module:engine/view/documentfragment~DocumentFragment view document fragment}\n * that is converted at the moment and might be handled by the callback. `modelRange` property should be used to save the result\n * of conversion and is always a {@link module:engine/model/range~Range} when conversion result is correct.\n * `modelCursor` property is a {@link module:engine/model/position~Position position} on which conversion result will be inserted\n * and is a context according to {@link module:engine/model/schema~Schema schema} will be checked before the conversion.\n * See also {@link ~UpcastDispatcher#convert}. It is also shared by reference by all callbacks listening to given event.\n *\n * The third parameter passed to a callback is an instance of {@link ~UpcastDispatcher}\n * which provides additional tools for converters.\n *\n * Examples of providing callbacks for `UpcastDispatcher`:\n *\n *\t\t// Converter for links (<a>).\n *\t\teditor.data.upcastDispatcher.on( 'element:a', ( evt, data, conversionApi ) => {\n *\t\t\tif ( conversionApi.consumable.consume( data.viewItem, { name: true, attributes: [ 'href' ] } ) ) {\n *\t\t\t\t// <a> element is inline and is represented by an attribute in the model.\n *\t\t\t\t// This is why we need to convert only children.\n *\t\t\t\tconst { modelRange } = conversionApi.convertChildren( data.viewItem, data.modelCursor );\n *\n *\t\t\t\tfor ( let item of modelRange.getItems() ) {\n *\t\t\t\t\tif ( conversionApi.schema.checkAttribute( item, 'linkHref' ) ) {\n *\t\t\t\t\t\tconversionApi.writer.setAttribute( 'linkHref', data.viewItem.getAttribute( 'href' ), item );\n *\t\t\t\t\t}\n *\t\t\t\t}\n *\t\t\t}\n *\t\t} );\n *\n *\t\t// Convert <p>'s font-size style.\n *\t\t// Note: You should use a low-priority observer in order to ensure that\n *\t\t// it's executed after the element-to-element converter.\n *\t\teditor.data.upcastDispatcher.on( 'element:p', ( evt, data, conversionApi ) => {\n *\t\t\tconst { consumable, schema, writer } = conversionApi;\n *\n *\t\t\tif ( !consumable.consume( data.viewItem, { style: 'font-size' } ) ) {\n *\t\t\t\treturn;\n *\t\t\t}\n *\n *\t\t\tconst fontSize = data.viewItem.getStyle( 'font-size' );\n *\n *\t\t\t// Don't go for the model element after data.modelCursor because it might happen\n *\t\t\t// that a single view element was converted to multiple model elements. Get all of them.\n *\t\t\tfor ( const item of data.modelRange.getItems( { shallow: true } ) ) {\n *\t\t\t\tif ( schema.checkAttribute( item, 'fontSize' ) ) {\n *\t\t\t\t\twriter.setAttribute( 'fontSize', fontSize, item );\n *\t\t\t\t}\n *\t\t\t}\n *\t\t}, { priority: 'low' } );\n *\n *\t\t// Convert all elements which have no custom converter into paragraph (autoparagraphing).\n *  \teditor.data.upcastDispatcher.on( 'element', ( evt, data, conversionApi ) => {\n *  \t \t// When element is already consumed by higher priority converters then do nothing.\n *  \t \tif ( conversionApi.consumable.test( data.viewItem, { name: data.viewItem.name } ) ) {\n *  \t \t\t\tconst paragraph = conversionApi.writer.createElement( 'paragraph' );\n *\n *  \t \t\t\t// Find allowed parent for paragraph that we are going to insert. If current parent does not allow\n *  \t \t\t\t// to insert paragraph but one of the ancestors does then split nodes to allowed parent.\n *  \t \t\t\tconst splitResult = conversionApi.splitToAllowedParent( paragraph, data.modelCursor );\n *\n *  \t \t\t\t// When there is no split result it means that we can't insert paragraph in this position.\n *  \t \t\t\tif ( splitResult ) {\n *  \t \t\t\t\t// Insert paragraph in allowed position.\n *  \t \t\t\t\tconversionApi.writer.insert( paragraph, splitResult.position );\n *\n *  \t \t\t\t\t// Convert children to paragraph.\n *  \t \t\t\t\tconst { modelRange } = conversionApi.convertChildren(\n *  \t \t\t\t\t\tdata.viewItem,\n *  \t \t\t\t\t\tconversionApi.writer.createPositionAt( paragraph, 0 )\n *  \t \t\t\t\t);\n *\n * \t\t\t\t\t\t// Set as conversion result, attribute converters may use this property.\n *  \t \t\t\t\tdata.modelRange = conversionApi.writer.createRange(\n *  \t \t\t\t\t\tconversionApi.writer.createPositionBefore( paragraph ),\n *  \t \t\t\t\t\tmodelRange.end\n *  \t \t\t\t\t);\n *\n *  \t \t\t\t\t// Continue conversion inside paragraph.\n *  \t \t\t\t\tdata.modelCursor = data.modelRange.end;\n *  \t \t\t\t}\n *  \t \t\t}\n *  \t \t}\n *  \t }, { priority: 'low' } );\n *\n * Before each conversion process, `UpcastDispatcher` fires {@link ~UpcastDispatcher#event:viewCleanup}\n * event which can be used to prepare tree view for conversion.\n *\n * @mixes module:utils/emittermixin~EmitterMixin\n * @fires viewCleanup\n * @fires element\n * @fires text\n * @fires documentFragment\n */\n\nvar UpcastDispatcher = /*#__PURE__*/function () {\n  /**\n   * Creates a `UpcastDispatcher` that operates using passed API.\n   *\n   * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi\n   * @param {Object} [conversionApi] Additional properties for interface that will be passed to events fired\n   * by `UpcastDispatcher`.\n   */\n  function UpcastDispatcher() {\n    var conversionApi = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, UpcastDispatcher);\n\n    /**\n     * List of the elements that were created during splitting.\n     *\n     * After conversion process the list is cleared.\n     *\n     * @private\n     * @type {Map.<module:engine/model/element~Element,Array.<module:engine/model/element~Element>>}\n     */\n    this._splitParts = new Map();\n    /**\n     * Position in the temporary structure where the converted content is inserted. The structure reflect the context of\n     * the target position where the content will be inserted. This property is build based on the context parameter of the\n     * convert method.\n     *\n     * @private\n     * @type {module:engine/model/position~Position|null}\n     */\n\n    this._modelCursor = null;\n    /**\n     * Interface passed by dispatcher to the events callbacks.\n     *\n     * @member {module:engine/conversion/upcastdispatcher~UpcastConversionApi}\n     */\n\n    this.conversionApi = Object.assign({}, conversionApi); // `convertItem`, `convertChildren` and `splitToAllowedParent` are bound to this `UpcastDispatcher`\n    // instance and set on `conversionApi`. This way only a part of `UpcastDispatcher` API is exposed.\n\n    this.conversionApi.convertItem = this._convertItem.bind(this);\n    this.conversionApi.convertChildren = this._convertChildren.bind(this);\n    this.conversionApi.splitToAllowedParent = this._splitToAllowedParent.bind(this);\n    this.conversionApi.getSplitParts = this._getSplitParts.bind(this);\n  }\n  /**\n   * Starts the conversion process. The entry point for the conversion.\n   *\n   * @fires element\n   * @fires text\n   * @fires documentFragment\n   * @param {module:engine/view/documentfragment~DocumentFragment|module:engine/view/element~Element} viewItem\n   * Part of the view to be converted.\n   * @param {module:engine/model/writer~Writer} writer Instance of model writer.\n   * @param {module:engine/model/schema~SchemaContextDefinition} [context=['$root']] Elements will be converted according to this context.\n   * @returns {module:engine/model/documentfragment~DocumentFragment} Model data that is a result of the conversion process\n   * wrapped in `DocumentFragment`. Converted marker elements will be set as that document fragment's\n   * {@link module:engine/model/documentfragment~DocumentFragment#markers static markers map}.\n   */\n\n\n  _createClass(UpcastDispatcher, [{\n    key: \"convert\",\n    value: function convert(viewItem, writer) {\n      var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ['$root'];\n      this.fire('viewCleanup', viewItem); // Create context tree and set position in the top element.\n      // Items will be converted according to this position.\n\n      this._modelCursor = createContextTree(context, writer); // Store writer in conversion as a conversion API\n      // to be sure that conversion process will use the same batch.\n\n      this.conversionApi.writer = writer; // Create consumable values list for conversion process.\n\n      this.conversionApi.consumable = ViewConsumable.createFrom(viewItem); // Custom data stored by converter for conversion process.\n\n      this.conversionApi.store = {}; // Do the conversion.\n\n      var _this$_convertItem = this._convertItem(viewItem, this._modelCursor),\n          modelRange = _this$_convertItem.modelRange; // Conversion result is always a document fragment so let's create it.\n\n\n      var documentFragment = writer.createDocumentFragment(); // When there is a conversion result.\n\n      if (modelRange) {\n        // Remove all empty elements that were create while splitting.\n        this._removeEmptyElements(); // Move all items that were converted in context tree to the document fragment.\n\n\n        for (var _i = 0, _Array$from = Array.from(this._modelCursor.parent.getChildren()); _i < _Array$from.length; _i++) {\n          var item = _Array$from[_i];\n          writer.append(item, documentFragment);\n        } // Extract temporary markers elements from model and set as static markers collection.\n\n\n        documentFragment.markers = extractMarkersFromModelFragment(documentFragment, writer);\n      } // Clear context position.\n\n\n      this._modelCursor = null; // Clear split elements lists.\n\n      this._splitParts.clear(); // Clear conversion API.\n\n\n      this.conversionApi.writer = null;\n      this.conversionApi.store = null; // Return fragment as conversion result.\n\n      return documentFragment;\n    }\n    /**\n     * @private\n     * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#convertItem\n     */\n\n  }, {\n    key: \"_convertItem\",\n    value: function _convertItem(viewItem, modelCursor) {\n      var data = Object.assign({\n        viewItem: viewItem,\n        modelCursor: modelCursor,\n        modelRange: null\n      });\n\n      if (viewItem.is('element')) {\n        this.fire('element:' + viewItem.name, data, this.conversionApi);\n      } else if (viewItem.is('text')) {\n        this.fire('text', data, this.conversionApi);\n      } else {\n        this.fire('documentFragment', data, this.conversionApi);\n      } // Handle incorrect conversion result.\n\n\n      if (data.modelRange && !(data.modelRange instanceof ModelRange)) {\n        /**\n         * Incorrect conversion result was dropped.\n         *\n         * {@link module:engine/model/range~Range Model range} should be a conversion result.\n         *\n         * @error view-conversion-dispatcher-incorrect-result\n         */\n        throw new CKEditorError('view-conversion-dispatcher-incorrect-result: Incorrect conversion result was dropped.', this);\n      }\n\n      return {\n        modelRange: data.modelRange,\n        modelCursor: data.modelCursor\n      };\n    }\n    /**\n     * @private\n     * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#convertChildren\n     */\n\n  }, {\n    key: \"_convertChildren\",\n    value: function _convertChildren(viewItem, modelCursor) {\n      var modelRange = new ModelRange(modelCursor);\n      var nextModelCursor = modelCursor;\n\n      for (var _i2 = 0, _Array$from2 = Array.from(viewItem.getChildren()); _i2 < _Array$from2.length; _i2++) {\n        var viewChild = _Array$from2[_i2];\n\n        var result = this._convertItem(viewChild, nextModelCursor);\n\n        if (result.modelRange instanceof ModelRange) {\n          modelRange.end = result.modelRange.end;\n          nextModelCursor = result.modelCursor;\n        }\n      }\n\n      return {\n        modelRange: modelRange,\n        modelCursor: nextModelCursor\n      };\n    }\n    /**\n     * @private\n     * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#splitToAllowedParent\n     */\n\n  }, {\n    key: \"_splitToAllowedParent\",\n    value: function _splitToAllowedParent(node, modelCursor) {\n      // Try to find allowed parent.\n      var allowedParent = this.conversionApi.schema.findAllowedParent(modelCursor, node); // When there is no parent that allows to insert node then return `null`.\n\n      if (!allowedParent) {\n        return null;\n      } // When current position parent allows to insert node then return this position.\n\n\n      if (allowedParent === modelCursor.parent) {\n        return {\n          position: modelCursor\n        };\n      } // When allowed parent is in context tree.\n\n\n      if (this._modelCursor.parent.getAncestors().includes(allowedParent)) {\n        return null;\n      } // Split element to allowed parent.\n\n\n      var splitResult = this.conversionApi.writer.split(modelCursor, allowedParent); // Using the range returned by `model.Writer#split`, we will pair original elements with their split parts.\n      //\n      // The range returned from the writer spans \"over the split\" or, precisely saying, from the end of the original element (the one\n      // that got split) to the beginning of the other part of that element:\n      //\n      // <limit><a><b><c>X[]Y</c></b><a></limit> ->\n      // <limit><a><b><c>X[</c></b></a><a><b><c>]Y</c></b></a>\n      //\n      // After the split there cannot be any full node between the positions in `splitRange`. The positions are touching.\n      // Also, because of how splitting works, it is easy to notice, that \"closing tags\" are in the reverse order than \"opening tags\".\n      // Also, since we split all those elements, each of them has to have the other part.\n      //\n      // With those observations in mind, we will pair the original elements with their split parts by saving \"closing tags\" and matching\n      // them with \"opening tags\" in the reverse order. For that we can use a stack.\n\n      var stack = [];\n\n      var _iterator = _createForOfIteratorHelper(splitResult.range.getWalker()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var treeWalkerValue = _step.value;\n\n          if (treeWalkerValue.type == 'elementEnd') {\n            stack.push(treeWalkerValue.item);\n          } else {\n            // There should not be any text nodes after the element is split, so the only other value is `elementStart`.\n            var originalPart = stack.pop();\n            var splitPart = treeWalkerValue.item;\n\n            this._registerSplitPair(originalPart, splitPart);\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return {\n        position: splitResult.position,\n        cursorParent: splitResult.range.end.parent\n      };\n    }\n    /**\n     * Registers that `splitPart` element is a split part of the `originalPart` element.\n     *\n     * Data set by this method is used by {@link #_getSplitParts} and {@link #_removeEmptyElements}.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} originalPart\n     * @param {module:engine/model/element~Element} splitPart\n     */\n\n  }, {\n    key: \"_registerSplitPair\",\n    value: function _registerSplitPair(originalPart, splitPart) {\n      if (!this._splitParts.has(originalPart)) {\n        this._splitParts.set(originalPart, [originalPart]);\n      }\n\n      var list = this._splitParts.get(originalPart);\n\n      this._splitParts.set(splitPart, list);\n\n      list.push(splitPart);\n    }\n    /**\n     * @private\n     * @see module:engine/conversion/upcastdispatcher~UpcastConversionApi#getSplitParts\n     */\n\n  }, {\n    key: \"_getSplitParts\",\n    value: function _getSplitParts(element) {\n      var parts;\n\n      if (!this._splitParts.has(element)) {\n        parts = [element];\n      } else {\n        parts = this._splitParts.get(element);\n      }\n\n      return parts;\n    }\n    /**\n     * Checks if there are any empty elements created while splitting and removes them.\n     *\n     * This method works recursively to re-check empty elements again after at least one element was removed in the initial call,\n     * as some elements might have become empty after other empty elements were removed from them.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_removeEmptyElements\",\n    value: function _removeEmptyElements() {\n      var anyRemoved = false;\n\n      var _iterator2 = _createForOfIteratorHelper(this._splitParts.keys()),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var element = _step2.value;\n\n          if (element.isEmpty) {\n            this.conversionApi.writer.remove(element);\n\n            this._splitParts.delete(element);\n\n            anyRemoved = true;\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      if (anyRemoved) {\n        this._removeEmptyElements();\n      }\n    }\n    /**\n     * Fired before the first conversion event, at the beginning of upcast (view to model conversion) process.\n     *\n     * @event viewCleanup\n     * @param {module:engine/view/documentfragment~DocumentFragment|module:engine/view/element~Element}\n     * viewItem Part of the view to be converted.\n     */\n\n    /**\n     * Fired when {@link module:engine/view/element~Element} is converted.\n     *\n     * `element` is a namespace event for a class of events. Names of actually called events follow this pattern:\n     * `element:<elementName>` where `elementName` is the name of converted element. This way listeners may listen to\n     * all elements conversion or to conversion of specific elements.\n     *\n     * @event element\n     * @param {Object} data Conversion data. Keep in mind that this object is shared by reference between all\n     * callbacks that will be called. This means that callbacks can override values if needed, and those values will\n     * be available in other callbacks.\n     * @param {module:engine/view/item~Item} data.viewItem Converted item.\n     * @param {module:engine/model/position~Position} data.modelCursor Position where a converter should start changes.\n     * Change this value for the next converter to tell where the conversion should continue.\n     * @param {module:engine/model/range~Range} data.modelRange The current state of conversion result. Every change to\n     * converted element should be reflected by setting or modifying this property.\n     * @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion utilities to be used by callback.\n     */\n\n    /**\n     * Fired when {@link module:engine/view/text~Text} is converted.\n     *\n     * @event text\n     * @see #event:element\n     */\n\n    /**\n     * Fired when {@link module:engine/view/documentfragment~DocumentFragment} is converted.\n     *\n     * @event documentFragment\n     * @see #event:element\n     */\n\n  }]);\n\n  return UpcastDispatcher;\n}();\n\nexport { UpcastDispatcher as default };\nmix(UpcastDispatcher, EmitterMixin); // Traverses given model item and searches elements which marks marker range. Found element is removed from\n// DocumentFragment but path of this element is stored in a Map which is then returned.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment|module:engine/view/node~Node} modelItem Fragment of model.\n// @returns {Map<String, module:engine/model/range~Range>} List of static markers.\n\nfunction extractMarkersFromModelFragment(modelItem, writer) {\n  var markerElements = new Set();\n  var markers = new Map(); // Create ModelTreeWalker.\n\n  var range = ModelRange._createIn(modelItem).getItems(); // Walk through DocumentFragment and collect marker elements.\n\n\n  var _iterator3 = _createForOfIteratorHelper(range),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var item = _step3.value;\n\n      // Check if current element is a marker.\n      if (item.name == '$marker') {\n        markerElements.add(item);\n      }\n    } // Walk through collected marker elements store its path and remove its from the DocumentFragment.\n\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  var _iterator4 = _createForOfIteratorHelper(markerElements),\n      _step4;\n\n  try {\n    for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n      var markerElement = _step4.value;\n      var markerName = markerElement.getAttribute('data-name');\n      var currentPosition = writer.createPositionBefore(markerElement); // When marker of given name is not stored it means that we have found the beginning of the range.\n\n      if (!markers.has(markerName)) {\n        markers.set(markerName, new ModelRange(currentPosition.clone())); // Otherwise is means that we have found end of the marker range.\n      } else {\n        markers.get(markerName).end = currentPosition.clone();\n      } // Remove marker element from DocumentFragment.\n\n\n      writer.remove(markerElement);\n    }\n  } catch (err) {\n    _iterator4.e(err);\n  } finally {\n    _iterator4.f();\n  }\n\n  return markers;\n} // Creates model fragment according to given context and returns position in the bottom (the deepest) element.\n\n\nfunction createContextTree(contextDefinition, writer) {\n  var position;\n\n  var _iterator5 = _createForOfIteratorHelper(new SchemaContext(contextDefinition)),\n      _step5;\n\n  try {\n    for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n      var item = _step5.value;\n      var attributes = {};\n\n      var _iterator6 = _createForOfIteratorHelper(item.getAttributeKeys()),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var key = _step6.value;\n          attributes[key] = item.getAttribute(key);\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      var current = writer.createElement(item.name, attributes);\n\n      if (position) {\n        writer.append(current, position);\n      }\n\n      position = ModelPosition._createAt(current, 0);\n    }\n  } catch (err) {\n    _iterator5.e(err);\n  } finally {\n    _iterator5.f();\n  }\n\n  return position;\n}\n/**\n * Conversion interface that is registered for given {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher}\n * and is passed as one of parameters when {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher dispatcher}\n * fires it's events.\n *\n * @interface module:engine/conversion/upcastdispatcher~UpcastConversionApi\n */\n\n/**\n * Starts conversion of given item by firing an appropriate event.\n *\n * Every fired event is passed (as first parameter) an object with `modelRange` property. Every event may set and/or\n * modify that property. When all callbacks are done, the final value of `modelRange` property is returned by this method.\n * The `modelRange` must be {@link module:engine/model/range~Range model range} or `null` (as set by default).\n *\n * @method #convertItem\n * @fires module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element\n * @fires module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:text\n * @fires module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:documentFragment\n * @param {module:engine/view/item~Item} viewItem Item to convert.\n * @param {module:engine/model/position~Position} modelCursor Position of conversion.\n * @returns {Object} result Conversion result.\n * @returns {module:engine/model/range~Range|null} result.modelRange Model range containing result of item conversion,\n * created and modified by callbacks attached to fired event, or `null` if the conversion result was incorrect.\n * @returns {module:engine/model/position~Position} result.modelCursor Position where conversion should be continued.\n */\n\n/**\n * Starts conversion of all children of given item by firing appropriate events for all those children.\n *\n * @method #convertChildren\n * @fires module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element\n * @fires module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:text\n * @fires module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:documentFragment\n * @param {module:engine/view/item~Item} viewItem Element which children should be converted.\n * @param {module:engine/model/position~Position} modelCursor Position of conversion.\n * @returns {Object} result Conversion result.\n * @returns {module:engine/model/range~Range} result.modelRange Model range containing results of conversion of all children of given item.\n * When no children was converted then range is collapsed.\n * @returns {module:engine/model/position~Position} result.modelCursor Position where conversion should be continued.\n */\n\n/**\n * Checks {@link module:engine/model/schema~Schema schema} to find allowed parent for element that we are going to insert\n * starting from given position. If current parent does not allow to insert element but one of the ancestors does then\n * split nodes to allowed parent.\n *\n * If schema allows to insert node in given position, nothing is split and object with that position is returned.\n *\n * If it was not possible to find allowed parent, `null` is returned, nothing is split.\n *\n * Otherwise, ancestors are split and object with position and the copy of the split element is returned.\n *\n * For instance, if `<image>` is not allowed in `<paragraph>` but is allowed in `$root`:\n *\n *\t\t<paragraph>foo[]bar</paragraph>\n *\n *  \t-> split for `<image>` ->\n *\n *  \t<paragraph>foo</paragraph>[]<paragraph>bar</paragraph>\n *\n * In the sample above position between `<paragraph>` elements will be returned as `position` and the second `paragraph`\n * as `cursorParent`.\n *\n * @method #splitToAllowedParent\n * @param {module:engine/model/position~Position} position Position on which element is going to be inserted.\n * @param {module:engine/model/node~Node} node Node to insert.\n * @returns {Object|null} Split result. If it was not possible to find allowed position `null` is returned.\n * @returns {module:engine/model/position~Position} position between split elements.\n * @returns {module:engine/model/element~Element} [cursorParent] Element inside which cursor should be placed to\n * continue conversion. When element is not defined it means that there was no split.\n */\n\n/**\n * Returns all the split parts of given `element` that were created during upcasting through using {@link #splitToAllowedParent}.\n * It enables you to easily track those elements and continue processing them after they are split during their children conversion.\n *\n *\t\t<paragraph>Foo<image />bar<image />baz</paragraph> ->\n *\t\t<paragraph>Foo</paragraph><image /><paragraph>bar</paragraph><image /><paragraph>baz</paragraph>\n *\n * For a reference to any of above paragraphs, the function will return all three paragraphs (the original element included),\n * sorted in the order of their creation (the original element is the first one).\n *\n * If given `element` was not split, an array with single element is returned.\n *\n * Example of a usage in a converter code:\n *\n *\t\tconst myElement = conversionApi.writer.createElement( 'myElement' );\n *\n *\t\t// Children conversion may split `myElement`.\n *\t\tconversionApi.convertChildren( myElement, modelCursor );\n *\n *\t\tconst splitParts = conversionApi.getSplitParts( myElement );\n *\t\tconst lastSplitPart = splitParts[ splitParts.length - 1 ];\n *\n *\t\t// Setting `data.modelRange` basing on split parts:\n *\t\tdata.modelRange = conversionApi.writer.createRange(\n *\t\t\tconversionApi.writer.createPositionBefore( myElement ),\n *\t\t\tconversionApi.writer.createPositionAfter( lastSplitPart )\n *\t\t);\n *\n *\t\t// Setting `data.modelCursor` to continue after the last split element:\n *\t\tdata.modelCursor = conversionApi.writer.createPositionAfter( lastSplitPart );\n *\n * **Tip:** if you are unable to get a reference to the original element (for example because the code is split into multiple converters\n * or even classes) but it was already converted, you might want to check first element in `data.modelRange`. This is a common situation\n * if an attribute converter is separated from an element converter.\n *\n * @method #getSplitParts\n * @param {module:engine/model/element~Element} element\n * @returns {Array.<module:engine/model/element~Element>}\n */\n\n/**\n * Stores information about what parts of processed view item are still waiting to be handled. After a piece of view item\n * was converted, appropriate consumable value should be {@link module:engine/conversion/viewconsumable~ViewConsumable#consume consumed}.\n *\n * @member {module:engine/conversion/viewconsumable~ViewConsumable} #consumable\n */\n\n/**\n * Custom data stored by converters for conversion process. Custom properties of this object can be defined and use to\n * pass parameters between converters.\n *\n * The difference between this property and `data` parameter of\n * {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element} is that `data` parameters allows you\n * to pass parameters within a single event and `store` within the whole conversion.\n *\n * @member {Object} #store\n */\n\n/**\n * The model's schema instance.\n *\n * @member {module:engine/model/schema~Schema} #schema\n */\n\n/**\n * The {@link module:engine/model/writer~Writer} instance used to manipulate data during conversion.\n *\n * @member {module:engine/model/writer~Writer} #writer\n */","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _defineProperty from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/defineProperty\";\nimport \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.function.name\";\nimport _typeof from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/typeof\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport Matcher from \"../view/matcher\";\nimport ModelRange from \"../model/range\";\nimport ConversionHelpers from \"./conversionhelpers\";\nimport { cloneDeep } from 'lodash-es';\nimport ModelSelection from \"../model/selection\";\n/**\n * Contains {@link module:engine/view/view view} to {@link module:engine/model/model model} converters for\n * {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher}.\n *\n * @module engine/conversion/upcasthelpers\n */\n\n/**\n * Upcast conversion helper functions.\n *\n * @extends module:engine/conversion/conversionhelpers~ConversionHelpers\n */\n\nvar UpcastHelpers = /*#__PURE__*/function (_ConversionHelpers) {\n  _inherits(UpcastHelpers, _ConversionHelpers);\n\n  var _super = _createSuper(UpcastHelpers);\n\n  function UpcastHelpers() {\n    _classCallCheck(this, UpcastHelpers);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(UpcastHelpers, [{\n    key: \"elementToElement\",\n\n    /**\n     * View element to model element conversion helper.\n     *\n     * This conversion results in creating a model element. For example,\n     * view `<p>Foo</p>` becomes `<paragraph>Foo</paragraph>` in the model.\n     *\n     * Keep in mind that the element will be inserted only if it is allowed\n     * by {@link module:engine/model/schema~Schema schema} configuration.\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n     *\t\t\tview: 'p',\n     *\t\t\tmodel: 'paragraph'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n     *\t\t\tview: 'p',\n     *\t\t\tmodel: 'paragraph',\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n     *\t\t\tview: {\n     *\t\t\t\tname: 'p',\n     *\t\t\t\tclasses: 'fancy'\n     *\t\t\t},\n     *\t\t\tmodel: 'fancyParagraph'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToElement( {\n     * \t\t\tview: {\n     *\t\t\t\tname: 'p',\n     *\t\t\t\tclasses: 'heading'\n     * \t\t\t},\n     * \t\t\tmodel: ( viewElement, modelWriter ) => {\n     * \t\t\t\treturn modelWriter.createElement( 'heading', { level: viewElement.getAttribute( 'data-level' ) } );\n     * \t\t\t}\n     * \t\t} );\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #elementToElement\n     * @param {Object} config Conversion configuration.\n     * @param {module:engine/view/matcher~MatcherPattern} [config.view] Pattern matching all view elements which should be converted. If not\n     * set, the converter will fire for every view element.\n     * @param {String|module:engine/model/element~Element|Function} config.model Name of the model element, a model element\n     * instance or a function that takes a view element and returns a model element. The model element will be inserted in the model.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n     * @returns {module:engine/conversion/upcasthelpers~UpcastHelpers}\n     */\n    value: function elementToElement(config) {\n      return this.add(upcastElementToElement(config));\n    }\n    /**\n     * View element to model attribute conversion helper.\n     *\n     * This conversion results in setting an attribute on a model node. For example, view `<strong>Foo</strong>` becomes\n     * `Foo` {@link module:engine/model/text~Text model text node} with `bold` attribute set to `true`.\n     *\n     * This helper is meant to set a model attribute on all the elements that are inside the converted element:\n     *\n     *\t\t<strong>Foo</strong>   -->   <strong><p>Foo</p></strong>   -->   <paragraph><$text bold=\"true\">Foo</$text></paragraph>\n     *\n     * Above is a sample of HTML code, that goes through autoparagraphing (first step) and then is converted (second step).\n     * Even though `<strong>` is over `<p>` element, `bold=\"true\"` was added to the text. See\n     * {@link module:engine/conversion/upcasthelpers~UpcastHelpers#attributeToAttribute} for comparison.\n     *\n     * Keep in mind that the attribute will be set only if it is allowed by {@link module:engine/model/schema~Schema schema} configuration.\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n     *\t\t\tview: 'strong',\n     *\t\t\tmodel: 'bold'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n     *\t\t\tview: 'strong',\n     *\t\t\tmodel: 'bold',\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n     *\t\t\tview: {\n     *\t\t\t\tname: 'span',\n     *\t\t\t\tclasses: 'bold'\n     *\t\t\t},\n     *\t\t\tmodel: 'bold'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n     *\t\t\tview: {\n     *\t\t\t\tname: 'span',\n     *\t\t\t\tclasses: [ 'styled', 'styled-dark' ]\n     *\t\t\t},\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'styled',\n     *\t\t\t\tvalue: 'dark'\n     *\t\t\t}\n     *\t\t} );\n     *\n     * \t\teditor.conversion.for( 'upcast' ).elementToAttribute( {\n     *\t\t\tview: {\n     *\t\t\t\tname: 'span',\n     *\t\t\t\tstyles: {\n     *\t\t\t\t\t'font-size': /[\\s\\S]+/\n     *\t\t\t\t}\n     *\t\t\t},\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'fontSize',\n     *\t\t\t\tvalue: viewElement => {\n     *\t\t\t\t\tconst fontSize = viewElement.getStyle( 'font-size' );\n     *\t\t\t\t\tconst value = fontSize.substr( 0, fontSize.length - 2 );\n     *\n     *\t\t\t\t\tif ( value <= 10 ) {\n     *\t\t\t\t\t\treturn 'small';\n     *\t\t\t\t\t} else if ( value > 12 ) {\n     *\t\t\t\t\t\treturn 'big';\n     *\t\t\t\t\t}\n     *\n     *\t\t\t\t\treturn null;\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #elementToAttribute\n     * @param {Object} config Conversion configuration.\n     * @param {module:engine/view/matcher~MatcherPattern} config.view Pattern matching all view elements which should be converted.\n     * @param {String|Object} config.model Model attribute key or an object with `key` and `value` properties, describing\n     * the model attribute. `value` property may be set as a function that takes a view element and returns the value.\n     * If `String` is given, the model attribute value will be set to `true`.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='low'] Converter priority.\n     * @returns {module:engine/conversion/upcasthelpers~UpcastHelpers}\n     */\n\n  }, {\n    key: \"elementToAttribute\",\n    value: function elementToAttribute(config) {\n      return this.add(upcastElementToAttribute(config));\n    }\n    /**\n     * View attribute to model attribute conversion helper.\n     *\n     * This conversion results in setting an attribute on a model node. For example, view `<img src=\"foo.jpg\"></img>` becomes\n     * `<image source=\"foo.jpg\"></image>` in the model.\n     *\n     * This helper is meant to convert view attributes from view elements which got converted to the model, so the view attribute\n     * is set only on the corresponding model node:\n     *\n     *\t\t<div class=\"dark\"><div>foo</div></div>    -->    <div dark=\"true\"><div>foo</div></div>\n     *\n     * Above, `class=\"dark\"` attribute is added only to the `<div>` elements that has it. This is in contrary to\n     * {@link module:engine/conversion/upcasthelpers~UpcastHelpers#elementToAttribute} which sets attributes for\n     * all the children in the model:\n     *\n     *\t\t<strong>Foo</strong>   -->   <strong><p>Foo</p></strong>   -->   <paragraph><$text bold=\"true\">Foo</$text></paragraph>\n     *\n     * Above is a sample of HTML code, that goes through autoparagraphing (first step) and then is converted (second step).\n     * Even though `<strong>` is over `<p>` element, `bold=\"true\"` was added to the text.\n     *\n     * Keep in mind that the attribute will be set only if it is allowed by {@link module:engine/model/schema~Schema schema} configuration.\n     *\n     *\t\teditor.conversion.for( 'upcast' ).attributeToAttribute( {\n     *\t\t\tview: 'src',\n     *\t\t\tmodel: 'source'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).attributeToAttribute( {\n     *\t\t\tview: { key: 'src' },\n     *\t\t\tmodel: 'source'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).attributeToAttribute( {\n     *\t\t\tview: { key: 'src' },\n     *\t\t\tmodel: 'source',\n     *\t\t\tconverterPriority: 'normal'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).attributeToAttribute( {\n     *\t\t\tview: {\n     *\t\t\t\tkey: 'data-style',\n     *\t\t\t\tvalue: /[\\s\\S]+/\n     *\t\t\t},\n     *\t\t\tmodel: 'styled'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).attributeToAttribute( {\n     *\t\t\tview: {\n     *\t\t\t\tname: 'img',\n     *\t\t\t\tkey: 'class',\n     *\t\t\t\tvalue: 'styled-dark'\n     *\t\t\t},\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'styled',\n     *\t\t\t\tvalue: 'dark'\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).attributeToAttribute( {\n     *\t\t\tview: {\n     *\t\t\t\tkey: 'class',\n     *\t\t\t\tvalue: /styled-[\\S]+/\n     *\t\t\t},\n     *\t\t\tmodel: {\n     *\t\t\t\tkey: 'styled'\n     *\t\t\t\tvalue: viewElement => {\n     *\t\t\t\t\tconst regexp = /styled-([\\S]+)/;\n     *\t\t\t\t\tconst match = viewElement.getAttribute( 'class' ).match( regexp );\n     *\n     *\t\t\t\t\treturn match[ 1 ];\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #attributeToAttribute\n     * @param {Object} config Conversion configuration.\n     * @param {String|Object} config.view Specifies which view attribute will be converted. If a `String` is passed,\n     * attributes with given key will be converted. If an `Object` is passed, it must have a required `key` property,\n     * specifying view attribute key, and may have an optional `value` property, specifying view attribute value and optional `name`\n     * property specifying a view element name from/on which the attribute should be converted. `value` can be given as a `String`,\n     * a `RegExp` or a function callback, that takes view attribute value as the only parameter and returns `Boolean`.\n     * @param {String|Object} config.model Model attribute key or an object with `key` and `value` properties, describing\n     * the model attribute. `value` property may be set as a function that takes a view element and returns the value.\n     * If `String` is given, the model attribute value will be same as view attribute value.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='low'] Converter priority.\n     * @returns {module:engine/conversion/upcasthelpers~UpcastHelpers}\n     */\n\n  }, {\n    key: \"attributeToAttribute\",\n    value: function attributeToAttribute(config) {\n      return this.add(upcastAttributeToAttribute(config));\n    }\n    /**\n     * View element to model marker conversion helper.\n     *\n     * This conversion results in creating a model marker. For example, if the marker was stored in a view as an element:\n     * `<p>Fo<span data-marker=\"comment\" data-comment-id=\"7\"></span>o</p><p>B<span data-marker=\"comment\" data-comment-id=\"7\"></span>ar</p>`,\n     * after the conversion is done, the marker will be available in\n     * {@link module:engine/model/model~Model#markers model document markers}.\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToMarker( {\n     *\t\t\tview: 'marker-search',\n     *\t\t\tmodel: 'search'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToMarker( {\n     *\t\t\tview: 'marker-search',\n     *\t\t\tmodel: 'search',\n     *\t\t\tconverterPriority: 'high'\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToMarker( {\n     *\t\t\tview: 'marker-search',\n     *\t\t\tmodel: viewElement => 'comment:' + viewElement.getAttribute( 'data-comment-id' )\n     *\t\t} );\n     *\n     *\t\teditor.conversion.for( 'upcast' ).elementToMarker( {\n     *\t\t\tview: {\n     *\t\t\t\tname: 'span',\n     *\t\t\t\tattributes: {\n     *\t\t\t\t\t'data-marker': 'search'\n     *\t\t\t\t}\n     *\t\t\t},\n     *\t\t\tmodel: 'search'\n     *\t\t} );\n     *\n     * See {@link module:engine/conversion/conversion~Conversion#for `conversion.for()`} to learn how to add a converter\n     * to the conversion process.\n     *\n     * @method #elementToMarker\n     * @param {Object} config Conversion configuration.\n     * @param {module:engine/view/matcher~MatcherPattern} config.view Pattern matching all view elements which should be converted.\n     * @param {String|Function} config.model Name of the model marker, or a function that takes a view element and returns\n     * a model marker name.\n     * @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n     * @returns {module:engine/conversion/upcasthelpers~UpcastHelpers}\n     */\n\n  }, {\n    key: \"elementToMarker\",\n    value: function elementToMarker(config) {\n      return this.add(upcastElementToMarker(config));\n    }\n  }]);\n\n  return UpcastHelpers;\n}(ConversionHelpers);\n/**\n * Function factory, creates a converter that converts {@link module:engine/view/documentfragment~DocumentFragment view document fragment}\n * or all children of {@link module:engine/view/element~Element} into\n * {@link module:engine/model/documentfragment~DocumentFragment model document fragment}.\n * This is the \"entry-point\" converter for upcast (view to model conversion). This converter starts the conversion of all children\n * of passed view document fragment. Those children {@link module:engine/view/node~Node view nodes} are then handled by other converters.\n *\n * This also a \"default\", last resort converter for all view elements that has not been converted by other converters.\n * When a view element is being converted to the model but it does not have converter specified, that view element\n * will be converted to {@link module:engine/model/documentfragment~DocumentFragment model document fragment} and returned.\n *\n * @returns {Function} Universal converter for view {@link module:engine/view/documentfragment~DocumentFragment fragments} and\n * {@link module:engine/view/element~Element elements} that returns\n * {@link module:engine/model/documentfragment~DocumentFragment model fragment} with children of converted view item.\n */\n\n\nexport { UpcastHelpers as default };\nexport function convertToModelFragment() {\n  return function (evt, data, conversionApi) {\n    // Second argument in `consumable.consume` is discarded for ViewDocumentFragment but is needed for ViewElement.\n    if (!data.modelRange && conversionApi.consumable.consume(data.viewItem, {\n      name: true\n    })) {\n      var _conversionApi$conver = conversionApi.convertChildren(data.viewItem, data.modelCursor),\n          modelRange = _conversionApi$conver.modelRange,\n          modelCursor = _conversionApi$conver.modelCursor;\n\n      data.modelRange = modelRange;\n      data.modelCursor = modelCursor;\n    }\n  };\n}\n/**\n * Function factory, creates a converter that converts {@link module:engine/view/text~Text} to {@link module:engine/model/text~Text}.\n *\n * @returns {Function} {@link module:engine/view/text~Text View text} converter.\n */\n\nexport function convertText() {\n  return function (evt, data, conversionApi) {\n    if (conversionApi.schema.checkChild(data.modelCursor, '$text')) {\n      if (conversionApi.consumable.consume(data.viewItem)) {\n        var text = conversionApi.writer.createText(data.viewItem.data);\n        conversionApi.writer.insert(text, data.modelCursor);\n        data.modelRange = ModelRange._createFromPositionAndShift(data.modelCursor, text.offsetSize);\n        data.modelCursor = data.modelRange.end;\n      }\n    }\n  };\n}\n/**\n * Function factory, creates a callback function which converts a {@link module:engine/view/selection~Selection\n * view selection} taken from the {@link module:engine/view/document~Document#event:selectionChange} event\n * and sets in on the {@link module:engine/model/document~Document#selection model}.\n *\n * **Note**: because there is no view selection change dispatcher nor any other advanced view selection to model\n * conversion mechanism, the callback should be set directly on view document.\n *\n *\t\tview.document.on( 'selectionChange', convertSelectionChange( modelDocument, mapper ) );\n *\n * @param {module:engine/model/model~Model} model Data model.\n * @param {module:engine/conversion/mapper~Mapper} mapper Conversion mapper.\n * @returns {Function} {@link module:engine/view/document~Document#event:selectionChange} callback function.\n */\n\nexport function convertSelectionChange(model, mapper) {\n  return function (evt, data) {\n    var viewSelection = data.newSelection;\n    var modelSelection = new ModelSelection();\n    var ranges = [];\n\n    var _iterator = _createForOfIteratorHelper(viewSelection.getRanges()),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var viewRange = _step.value;\n        ranges.push(mapper.toModelRange(viewRange));\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    modelSelection.setTo(ranges, {\n      backward: viewSelection.isBackward\n    });\n\n    if (!modelSelection.isEqual(model.document.selection)) {\n      model.change(function (writer) {\n        writer.setSelection(modelSelection);\n      });\n    }\n  };\n} // View element to model element conversion helper.\n//\n// See {@link ~UpcastHelpers#elementToElement `.elementToElement()` upcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {module:engine/view/matcher~MatcherPattern} [config.view] Pattern matching all view elements which should be converted. If not\n// set, the converter will fire for every view element.\n// @param {String|module:engine/model/element~Element|Function} config.model Name of the model element, a model element\n// instance or a function that takes a view element and returns a model element. The model element will be inserted in the model.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n// @returns {Function} Conversion helper.\n\nfunction upcastElementToElement(config) {\n  config = cloneDeep(config);\n  var converter = prepareToElementConverter(config);\n  var elementName = getViewElementNameFromConfig(config.view);\n  var eventName = elementName ? 'element:' + elementName : 'element';\n  return function (dispatcher) {\n    dispatcher.on(eventName, converter, {\n      priority: config.converterPriority || 'normal'\n    });\n  };\n} // View element to model attribute conversion helper.\n//\n// See {@link ~UpcastHelpers#elementToAttribute `.elementToAttribute()` upcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {module:engine/view/matcher~MatcherPattern} config.view Pattern matching all view elements which should be converted.\n// @param {String|Object} config.model Model attribute key or an object with `key` and `value` properties, describing\n// the model attribute. `value` property may be set as a function that takes a view element and returns the value.\n// If `String` is given, the model attribute value will be set to `true`.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='low'] Converter priority.\n// @returns {Function} Conversion helper.\n\n\nfunction upcastElementToAttribute(config) {\n  config = cloneDeep(config);\n  normalizeModelAttributeConfig(config);\n  var converter = prepareToAttributeConverter(config, false);\n  var elementName = getViewElementNameFromConfig(config.view);\n  var eventName = elementName ? 'element:' + elementName : 'element';\n  return function (dispatcher) {\n    dispatcher.on(eventName, converter, {\n      priority: config.converterPriority || 'low'\n    });\n  };\n} // View attribute to model attribute conversion helper.\n//\n// See {@link ~UpcastHelpers#attributeToAttribute `.attributeToAttribute()` upcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {String|Object} config.view Specifies which view attribute will be converted. If a `String` is passed,\n// attributes with given key will be converted. If an `Object` is passed, it must have a required `key` property,\n// specifying view attribute key, and may have an optional `value` property, specifying view attribute value and optional `name`\n// property specifying a view element name from/on which the attribute should be converted. `value` can be given as a `String`,\n// a `RegExp` or a function callback, that takes view attribute value as the only parameter and returns `Boolean`.\n// @param {String|Object} config.model Model attribute key or an object with `key` and `value` properties, describing\n// the model attribute. `value` property may be set as a function that takes a view element and returns the value.\n// If `String` is given, the model attribute value will be same as view attribute value.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='low'] Converter priority.\n// @returns {Function} Conversion helper.\n\n\nfunction upcastAttributeToAttribute(config) {\n  config = cloneDeep(config);\n  var viewKey = null;\n\n  if (typeof config.view == 'string' || config.view.key) {\n    viewKey = normalizeViewAttributeKeyValueConfig(config);\n  }\n\n  normalizeModelAttributeConfig(config, viewKey);\n  var converter = prepareToAttributeConverter(config, true);\n  return function (dispatcher) {\n    dispatcher.on('element', converter, {\n      priority: config.converterPriority || 'low'\n    });\n  };\n} // View element to model marker conversion helper.\n//\n// See {@link ~UpcastHelpers#elementToMarker `.elementToMarker()` upcast helper} for examples.\n//\n// @param {Object} config Conversion configuration.\n// @param {module:engine/view/matcher~MatcherPattern} config.view Pattern matching all view elements which should be converted.\n// @param {String|Function} config.model Name of the model marker, or a function that takes a view element and returns\n// a model marker name.\n// @param {module:utils/priorities~PriorityString} [config.converterPriority='normal'] Converter priority.\n// @returns {Function} Conversion helper.\n\n\nfunction upcastElementToMarker(config) {\n  config = cloneDeep(config);\n  normalizeToMarkerConfig(config);\n  return upcastElementToElement(config);\n} // Helper function for from-view-element conversion. Checks if `config.view` directly specifies converted view element's name\n// and if so, returns it.\n//\n// @param {Object} config Conversion view config.\n// @returns {String|null} View element name or `null` if name is not directly set.\n\n\nfunction getViewElementNameFromConfig(viewConfig) {\n  if (typeof viewConfig == 'string') {\n    return viewConfig;\n  }\n\n  if (_typeof(viewConfig) == 'object' && typeof viewConfig.name == 'string') {\n    return viewConfig.name;\n  }\n\n  return null;\n} // Helper for to-model-element conversion. Takes a config object and returns a proper converter function.\n//\n// @param {Object} config Conversion configuration.\n// @returns {Function} View to model converter.\n\n\nfunction prepareToElementConverter(config) {\n  var matcher = config.view ? new Matcher(config.view) : null;\n  return function (evt, data, conversionApi) {\n    var match = {}; // If `config.view` has not been passed do not try matching. In this case, the converter should fire for all elements.\n\n    if (matcher) {\n      // This will be usually just one pattern but we support matchers with many patterns too.\n      var matcherResult = matcher.match(data.viewItem); // If there is no match, this callback should not do anything.\n\n      if (!matcherResult) {\n        return;\n      }\n\n      match = matcherResult.match;\n    } // Force consuming element's name.\n\n\n    match.name = true; // Create model element basing on config.\n\n    var modelElement = getModelElement(config.model, data.viewItem, conversionApi.writer); // Do not convert if element building function returned falsy value.\n\n    if (!modelElement) {\n      return;\n    } // When element was already consumed then skip it.\n\n\n    if (!conversionApi.consumable.test(data.viewItem, match)) {\n      return;\n    } // Find allowed parent for element that we are going to insert.\n    // If current parent does not allow to insert element but one of the ancestors does\n    // then split nodes to allowed parent.\n\n\n    var splitResult = conversionApi.splitToAllowedParent(modelElement, data.modelCursor); // When there is no split result it means that we can't insert element to model tree, so let's skip it.\n\n    if (!splitResult) {\n      return;\n    } // Insert element on allowed position.\n\n\n    conversionApi.writer.insert(modelElement, splitResult.position); // Convert children and insert to element.\n\n    conversionApi.convertChildren(data.viewItem, conversionApi.writer.createPositionAt(modelElement, 0)); // Consume appropriate value from consumable values list.\n\n    conversionApi.consumable.consume(data.viewItem, match);\n    var parts = conversionApi.getSplitParts(modelElement); // Set conversion result range.\n\n    data.modelRange = new ModelRange(conversionApi.writer.createPositionBefore(modelElement), conversionApi.writer.createPositionAfter(parts[parts.length - 1])); // Now we need to check where the `modelCursor` should be.\n\n    if (splitResult.cursorParent) {\n      // If we split parent to insert our element then we want to continue conversion in the new part of the split parent.\n      //\n      // before: <allowed><notAllowed>foo[]</notAllowed></allowed>\n      // after:  <allowed><notAllowed>foo</notAllowed><converted></converted><notAllowed>[]</notAllowed></allowed>\n      data.modelCursor = conversionApi.writer.createPositionAt(splitResult.cursorParent, 0);\n    } else {\n      // Otherwise just continue after inserted element.\n      data.modelCursor = data.modelRange.end;\n    }\n  };\n} // Helper function for upcasting-to-element converter. Takes the model configuration, the converted view element\n// and a writer instance and returns a model element instance to be inserted in the model.\n//\n// @param {String|Function|module:engine/model/element~Element} model Model conversion configuration.\n// @param {module:engine/view/node~Node} input The converted view node.\n// @param {module:engine/model/writer~Writer} writer A writer instance to use to create the model element.\n\n\nfunction getModelElement(model, input, writer) {\n  if (model instanceof Function) {\n    return model(input, writer);\n  } else {\n    return writer.createElement(model);\n  }\n} // Helper function view-attribute-to-model-attribute helper. Normalizes `config.view` which was set as `String` or\n// as an `Object` with `key`, `value` and `name` properties. Normalized `config.view` has is compatible with\n// {@link module:engine/view/matcher~MatcherPattern}.\n//\n// @param {Object} config Conversion config.\n// @returns {String} Key of the converted view attribute.\n\n\nfunction normalizeViewAttributeKeyValueConfig(config) {\n  if (typeof config.view == 'string') {\n    config.view = {\n      key: config.view\n    };\n  }\n\n  var key = config.view.key;\n  var normalized;\n\n  if (key == 'class' || key == 'style') {\n    var keyName = key == 'class' ? 'classes' : 'styles';\n    normalized = _defineProperty({}, keyName, config.view.value);\n  } else {\n    var value = typeof config.view.value == 'undefined' ? /[\\s\\S]*/ : config.view.value;\n    normalized = {\n      attributes: _defineProperty({}, key, value)\n    };\n  }\n\n  if (config.view.name) {\n    normalized.name = config.view.name;\n  }\n\n  config.view = normalized;\n  return key;\n} // Helper function that normalizes `config.model` in from-model-attribute conversion. `config.model` can be set\n// as a `String`, an `Object` with only `key` property or an `Object` with `key` and `value` properties. Normalized\n// `config.model` is an `Object` with `key` and `value` properties.\n//\n// @param {Object} config Conversion config.\n// @param {String} viewAttributeKeyToCopy Key of the converted view attribute. If it is set, model attribute value\n// will be equal to view attribute value.\n\n\nfunction normalizeModelAttributeConfig(config) {\n  var viewAttributeKeyToCopy = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  var defaultModelValue = viewAttributeKeyToCopy === null ? true : function (viewElement) {\n    return viewElement.getAttribute(viewAttributeKeyToCopy);\n  };\n  var key = _typeof(config.model) != 'object' ? config.model : config.model.key;\n  var value = _typeof(config.model) != 'object' || typeof config.model.value == 'undefined' ? defaultModelValue : config.model.value;\n  config.model = {\n    key: key,\n    value: value\n  };\n} // Helper for to-model-attribute conversion. Takes the model attribute name and conversion configuration and returns\n// a proper converter function.\n//\n// @param {String} modelAttributeKey The key of the model attribute to set on a model node.\n// @param {Object|Array.<Object>} config Conversion configuration. It is possible to provide multiple configurations in an array.\n// @param {Boolean} shallow If set to `true` the attribute will be set only on top-level nodes. Otherwise, it will be set\n// on all elements in the range.\n\n\nfunction prepareToAttributeConverter(config, shallow) {\n  var matcher = new Matcher(config.view);\n  return function (evt, data, conversionApi) {\n    var match = matcher.match(data.viewItem); // If there is no match, this callback should not do anything.\n\n    if (!match) {\n      return;\n    }\n\n    var modelKey = config.model.key;\n    var modelValue = typeof config.model.value == 'function' ? config.model.value(data.viewItem) : config.model.value; // Do not convert if attribute building function returned falsy value.\n\n    if (modelValue === null) {\n      return;\n    }\n\n    if (onlyViewNameIsDefined(config.view, data.viewItem)) {\n      match.match.name = true;\n    } else {\n      // Do not test or consume `name` consumable.\n      delete match.match.name;\n    } // Try to consume appropriate values from consumable values list.\n\n\n    if (!conversionApi.consumable.test(data.viewItem, match.match)) {\n      return;\n    } // Since we are converting to attribute we need an range on which we will set the attribute.\n    // If the range is not created yet, we will create it.\n\n\n    if (!data.modelRange) {\n      // Convert children and set conversion result as a current data.\n      data = Object.assign(data, conversionApi.convertChildren(data.viewItem, data.modelCursor));\n    } // Set attribute on current `output`. `Schema` is checked inside this helper function.\n\n\n    var attributeWasSet = setAttributeOn(data.modelRange, {\n      key: modelKey,\n      value: modelValue\n    }, shallow, conversionApi);\n\n    if (attributeWasSet) {\n      conversionApi.consumable.consume(data.viewItem, match.match);\n    }\n  };\n} // Helper function that checks if element name should be consumed in attribute converters.\n//\n// @param {Object} config Conversion view config.\n// @returns {Boolean}\n\n\nfunction onlyViewNameIsDefined(viewConfig, viewItem) {\n  // https://github.com/ckeditor/ckeditor5-engine/issues/1786\n  var configToTest = typeof viewConfig == 'function' ? viewConfig(viewItem) : viewConfig;\n\n  if (_typeof(configToTest) == 'object' && !getViewElementNameFromConfig(configToTest)) {\n    return false;\n  }\n\n  return !configToTest.classes && !configToTest.attributes && !configToTest.styles;\n} // Helper function for to-model-attribute converter. Sets model attribute on given range. Checks {@link module:engine/model/schema~Schema}\n// to ensure proper model structure.\n//\n// @param {module:engine/model/range~Range} modelRange Model range on which attribute should be set.\n// @param {Object} modelAttribute Model attribute to set.\n// @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion API.\n// @param {Boolean} shallow If set to `true` the attribute will be set only on top-level nodes. Otherwise, it will be set\n// on all elements in the range.\n// @returns {Boolean} `true` if attribute was set on at least one node from given `modelRange`.\n\n\nfunction setAttributeOn(modelRange, modelAttribute, shallow, conversionApi) {\n  var result = false; // Set attribute on each item in range according to Schema.\n\n  for (var _i = 0, _Array$from = Array.from(modelRange.getItems({\n    shallow: shallow\n  })); _i < _Array$from.length; _i++) {\n    var node = _Array$from[_i];\n\n    if (conversionApi.schema.checkAttribute(node, modelAttribute.key)) {\n      conversionApi.writer.setAttribute(modelAttribute.key, modelAttribute.value, node);\n      result = true;\n    }\n  }\n\n  return result;\n} // Helper function for upcasting-to-marker conversion. Takes the config in a format requested by `upcastElementToMarker()`\n// function and converts it to a format that is supported by `_upcastElementToElement()` function.\n//\n// @param {Object} config Conversion configuration.\n\n\nfunction normalizeToMarkerConfig(config) {\n  var oldModel = config.model;\n\n  config.model = function (viewElement, modelWriter) {\n    var markerName = typeof oldModel == 'string' ? oldModel : oldModel(viewElement);\n    return modelWriter.createElement('$marker', {\n      'data-name': markerName\n    });\n  };\n}","import _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/conversion/viewconsumable\n */\nimport { isArray } from 'lodash-es';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Class used for handling consumption of view {@link module:engine/view/element~Element elements},\n * {@link module:engine/view/text~Text text nodes} and {@link module:engine/view/documentfragment~DocumentFragment document fragments}.\n * Element's name and its parts (attributes, classes and styles) can be consumed separately. Consuming an element's name\n * does not consume its attributes, classes and styles.\n * To add items for consumption use {@link module:engine/conversion/viewconsumable~ViewConsumable#add add method}.\n * To test items use {@link module:engine/conversion/viewconsumable~ViewConsumable#test test method}.\n * To consume items use {@link module:engine/conversion/viewconsumable~ViewConsumable#consume consume method}.\n * To revert already consumed items use {@link module:engine/conversion/viewconsumable~ViewConsumable#revert revert method}.\n *\n *\t\tviewConsumable.add( element, { name: true } ); // Adds element's name as ready to be consumed.\n *\t\tviewConsumable.add( textNode ); // Adds text node for consumption.\n *\t\tviewConsumable.add( docFragment ); // Adds document fragment for consumption.\n *\t\tviewConsumable.test( element, { name: true }  ); // Tests if element's name can be consumed.\n *\t\tviewConsumable.test( textNode ); // Tests if text node can be consumed.\n *\t\tviewConsumable.test( docFragment ); // Tests if document fragment can be consumed.\n *\t\tviewConsumable.consume( element, { name: true }  ); // Consume element's name.\n *\t\tviewConsumable.consume( textNode ); // Consume text node.\n *\t\tviewConsumable.consume( docFragment ); // Consume document fragment.\n *\t\tviewConsumable.revert( element, { name: true }  ); // Revert already consumed element's name.\n *\t\tviewConsumable.revert( textNode ); // Revert already consumed text node.\n *\t\tviewConsumable.revert( docFragment ); // Revert already consumed document fragment.\n */\n\nvar ViewConsumable = /*#__PURE__*/function () {\n  /**\n   * Creates new ViewConsumable.\n   */\n  function ViewConsumable() {\n    _classCallCheck(this, ViewConsumable);\n\n    /**\n     * Map of consumable elements. If {@link module:engine/view/element~Element element} is used as a key,\n     * {@link module:engine/conversion/viewconsumable~ViewElementConsumables ViewElementConsumables} instance is stored as value.\n     * For {@link module:engine/view/text~Text text nodes} and\n     * {@link module:engine/view/documentfragment~DocumentFragment document fragments} boolean value is stored as value.\n     *\n     * @protected\n     * @member {Map.<module:engine/conversion/viewconsumable~ViewElementConsumables|Boolean>}\n    */\n    this._consumables = new Map();\n  }\n  /**\n   * Adds {@link module:engine/view/element~Element view element}, {@link module:engine/view/text~Text text node} or\n   * {@link module:engine/view/documentfragment~DocumentFragment document fragment} as ready to be consumed.\n   *\n   *\t\tviewConsumable.add( p, { name: true } ); // Adds element's name to consume.\n   *\t\tviewConsumable.add( p, { attributes: 'name' } ); // Adds element's attribute.\n   *\t\tviewConsumable.add( p, { classes: 'foobar' } ); // Adds element's class.\n   *\t\tviewConsumable.add( p, { styles: 'color' } ); // Adds element's style\n   *\t\tviewConsumable.add( p, { attributes: 'name', styles: 'color' } ); // Adds attribute and style.\n   *\t\tviewConsumable.add( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be provided.\n   *\t\tviewConsumable.add( textNode ); // Adds text node to consume.\n   *\t\tviewConsumable.add( docFragment ); // Adds document fragment to consume.\n   *\n   * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `viewconsumable-invalid-attribute` when `class` or `style`\n   * attribute is provided - it should be handled separately by providing actual style/class.\n   *\n   *\t\tviewConsumable.add( p, { attributes: 'style' } ); // This call will throw an exception.\n   *\t\tviewConsumable.add( p, { styles: 'color' } ); // This is properly handled style.\n   *\n   * @param {module:engine/view/element~Element|module:engine/view/text~Text|module:engine/view/documentfragment~DocumentFragment} element\n   * @param {Object} [consumables] Used only if first parameter is {@link module:engine/view/element~Element view element} instance.\n   * @param {Boolean} consumables.name If set to true element's name will be included.\n   * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names.\n   * @param {String|Array.<String>} consumables.classes Class name or array of class names.\n   * @param {String|Array.<String>} consumables.styles Style name or array of style names.\n   */\n\n\n  _createClass(ViewConsumable, [{\n    key: \"add\",\n    value: function add(element, consumables) {\n      var elementConsumables; // For text nodes and document fragments just mark them as consumable.\n\n      if (element.is('text') || element.is('documentFragment')) {\n        this._consumables.set(element, true);\n\n        return;\n      } // For elements create new ViewElementConsumables or update already existing one.\n\n\n      if (!this._consumables.has(element)) {\n        elementConsumables = new ViewElementConsumables();\n\n        this._consumables.set(element, elementConsumables);\n      } else {\n        elementConsumables = this._consumables.get(element);\n      }\n\n      elementConsumables.add(consumables);\n    }\n    /**\n     * Tests if {@link module:engine/view/element~Element view element}, {@link module:engine/view/text~Text text node} or\n     * {@link module:engine/view/documentfragment~DocumentFragment document fragment} can be consumed.\n     * It returns `true` when all items included in method's call can be consumed. Returns `false` when\n     * first already consumed item is found and `null` when first non-consumable item is found.\n     *\n     *\t\tviewConsumable.test( p, { name: true } ); // Tests element's name.\n     *\t\tviewConsumable.test( p, { attributes: 'name' } ); // Tests attribute.\n     *\t\tviewConsumable.test( p, { classes: 'foobar' } ); // Tests class.\n     *\t\tviewConsumable.test( p, { styles: 'color' } ); // Tests style.\n     *\t\tviewConsumable.test( p, { attributes: 'name', styles: 'color' } ); // Tests attribute and style.\n     *\t\tviewConsumable.test( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be tested.\n     *\t\tviewConsumable.test( textNode ); // Tests text node.\n     *\t\tviewConsumable.test( docFragment ); // Tests document fragment.\n     *\n     * Testing classes and styles as attribute will test if all added classes/styles can be consumed.\n     *\n     *\t\tviewConsumable.test( p, { attributes: 'class' } ); // Tests if all added classes can be consumed.\n     *\t\tviewConsumable.test( p, { attributes: 'style' } ); // Tests if all added styles can be consumed.\n     *\n     * @param {module:engine/view/element~Element|module:engine/view/text~Text|module:engine/view/documentfragment~DocumentFragment} element\n     * @param {Object} [consumables] Used only if first parameter is {@link module:engine/view/element~Element view element} instance.\n     * @param {Boolean} consumables.name If set to true element's name will be included.\n     * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names.\n     * @param {String|Array.<String>} consumables.classes Class name or array of class names.\n     * @param {String|Array.<String>} consumables.styles Style name or array of style names.\n     * @returns {Boolean|null} Returns `true` when all items included in method's call can be consumed. Returns `false`\n     * when first already consumed item is found and `null` when first non-consumable item is found.\n     */\n\n  }, {\n    key: \"test\",\n    value: function test(element, consumables) {\n      var elementConsumables = this._consumables.get(element);\n\n      if (elementConsumables === undefined) {\n        return null;\n      } // For text nodes and document fragments return stored boolean value.\n\n\n      if (element.is('text') || element.is('documentFragment')) {\n        return elementConsumables;\n      } // For elements test consumables object.\n\n\n      return elementConsumables.test(consumables);\n    }\n    /**\n     * Consumes {@link module:engine/view/element~Element view element}, {@link module:engine/view/text~Text text node} or\n     * {@link module:engine/view/documentfragment~DocumentFragment document fragment}.\n     * It returns `true` when all items included in method's call can be consumed, otherwise returns `false`.\n     *\n     *\t\tviewConsumable.consume( p, { name: true } ); // Consumes element's name.\n     *\t\tviewConsumable.consume( p, { attributes: 'name' } ); // Consumes element's attribute.\n     *\t\tviewConsumable.consume( p, { classes: 'foobar' } ); // Consumes element's class.\n     *\t\tviewConsumable.consume( p, { styles: 'color' } ); // Consumes element's style.\n     *\t\tviewConsumable.consume( p, { attributes: 'name', styles: 'color' } ); // Consumes attribute and style.\n     *\t\tviewConsumable.consume( p, { classes: [ 'baz', 'bar' ] } ); // Multiple consumables can be consumed.\n     *\t\tviewConsumable.consume( textNode ); // Consumes text node.\n     *\t\tviewConsumable.consume( docFragment ); // Consumes document fragment.\n     *\n     * Consuming classes and styles as attribute will test if all added classes/styles can be consumed.\n     *\n     *\t\tviewConsumable.consume( p, { attributes: 'class' } ); // Consume only if all added classes can be consumed.\n     *\t\tviewConsumable.consume( p, { attributes: 'style' } ); // Consume only if all added styles can be consumed.\n     *\n     * @param {module:engine/view/element~Element|module:engine/view/text~Text|module:engine/view/documentfragment~DocumentFragment} element\n     * @param {Object} [consumables] Used only if first parameter is {@link module:engine/view/element~Element view element} instance.\n     * @param {Boolean} consumables.name If set to true element's name will be included.\n     * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names.\n     * @param {String|Array.<String>} consumables.classes Class name or array of class names.\n     * @param {String|Array.<String>} consumables.styles Style name or array of style names.\n     * @returns {Boolean} Returns `true` when all items included in method's call can be consumed,\n     * otherwise returns `false`.\n     */\n\n  }, {\n    key: \"consume\",\n    value: function consume(element, consumables) {\n      if (this.test(element, consumables)) {\n        if (element.is('text') || element.is('documentFragment')) {\n          // For text nodes and document fragments set value to false.\n          this._consumables.set(element, false);\n        } else {\n          // For elements - consume consumables object.\n          this._consumables.get(element).consume(consumables);\n        }\n\n        return true;\n      }\n\n      return false;\n    }\n    /**\n     * Reverts {@link module:engine/view/element~Element view element}, {@link module:engine/view/text~Text text node} or\n     * {@link module:engine/view/documentfragment~DocumentFragment document fragment} so they can be consumed once again.\n     * Method does not revert items that were never previously added for consumption, even if they are included in\n     * method's call.\n     *\n     *\t\tviewConsumable.revert( p, { name: true } ); // Reverts element's name.\n     *\t\tviewConsumable.revert( p, { attributes: 'name' } ); // Reverts element's attribute.\n     *\t\tviewConsumable.revert( p, { classes: 'foobar' } ); // Reverts element's class.\n     *\t\tviewConsumable.revert( p, { styles: 'color' } ); // Reverts element's style.\n     *\t\tviewConsumable.revert( p, { attributes: 'name', styles: 'color' } ); // Reverts attribute and style.\n     *\t\tviewConsumable.revert( p, { classes: [ 'baz', 'bar' ] } ); // Multiple names can be reverted.\n     *\t\tviewConsumable.revert( textNode ); // Reverts text node.\n     *\t\tviewConsumable.revert( docFragment ); // Reverts document fragment.\n     *\n     * Reverting classes and styles as attribute will revert all classes/styles that were previously added for\n     * consumption.\n     *\n     *\t\tviewConsumable.revert( p, { attributes: 'class' } ); // Reverts all classes added for consumption.\n     *\t\tviewConsumable.revert( p, { attributes: 'style' } ); // Reverts all styles added for consumption.\n     *\n     * @param {module:engine/view/element~Element|module:engine/view/text~Text|module:engine/view/documentfragment~DocumentFragment} element\n     * @param {Object} [consumables] Used only if first parameter is {@link module:engine/view/element~Element view element} instance.\n     * @param {Boolean} consumables.name If set to true element's name will be included.\n     * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names.\n     * @param {String|Array.<String>} consumables.classes Class name or array of class names.\n     * @param {String|Array.<String>} consumables.styles Style name or array of style names.\n     */\n\n  }, {\n    key: \"revert\",\n    value: function revert(element, consumables) {\n      var elementConsumables = this._consumables.get(element);\n\n      if (elementConsumables !== undefined) {\n        if (element.is('text') || element.is('documentFragment')) {\n          // For text nodes and document fragments - set consumable to true.\n          this._consumables.set(element, true);\n        } else {\n          // For elements - revert items from consumables object.\n          elementConsumables.revert(consumables);\n        }\n      }\n    }\n    /**\n     * Creates consumable object from {@link module:engine/view/element~Element view element}. Consumable object will include\n     * element's name and all its attributes, classes and styles.\n     *\n     * @static\n     * @param {module:engine/view/element~Element} element\n     * @returns {Object} consumables\n     */\n\n  }], [{\n    key: \"consumablesFromElement\",\n    value: function consumablesFromElement(element) {\n      var consumables = {\n        name: true,\n        attributes: [],\n        classes: [],\n        styles: []\n      };\n      var attributes = element.getAttributeKeys();\n\n      var _iterator = _createForOfIteratorHelper(attributes),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var attribute = _step.value;\n\n          // Skip classes and styles - will be added separately.\n          if (attribute == 'style' || attribute == 'class') {\n            continue;\n          }\n\n          consumables.attributes.push(attribute);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      var classes = element.getClassNames();\n\n      var _iterator2 = _createForOfIteratorHelper(classes),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var className = _step2.value;\n          consumables.classes.push(className);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var styles = element.getStyleNames();\n\n      var _iterator3 = _createForOfIteratorHelper(styles),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var style = _step3.value;\n          consumables.styles.push(style);\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      return consumables;\n    }\n    /**\n     * Creates {@link module:engine/conversion/viewconsumable~ViewConsumable ViewConsumable} instance from\n     * {@link module:engine/view/node~Node node} or {@link module:engine/view/documentfragment~DocumentFragment document fragment}.\n     * Instance will contain all elements, child nodes, attributes, styles and classes added for consumption.\n     *\n     * @static\n     * @param {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment} from View node or document fragment\n     * from which `ViewConsumable` will be created.\n     * @param {module:engine/conversion/viewconsumable~ViewConsumable} [instance] If provided, given `ViewConsumable` instance will be used\n     * to add all consumables. It will be returned instead of a new instance.\n     */\n\n  }, {\n    key: \"createFrom\",\n    value: function createFrom(from, instance) {\n      if (!instance) {\n        instance = new ViewConsumable();\n      }\n\n      if (from.is('text')) {\n        instance.add(from);\n        return instance;\n      } // Add `from` itself, if it is an element.\n\n\n      if (from.is('element')) {\n        instance.add(from, ViewConsumable.consumablesFromElement(from));\n      }\n\n      if (from.is('documentFragment')) {\n        instance.add(from);\n      }\n\n      var _iterator4 = _createForOfIteratorHelper(from.getChildren()),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var child = _step4.value;\n          instance = ViewConsumable.createFrom(child, instance);\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      return instance;\n    }\n  }]);\n\n  return ViewConsumable;\n}();\n/**\n * This is a private helper-class for {@link module:engine/conversion/viewconsumable~ViewConsumable}.\n * It represents and manipulates consumable parts of a single {@link module:engine/view/element~Element}.\n *\n * @private\n */\n\n\nexport { ViewConsumable as default };\n\nvar ViewElementConsumables = /*#__PURE__*/function () {\n  /**\n   * Creates ViewElementConsumables instance.\n   */\n  function ViewElementConsumables() {\n    _classCallCheck(this, ViewElementConsumables);\n\n    /**\n     * Flag indicating if name of the element can be consumed.\n     *\n     * @private\n     * @member {Boolean}\n     */\n    this._canConsumeName = null;\n    /**\n     * Contains maps of element's consumables: attributes, classes and styles.\n     *\n     * @private\n     * @member {Object}\n     */\n\n    this._consumables = {\n      attributes: new Map(),\n      styles: new Map(),\n      classes: new Map()\n    };\n  }\n  /**\n   * Adds consumable parts of the {@link module:engine/view/element~Element view element}.\n   * Element's name itself can be marked to be consumed (when element's name is consumed its attributes, classes and\n   * styles still could be consumed):\n   *\n   *\t\tconsumables.add( { name: true } );\n   *\n   * Attributes classes and styles:\n   *\n   *\t\tconsumables.add( { attributes: 'title', classes: 'foo', styles: 'color' } );\n   *\t\tconsumables.add( { attributes: [ 'title', 'name' ], classes: [ 'foo', 'bar' ] );\n   *\n   * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `viewconsumable-invalid-attribute` when `class` or `style`\n   * attribute is provided - it should be handled separately by providing `style` and `class` in consumables object.\n   *\n   * @param {Object} consumables Object describing which parts of the element can be consumed.\n   * @param {Boolean} consumables.name If set to `true` element's name will be added as consumable.\n   * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names to add as consumable.\n   * @param {String|Array.<String>} consumables.classes Class name or array of class names to add as consumable.\n   * @param {String|Array.<String>} consumables.styles Style name or array of style names to add as consumable.\n   */\n\n\n  _createClass(ViewElementConsumables, [{\n    key: \"add\",\n    value: function add(consumables) {\n      if (consumables.name) {\n        this._canConsumeName = true;\n      }\n\n      for (var type in this._consumables) {\n        if (type in consumables) {\n          this._add(type, consumables[type]);\n        }\n      }\n    }\n    /**\n     * Tests if parts of the {@link module:engine/view/node~Node view node} can be consumed.\n     *\n     * Element's name can be tested:\n     *\n     *\t\tconsumables.test( { name: true } );\n     *\n     * Attributes classes and styles:\n     *\n     *\t\tconsumables.test( { attributes: 'title', classes: 'foo', styles: 'color' } );\n     *\t\tconsumables.test( { attributes: [ 'title', 'name' ], classes: [ 'foo', 'bar' ] );\n     *\n     * @param {Object} consumables Object describing which parts of the element should be tested.\n     * @param {Boolean} consumables.name If set to `true` element's name will be tested.\n     * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names to test.\n     * @param {String|Array.<String>} consumables.classes Class name or array of class names to test.\n     * @param {String|Array.<String>} consumables.styles Style name or array of style names to test.\n     * @returns {Boolean|null} `true` when all tested items can be consumed, `null` when even one of the items\n     * was never marked for consumption and `false` when even one of the items was already consumed.\n     */\n\n  }, {\n    key: \"test\",\n    value: function test(consumables) {\n      // Check if name can be consumed.\n      if (consumables.name && !this._canConsumeName) {\n        return this._canConsumeName;\n      }\n\n      for (var type in this._consumables) {\n        if (type in consumables) {\n          var value = this._test(type, consumables[type]);\n\n          if (value !== true) {\n            return value;\n          }\n        }\n      } // Return true only if all can be consumed.\n\n\n      return true;\n    }\n    /**\n     * Consumes parts of {@link module:engine/view/element~Element view element}. This function does not check if consumable item\n     * is already consumed - it consumes all consumable items provided.\n     * Element's name can be consumed:\n     *\n     *\t\tconsumables.consume( { name: true } );\n     *\n     * Attributes classes and styles:\n     *\n     *\t\tconsumables.consume( { attributes: 'title', classes: 'foo', styles: 'color' } );\n     *\t\tconsumables.consume( { attributes: [ 'title', 'name' ], classes: [ 'foo', 'bar' ] );\n     *\n     * @param {Object} consumables Object describing which parts of the element should be consumed.\n     * @param {Boolean} consumables.name If set to `true` element's name will be consumed.\n     * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names to consume.\n     * @param {String|Array.<String>} consumables.classes Class name or array of class names to consume.\n     * @param {String|Array.<String>} consumables.styles Style name or array of style names to consume.\n     */\n\n  }, {\n    key: \"consume\",\n    value: function consume(consumables) {\n      if (consumables.name) {\n        this._canConsumeName = false;\n      }\n\n      for (var type in this._consumables) {\n        if (type in consumables) {\n          this._consume(type, consumables[type]);\n        }\n      }\n    }\n    /**\n     * Revert already consumed parts of {@link module:engine/view/element~Element view Element}, so they can be consumed once again.\n     * Element's name can be reverted:\n     *\n     *\t\tconsumables.revert( { name: true } );\n     *\n     * Attributes classes and styles:\n     *\n     *\t\tconsumables.revert( { attributes: 'title', classes: 'foo', styles: 'color' } );\n     *\t\tconsumables.revert( { attributes: [ 'title', 'name' ], classes: [ 'foo', 'bar' ] );\n     *\n     * @param {Object} consumables Object describing which parts of the element should be reverted.\n     * @param {Boolean} consumables.name If set to `true` element's name will be reverted.\n     * @param {String|Array.<String>} consumables.attributes Attribute name or array of attribute names to revert.\n     * @param {String|Array.<String>} consumables.classes Class name or array of class names to revert.\n     * @param {String|Array.<String>} consumables.styles Style name or array of style names to revert.\n     */\n\n  }, {\n    key: \"revert\",\n    value: function revert(consumables) {\n      if (consumables.name) {\n        this._canConsumeName = true;\n      }\n\n      for (var type in this._consumables) {\n        if (type in consumables) {\n          this._revert(type, consumables[type]);\n        }\n      }\n    }\n    /**\n     * Helper method that adds consumables of a given type: attribute, class or style.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `viewconsumable-invalid-attribute` when `class` or `style`\n     * type is provided - it should be handled separately by providing actual style/class type.\n     *\n     * @private\n     * @param {String} type Type of the consumable item: `attributes`, `classes` or `styles`.\n     * @param {String|Array.<String>} item Consumable item or array of items.\n     */\n\n  }, {\n    key: \"_add\",\n    value: function _add(type, item) {\n      var items = isArray(item) ? item : [item];\n      var consumables = this._consumables[type];\n\n      var _iterator5 = _createForOfIteratorHelper(items),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var name = _step5.value;\n\n          if (type === 'attributes' && (name === 'class' || name === 'style')) {\n            /**\n             * Class and style attributes should be handled separately in\n             * {@link module:engine/conversion/viewconsumable~ViewConsumable#add `ViewConsumable#add()`}.\n             *\n             * What you have done is trying to use:\n             *\n             *\t\tconsumables.add( { attributes: [ 'class', 'style' ] } );\n             *\n             * While each class and style should be registered separately:\n             *\n             *\t\tconsumables.add( { classes: 'some-class', styles: 'font-weight' } );\n             *\n             * @error viewconsumable-invalid-attribute\n             */\n            throw new CKEditorError('viewconsumable-invalid-attribute: Classes and styles should be handled separately.', this);\n          }\n\n          consumables.set(name, true);\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n    }\n    /**\n     * Helper method that tests consumables of a given type: attribute, class or style.\n     *\n     * @private\n     * @param {String} type Type of the consumable item: `attributes`, `classes` or `styles`.\n     * @param {String|Array.<String>} item Consumable item or array of items.\n     * @returns {Boolean|null} Returns `true` if all items can be consumed, `null` when one of the items cannot be\n     * consumed and `false` when one of the items is already consumed.\n     */\n\n  }, {\n    key: \"_test\",\n    value: function _test(type, item) {\n      var items = isArray(item) ? item : [item];\n      var consumables = this._consumables[type];\n\n      var _iterator6 = _createForOfIteratorHelper(items),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var name = _step6.value;\n\n          if (type === 'attributes' && (name === 'class' || name === 'style')) {\n            var consumableName = name == 'class' ? 'classes' : 'styles'; // Check all classes/styles if class/style attribute is tested.\n\n            var value = this._test(consumableName, _toConsumableArray(this._consumables[consumableName].keys()));\n\n            if (value !== true) {\n              return value;\n            }\n          } else {\n            var _value = consumables.get(name); // Return null if attribute is not found.\n\n\n            if (_value === undefined) {\n              return null;\n            }\n\n            if (!_value) {\n              return false;\n            }\n          }\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      return true;\n    }\n    /**\n     * Helper method that consumes items of a given type: attribute, class or style.\n     *\n     * @private\n     * @param {String} type Type of the consumable item: `attributes`, `classes` or `styles`.\n     * @param {String|Array.<String>} item Consumable item or array of items.\n     */\n\n  }, {\n    key: \"_consume\",\n    value: function _consume(type, item) {\n      var items = isArray(item) ? item : [item];\n      var consumables = this._consumables[type];\n\n      var _iterator7 = _createForOfIteratorHelper(items),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var name = _step7.value;\n\n          if (type === 'attributes' && (name === 'class' || name === 'style')) {\n            var consumableName = name == 'class' ? 'classes' : 'styles'; // If class or style is provided for consumption - consume them all.\n\n            this._consume(consumableName, _toConsumableArray(this._consumables[consumableName].keys()));\n          } else {\n            consumables.set(name, false);\n          }\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n    }\n    /**\n     * Helper method that reverts items of a given type: attribute, class or style.\n     *\n     * @private\n     * @param {String} type Type of the consumable item: `attributes`, `classes` or , `styles`.\n     * @param {String|Array.<String>} item Consumable item or array of items.\n     */\n\n  }, {\n    key: \"_revert\",\n    value: function _revert(type, item) {\n      var items = isArray(item) ? item : [item];\n      var consumables = this._consumables[type];\n\n      var _iterator8 = _createForOfIteratorHelper(items),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var name = _step8.value;\n\n          if (type === 'attributes' && (name === 'class' || name === 'style')) {\n            var consumableName = name == 'class' ? 'classes' : 'styles'; // If class or style is provided for reverting - revert them all.\n\n            this._revert(consumableName, _toConsumableArray(this._consumables[consumableName].keys()));\n          } else {\n            var value = consumables.get(name);\n\n            if (value === false) {\n              consumables.set(name, true);\n            }\n          }\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n    }\n  }]);\n\n  return ViewElementConsumables;\n}();","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/dataprocessor/basichtmlwriter\n */\n\n/* globals document */\n\n/**\n * Basic HTML writer. It uses the native `innerHTML` property for basic conversion\n * from a document fragment to an HTML string.\n *\n * @implements module:engine/dataprocessor/htmlwriter~HtmlWriter\n */\nvar BasicHtmlWriter = /*#__PURE__*/function () {\n  function BasicHtmlWriter() {\n    _classCallCheck(this, BasicHtmlWriter);\n  }\n\n  _createClass(BasicHtmlWriter, [{\n    key: \"getHtml\",\n\n    /**\n     * Returns an HTML string created from the document fragment.\n     *\n     * @param {DocumentFragment} fragment\n     * @returns {String}\n     */\n    value: function getHtml(fragment) {\n      var doc = document.implementation.createHTMLDocument('');\n      var container = doc.createElement('div');\n      container.appendChild(fragment);\n      return container.innerHTML;\n    }\n  }]);\n\n  return BasicHtmlWriter;\n}();\n\nexport { BasicHtmlWriter as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/dataprocessor/htmldataprocessor\n */\n\n/* globals document, DOMParser */\nimport BasicHtmlWriter from \"./basichtmlwriter\";\nimport DomConverter from \"../view/domconverter\";\n/**\n * The HTML data processor class.\n * This data processor implementation uses HTML as input and output data.\n *\n * @implements module:engine/dataprocessor/dataprocessor~DataProcessor\n */\n\nvar HtmlDataProcessor = /*#__PURE__*/function () {\n  /**\n   * Creates a new instance of the HTML data processor class.\n   */\n  function HtmlDataProcessor() {\n    _classCallCheck(this, HtmlDataProcessor);\n\n    /**\n     * A DOM parser instance used to parse an HTML string to an HTML document.\n     *\n     * @private\n     * @member {DOMParser}\n     */\n    this._domParser = new DOMParser();\n    /**\n     * A DOM converter used to convert DOM elements to view elements.\n     *\n     * @private\n     * @member {module:engine/view/domconverter~DomConverter}\n     */\n\n    this._domConverter = new DomConverter({\n      blockFillerMode: 'nbsp'\n    });\n    /**\n     * A basic HTML writer instance used to convert DOM elements to an HTML string.\n     *\n     * @private\n     * @member {module:engine/dataprocessor/basichtmlwriter~BasicHtmlWriter}\n     */\n\n    this._htmlWriter = new BasicHtmlWriter();\n  }\n  /**\n   * Converts a provided {@link module:engine/view/documentfragment~DocumentFragment document fragment}\n   * to data format &mdash; in this case to an HTML string.\n   *\n   * @param {module:engine/view/documentfragment~DocumentFragment} viewFragment\n   * @returns {String} HTML string.\n   */\n\n\n  _createClass(HtmlDataProcessor, [{\n    key: \"toData\",\n    value: function toData(viewFragment) {\n      // Convert view DocumentFragment to DOM DocumentFragment.\n      var domFragment = this._domConverter.viewToDom(viewFragment, document); // Convert DOM DocumentFragment to HTML output.\n\n\n      return this._htmlWriter.getHtml(domFragment);\n    }\n    /**\n     * Converts the provided HTML string to a view tree.\n     *\n     * @param {String} data An HTML string.\n     * @returns {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment|null} A converted view element.\n     */\n\n  }, {\n    key: \"toView\",\n    value: function toView(data) {\n      // Convert input HTML data to DOM DocumentFragment.\n      var domFragment = this._toDom(data); // Convert DOM DocumentFragment to view DocumentFragment.\n\n\n      return this._domConverter.domToView(domFragment);\n    }\n    /**\n     * Converts an HTML string to its DOM representation. Returns a document fragment containing nodes parsed from\n     * the provided data.\n     *\n     * @private\n     * @param {String} data\n     * @returns {DocumentFragment}\n     */\n\n  }, {\n    key: \"_toDom\",\n    value: function _toDom(data) {\n      var document = this._domParser.parseFromString(data, 'text/html');\n\n      var fragment = document.createDocumentFragment();\n      var nodes = document.body.childNodes;\n\n      while (nodes.length > 0) {\n        fragment.appendChild(nodes[0]);\n      }\n\n      return fragment;\n    }\n  }]);\n\n  return HtmlDataProcessor;\n}();\n\nexport { HtmlDataProcessor as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/batch\n */\n\n/**\n * A batch instance groups model changes ({@link module:engine/model/operation/operation~Operation operations}). All operations\n * grouped in a single batch can be reverted together, so you can also think about a batch as of a single undo step. If you want\n * to extend a given undo step, you can add more changes to the batch using {@link module:engine/model/model~Model#enqueueChange}:\n *\n *\t\tmodel.enqueueChange( batch, writer => {\n *\t\t\twriter.insertText( 'foo', paragraph, 'end' );\n *\t\t} );\n *\n * @see module:engine/model/model~Model#enqueueChange\n * @see module:engine/model/model~Model#change\n */\nvar Batch = /*#__PURE__*/function () {\n  /**\n   * Creates a batch instance.\n   *\n   * @see module:engine/model/model~Model#enqueueChange\n   * @see module:engine/model/model~Model#change\n   * @param {'transparent'|'default'} [type='default'] The type of the batch.\n   */\n  function Batch() {\n    var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'default';\n\n    _classCallCheck(this, Batch);\n\n    /**\n     * An array of operations that compose this batch.\n     *\n     * @readonly\n     * @type {Array.<module:engine/model/operation/operation~Operation>}\n     */\n    this.operations = [];\n    /**\n     * The type of the batch.\n     *\n     * It can be one of the following values:\n     * * `'default'` &ndash; All \"normal\" batches. This is the most commonly used type.\n     * * `'transparent'` &ndash; A batch that should be ignored by other features, i.e. an initial batch or collaborative editing\n     * changes.\n     *\n     * @readonly\n     * @type {'transparent'|'default'}\n     */\n\n    this.type = type;\n  }\n  /**\n   * Returns the base version of this batch, which is equal to the base version of the first operation in the batch.\n   * If there are no operations in the batch or neither operation has the base version set, it returns `null`.\n   *\n   * @readonly\n   * @type {Number|null}\n   */\n\n\n  _createClass(Batch, [{\n    key: \"addOperation\",\n\n    /**\n     * Adds an operation to the batch instance.\n     *\n     * @param {module:engine/model/operation/operation~Operation} operation An operation to add.\n     * @returns {module:engine/model/operation/operation~Operation} The added operation.\n     */\n    value: function addOperation(operation) {\n      operation.batch = this;\n      this.operations.push(operation);\n      return operation;\n    }\n  }, {\n    key: \"baseVersion\",\n    get: function get() {\n      var _iterator = _createForOfIteratorHelper(this.operations),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var op = _step.value;\n\n          if (op.baseVersion !== null) {\n            return op.baseVersion;\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return null;\n    }\n  }]);\n\n  return Batch;\n}();\n\nexport { Batch as default };","import \"core-js/modules/es6.string.repeat\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.array.from\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/differ\n */\nimport Position from \"./position\";\nimport Range from \"./range\";\n/**\n * Calculates the difference between two model states.\n *\n * Receives operations that are to be applied on the model document. Marks parts of the model document tree which\n * are changed and saves the state of these elements before the change. Then, it compares saved elements with the\n * changed elements, after all changes are applied on the model document. Calculates the diff between saved\n * elements and new ones and returns a change set.\n */\n\nvar Differ = /*#__PURE__*/function () {\n  /**\n   * Creates a `Differ` instance.\n   *\n   * @param {module:engine/model/markercollection~MarkerCollection} markerCollection Model's marker collection.\n   */\n  function Differ(markerCollection) {\n    _classCallCheck(this, Differ);\n\n    /**\n     * Reference to the model's marker collection.\n     *\n     * @private\n     * @type {module:engine/model/markercollection~MarkerCollection}\n     */\n    this._markerCollection = markerCollection;\n    /**\n     * A map that stores changes that happened in a given element.\n     *\n     * The keys of the map are references to the model elements.\n     * The values of the map are arrays with changes that were done on this element.\n     *\n     * @private\n     * @type {Map}\n     */\n\n    this._changesInElement = new Map();\n    /**\n     * A map that stores \"element's children snapshots\". A snapshot is representing children of a given element before\n     * the first change was applied on that element. Snapshot items are objects with two properties: `name`,\n     * containing the element name (or `'$text'` for a text node) and `attributes` which is a map of the node's attributes.\n     *\n     * @private\n     * @type {Map}\n     */\n\n    this._elementSnapshots = new Map();\n    /**\n     * A map that stores all changed markers.\n     *\n     * The keys of the map are marker names.\n     * The values of the map are objects with the `oldRange` and `newRange` properties. They store the marker range\n     * state before and after the change.\n     *\n     * @private\n     * @type {Map}\n     */\n\n    this._changedMarkers = new Map();\n    /**\n     * Stores the number of changes that were processed. Used to order the changes chronologically. It is important\n     * when changes are sorted.\n     *\n     * @private\n     * @type {Number}\n     */\n\n    this._changeCount = 0;\n    /**\n     * For efficiency purposes, `Differ` stores the change set returned by the differ after {@link #getChanges} call.\n     * Cache is reset each time a new operation is buffered. If the cache has not been reset, {@link #getChanges} will\n     * return the cached value instead of calculating it again.\n     *\n     * This property stores those changes that did not take place in graveyard root.\n     *\n     * @private\n     * @type {Array.<Object>|null}\n     */\n\n    this._cachedChanges = null;\n    /**\n     * For efficiency purposes, `Differ` stores the change set returned by the differ after the {@link #getChanges} call.\n     * The cache is reset each time a new operation is buffered. If the cache has not been reset, {@link #getChanges} will\n     * return the cached value instead of calculating it again.\n     *\n     * This property stores all changes evaluated by `Differ`, including those that took place in the graveyard.\n     *\n     * @private\n     * @type {Array.<Object>|null}\n     */\n\n    this._cachedChangesWithGraveyard = null;\n  }\n  /**\n   * Informs whether there are any changes buffered in `Differ`.\n   *\n   * @readonly\n   * @type {Boolean}\n   */\n\n\n  _createClass(Differ, [{\n    key: \"refreshItem\",\n\n    /**\n     * Marks given `item` in differ to be \"refreshed\". It means that the item will be marked as removed and inserted in the differ changes\n     * set, so it will be effectively re-converted when differ changes will be handled by a dispatcher.\n     *\n     * @param {module:engine/model/item~Item} item Item to refresh.\n     */\n    value: function refreshItem(item) {\n      if (this._isInInsertedElement(item.parent)) {\n        return;\n      }\n\n      this._markRemove(item.parent, item.startOffset, item.offsetSize);\n\n      this._markInsert(item.parent, item.startOffset, item.offsetSize);\n\n      var range = Range._createOn(item);\n\n      var _iterator = _createForOfIteratorHelper(this._markerCollection.getMarkersIntersectingRange(range)),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var marker = _step.value;\n          var markerRange = marker.getRange();\n          this.bufferMarkerChange(marker.name, markerRange, markerRange, marker.affectsData);\n        } // Clear cache after each buffered operation as it is no longer valid.\n\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      this._cachedChanges = null;\n    }\n    /**\n     * Buffers the given operation. An operation has to be buffered before it is executed.\n     *\n     * Operation type is checked and it is checked which nodes it will affect. These nodes are then stored in `Differ`\n     * in the state before the operation is executed.\n     *\n     * @param {module:engine/model/operation/operation~Operation} operation An operation to buffer.\n     */\n\n  }, {\n    key: \"bufferOperation\",\n    value: function bufferOperation(operation) {\n      // Below we take an operation, check its type, then use its parameters in marking (private) methods.\n      // The general rule is to not mark elements inside inserted element. All inserted elements are re-rendered.\n      // Marking changes in them would cause a \"double\" changing then.\n      //\n      switch (operation.type) {\n        case 'insert':\n          {\n            if (this._isInInsertedElement(operation.position.parent)) {\n              return;\n            }\n\n            this._markInsert(operation.position.parent, operation.position.offset, operation.nodes.maxOffset);\n\n            break;\n          }\n\n        case 'addAttribute':\n        case 'removeAttribute':\n        case 'changeAttribute':\n          {\n            var _iterator2 = _createForOfIteratorHelper(operation.range.getItems({\n              shallow: true\n            })),\n                _step2;\n\n            try {\n              for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                var item = _step2.value;\n\n                if (this._isInInsertedElement(item.parent)) {\n                  continue;\n                }\n\n                this._markAttribute(item);\n              }\n            } catch (err) {\n              _iterator2.e(err);\n            } finally {\n              _iterator2.f();\n            }\n\n            break;\n          }\n\n        case 'remove':\n        case 'move':\n        case 'reinsert':\n          {\n            // When range is moved to the same position then not mark it as a change.\n            // See: https://github.com/ckeditor/ckeditor5-engine/issues/1664.\n            if (operation.sourcePosition.isEqual(operation.targetPosition) || operation.sourcePosition.getShiftedBy(operation.howMany).isEqual(operation.targetPosition)) {\n              return;\n            }\n\n            var sourceParentInserted = this._isInInsertedElement(operation.sourcePosition.parent);\n\n            var targetParentInserted = this._isInInsertedElement(operation.targetPosition.parent);\n\n            if (!sourceParentInserted) {\n              this._markRemove(operation.sourcePosition.parent, operation.sourcePosition.offset, operation.howMany);\n            }\n\n            if (!targetParentInserted) {\n              this._markInsert(operation.targetPosition.parent, operation.getMovedRangeStart().offset, operation.howMany);\n            }\n\n            break;\n          }\n\n        case 'rename':\n          {\n            if (this._isInInsertedElement(operation.position.parent)) {\n              return;\n            }\n\n            this._markRemove(operation.position.parent, operation.position.offset, 1);\n\n            this._markInsert(operation.position.parent, operation.position.offset, 1);\n\n            var range = Range._createFromPositionAndShift(operation.position, 1);\n\n            var _iterator3 = _createForOfIteratorHelper(this._markerCollection.getMarkersIntersectingRange(range)),\n                _step3;\n\n            try {\n              for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n                var marker = _step3.value;\n                var markerRange = marker.getRange();\n                this.bufferMarkerChange(marker.name, markerRange, markerRange, marker.affectsData);\n              }\n            } catch (err) {\n              _iterator3.e(err);\n            } finally {\n              _iterator3.f();\n            }\n\n            break;\n          }\n\n        case 'split':\n          {\n            var splitElement = operation.splitPosition.parent; // Mark that children of the split element were removed.\n\n            if (!this._isInInsertedElement(splitElement)) {\n              this._markRemove(splitElement, operation.splitPosition.offset, operation.howMany);\n            } // Mark that the new element (split copy) was inserted.\n\n\n            if (!this._isInInsertedElement(operation.insertionPosition.parent)) {\n              this._markInsert(operation.insertionPosition.parent, operation.insertionPosition.offset, 1);\n            } // If the split took the element from the graveyard, mark that the element from the graveyard was removed.\n\n\n            if (operation.graveyardPosition) {\n              this._markRemove(operation.graveyardPosition.parent, operation.graveyardPosition.offset, 1);\n            }\n\n            break;\n          }\n\n        case 'merge':\n          {\n            // Mark that the merged element was removed.\n            var mergedElement = operation.sourcePosition.parent;\n\n            if (!this._isInInsertedElement(mergedElement.parent)) {\n              this._markRemove(mergedElement.parent, mergedElement.startOffset, 1);\n            } // Mark that the merged element was inserted into graveyard.\n\n\n            var graveyardParent = operation.graveyardPosition.parent;\n\n            this._markInsert(graveyardParent, operation.graveyardPosition.offset, 1); // Mark that children of merged element were inserted at new parent.\n\n\n            var mergedIntoElement = operation.targetPosition.parent;\n\n            if (!this._isInInsertedElement(mergedIntoElement)) {\n              this._markInsert(mergedIntoElement, operation.targetPosition.offset, mergedElement.maxOffset);\n            }\n\n            break;\n          }\n      } // Clear cache after each buffered operation as it is no longer valid.\n\n\n      this._cachedChanges = null;\n    }\n    /**\n     * Buffers a marker change.\n     *\n     * @param {String} markerName The name of the marker that changed.\n     * @param {module:engine/model/range~Range|null} oldRange Marker range before the change or `null` if the marker has just\n     * been created.\n     * @param {module:engine/model/range~Range|null} newRange Marker range after the change or `null` if the marker was removed.\n     * @param {Boolean} affectsData Flag indicating whether marker affects the editor data.\n     */\n\n  }, {\n    key: \"bufferMarkerChange\",\n    value: function bufferMarkerChange(markerName, oldRange, newRange, affectsData) {\n      var buffered = this._changedMarkers.get(markerName);\n\n      if (!buffered) {\n        this._changedMarkers.set(markerName, {\n          oldRange: oldRange,\n          newRange: newRange,\n          affectsData: affectsData\n        });\n      } else {\n        buffered.newRange = newRange;\n        buffered.affectsData = affectsData;\n\n        if (buffered.oldRange == null && buffered.newRange == null) {\n          // The marker is going to be removed (`newRange == null`) but it did not exist before the first buffered change\n          // (`buffered.oldRange == null`). In this case, do not keep the marker in buffer at all.\n          this._changedMarkers.delete(markerName);\n        }\n      }\n    }\n    /**\n     * Returns all markers that should be removed as a result of buffered changes.\n     *\n     * @returns {Array.<Object>} Markers to remove. Each array item is an object containing the `name` and `range` properties.\n     */\n\n  }, {\n    key: \"getMarkersToRemove\",\n    value: function getMarkersToRemove() {\n      var result = [];\n\n      var _iterator4 = _createForOfIteratorHelper(this._changedMarkers),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var _step4$value = _slicedToArray(_step4.value, 2),\n              name = _step4$value[0],\n              change = _step4$value[1];\n\n          if (change.oldRange != null) {\n            result.push({\n              name: name,\n              range: change.oldRange\n            });\n          }\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      return result;\n    }\n    /**\n     * Returns all markers which should be added as a result of buffered changes.\n     *\n     * @returns {Array.<Object>} Markers to add. Each array item is an object containing the `name` and `range` properties.\n     */\n\n  }, {\n    key: \"getMarkersToAdd\",\n    value: function getMarkersToAdd() {\n      var result = [];\n\n      var _iterator5 = _createForOfIteratorHelper(this._changedMarkers),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var _step5$value = _slicedToArray(_step5.value, 2),\n              name = _step5$value[0],\n              change = _step5$value[1];\n\n          if (change.newRange != null) {\n            result.push({\n              name: name,\n              range: change.newRange\n            });\n          }\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      return result;\n    }\n    /**\n     * Returns all markers which changed.\n     *\n     * @returns {Array.<Object>}\n     */\n\n  }, {\n    key: \"getChangedMarkers\",\n    value: function getChangedMarkers() {\n      return Array.from(this._changedMarkers).map(function (item) {\n        return {\n          name: item[0],\n          data: {\n            oldRange: item[1].oldRange,\n            newRange: item[1].newRange\n          }\n        };\n      });\n    }\n    /**\n     * Checks whether some of the buffered changes affect the editor data.\n     *\n     * Types of changes which affect the editor data:\n     *\n     * * model structure changes,\n     * * attribute changes,\n     * * changes of markers which were defined as `affectingData`.\n     *\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"hasDataChanges\",\n    value: function hasDataChanges() {\n      var _iterator6 = _createForOfIteratorHelper(this._changedMarkers),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var _step6$value = _slicedToArray(_step6.value, 2),\n              change = _step6$value[1];\n\n          if (change.affectsData) {\n            return true;\n          }\n        } // If markers do not affect the data, check whether there are some changes in elements.\n\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      return this._changesInElement.size > 0;\n    }\n    /**\n     * Calculates the diff between the old model tree state (the state before the first buffered operations since the last {@link #reset}\n     * call) and the new model tree state (actual one). It should be called after all buffered operations are executed.\n     *\n     * The diff set is returned as an array of diff items, each describing a change done on the model. The items are sorted by\n     * the position on which the change happened. If a position {@link module:engine/model/position~Position#isBefore is before}\n     * another one, it will be on an earlier index in the diff set.\n     *\n     * Because calculating the diff is a costly operation, the result is cached. If no new operation was buffered since the\n     * previous {@link #getChanges} call, the next call will return the cached value.\n     *\n     * @param {Object} options Additional options.\n     * @param {Boolean} [options.includeChangesInGraveyard=false] If set to `true`, also changes that happened\n     * in the graveyard root will be returned. By default, changes in the graveyard root are not returned.\n     * @returns {Array.<Object>} Diff between the old and the new model tree state.\n     */\n\n  }, {\n    key: \"getChanges\",\n    value: function getChanges() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n        includeChangesInGraveyard: false\n      };\n\n      // If there are cached changes, just return them instead of calculating changes again.\n      if (this._cachedChanges) {\n        if (options.includeChangesInGraveyard) {\n          return this._cachedChangesWithGraveyard.slice();\n        } else {\n          return this._cachedChanges.slice();\n        }\n      } // Will contain returned results.\n\n\n      var diffSet = []; // Check all changed elements.\n\n      var _iterator7 = _createForOfIteratorHelper(this._changesInElement.keys()),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var element = _step7.value;\n\n          // Get changes for this element and sort them.\n          var changes = this._changesInElement.get(element).sort(function (a, b) {\n            if (a.offset === b.offset) {\n              if (a.type != b.type) {\n                // If there are multiple changes at the same position, \"remove\" change should be first.\n                // If the order is different, for example, we would first add some nodes and then removed them\n                // (instead of the nodes that we should remove).\n                return a.type == 'remove' ? -1 : 1;\n              }\n\n              return 0;\n            }\n\n            return a.offset < b.offset ? -1 : 1;\n          }); // Get children of this element before any change was applied on it.\n\n\n          var snapshotChildren = this._elementSnapshots.get(element); // Get snapshot of current element's children.\n\n\n          var elementChildren = _getChildrenSnapshot(element.getChildren()); // Generate actions basing on changes done on element.\n\n\n          var actions = _generateActionsFromChanges(snapshotChildren.length, changes);\n\n          var _i2 = 0; // Iterator in `elementChildren` array -- iterates through current children of element.\n\n          var j = 0; // Iterator in `snapshotChildren` array -- iterates through old children of element.\n          // Process every action.\n\n          var _iterator8 = _createForOfIteratorHelper(actions),\n              _step8;\n\n          try {\n            for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n              var action = _step8.value;\n\n              if (action === 'i') {\n                // Generate diff item for this element and insert it into the diff set.\n                diffSet.push(this._getInsertDiff(element, _i2, elementChildren[_i2].name));\n                _i2++;\n              } else if (action === 'r') {\n                // Generate diff item for this element and insert it into the diff set.\n                diffSet.push(this._getRemoveDiff(element, _i2, snapshotChildren[j].name));\n                j++;\n              } else if (action === 'a') {\n                // Take attributes from saved and current children.\n                var elementAttributes = elementChildren[_i2].attributes;\n                var snapshotAttributes = snapshotChildren[j].attributes;\n                var range = void 0;\n\n                if (elementChildren[_i2].name == '$text') {\n                  range = new Range(Position._createAt(element, _i2), Position._createAt(element, _i2 + 1));\n                } else {\n                  var index = element.offsetToIndex(_i2);\n                  range = new Range(Position._createAt(element, _i2), Position._createAt(element.getChild(index), 0));\n                } // Generate diff items for this change (there might be multiple attributes changed and\n                // there is a single diff for each of them) and insert them into the diff set.\n\n\n                diffSet.push.apply(diffSet, _toConsumableArray(this._getAttributesDiff(range, snapshotAttributes, elementAttributes)));\n                _i2++;\n                j++;\n              } else {\n                // `action` is 'equal'. Child not changed.\n                _i2++;\n                j++;\n              }\n            }\n          } catch (err) {\n            _iterator8.e(err);\n          } finally {\n            _iterator8.f();\n          }\n        } // Then, sort the changes by the position (change at position before other changes is first).\n\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n\n      diffSet.sort(function (a, b) {\n        // If the change is in different root, we don't care much, but we'd like to have all changes in given\n        // root \"together\" in the array. So let's just sort them by the root name. It does not matter which root\n        // will be processed first.\n        if (a.position.root != b.position.root) {\n          return a.position.root.rootName < b.position.root.rootName ? -1 : 1;\n        } // If change happens at the same position...\n\n\n        if (a.position.isEqual(b.position)) {\n          // Keep chronological order of operations.\n          return a.changeCount - b.changeCount;\n        } // If positions differ, position \"on the left\" should be earlier in the result.\n\n\n        return a.position.isBefore(b.position) ? -1 : 1;\n      }); // Glue together multiple changes (mostly on text nodes).\n\n      for (var i = 1; i < diffSet.length; i++) {\n        var prevDiff = diffSet[i - 1];\n        var thisDiff = diffSet[i]; // Glue remove changes if they happen on text on same position.\n\n        var isConsecutiveTextRemove = prevDiff.type == 'remove' && thisDiff.type == 'remove' && prevDiff.name == '$text' && thisDiff.name == '$text' && prevDiff.position.isEqual(thisDiff.position); // Glue insert changes if they happen on text on consecutive fragments.\n\n        var isConsecutiveTextAdd = prevDiff.type == 'insert' && thisDiff.type == 'insert' && prevDiff.name == '$text' && thisDiff.name == '$text' && prevDiff.position.parent == thisDiff.position.parent && prevDiff.position.offset + prevDiff.length == thisDiff.position.offset; // Glue attribute changes if they happen on consecutive fragments and have same key, old value and new value.\n\n        var isConsecutiveAttributeChange = prevDiff.type == 'attribute' && thisDiff.type == 'attribute' && prevDiff.position.parent == thisDiff.position.parent && prevDiff.range.isFlat && thisDiff.range.isFlat && prevDiff.position.offset + prevDiff.length == thisDiff.position.offset && prevDiff.attributeKey == thisDiff.attributeKey && prevDiff.attributeOldValue == thisDiff.attributeOldValue && prevDiff.attributeNewValue == thisDiff.attributeNewValue;\n\n        if (isConsecutiveTextRemove || isConsecutiveTextAdd || isConsecutiveAttributeChange) {\n          diffSet[i - 1].length++;\n\n          if (isConsecutiveAttributeChange) {\n            diffSet[i - 1].range.end = diffSet[i - 1].range.end.getShiftedBy(1);\n          }\n\n          diffSet.splice(i, 1);\n          i--;\n        }\n      } // Remove `changeCount` property from diff items. It is used only for sorting and is internal thing.\n\n\n      for (var _i = 0, _diffSet = diffSet; _i < _diffSet.length; _i++) {\n        var item = _diffSet[_i];\n        delete item.changeCount;\n\n        if (item.type == 'attribute') {\n          delete item.position;\n          delete item.length;\n        }\n      }\n\n      this._changeCount = 0; // Cache changes.\n\n      this._cachedChangesWithGraveyard = diffSet.slice();\n      this._cachedChanges = diffSet.slice().filter(_changesInGraveyardFilter);\n\n      if (options.includeChangesInGraveyard) {\n        return this._cachedChangesWithGraveyard;\n      } else {\n        return this._cachedChanges;\n      }\n    }\n    /**\n     * Resets `Differ`. Removes all buffered changes.\n     */\n\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this._changesInElement.clear();\n\n      this._elementSnapshots.clear();\n\n      this._changedMarkers.clear();\n\n      this._cachedChanges = null;\n    }\n    /**\n     * Saves and handles an insert change.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} parent\n     * @param {Number} offset\n     * @param {Number} howMany\n     */\n\n  }, {\n    key: \"_markInsert\",\n    value: function _markInsert(parent, offset, howMany) {\n      var changeItem = {\n        type: 'insert',\n        offset: offset,\n        howMany: howMany,\n        count: this._changeCount++\n      };\n\n      this._markChange(parent, changeItem);\n    }\n    /**\n     * Saves and handles a remove change.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} parent\n     * @param {Number} offset\n     * @param {Number} howMany\n     */\n\n  }, {\n    key: \"_markRemove\",\n    value: function _markRemove(parent, offset, howMany) {\n      var changeItem = {\n        type: 'remove',\n        offset: offset,\n        howMany: howMany,\n        count: this._changeCount++\n      };\n\n      this._markChange(parent, changeItem);\n\n      this._removeAllNestedChanges(parent, offset, howMany);\n    }\n    /**\n     * Saves and handles an attribute change.\n     *\n     * @private\n     * @param {module:engine/model/item~Item} item\n     */\n\n  }, {\n    key: \"_markAttribute\",\n    value: function _markAttribute(item) {\n      var changeItem = {\n        type: 'attribute',\n        offset: item.startOffset,\n        howMany: item.offsetSize,\n        count: this._changeCount++\n      };\n\n      this._markChange(item.parent, changeItem);\n    }\n    /**\n     * Saves and handles a model change.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} parent\n     * @param {Object} changeItem\n     */\n\n  }, {\n    key: \"_markChange\",\n    value: function _markChange(parent, changeItem) {\n      // First, make a snapshot of this parent's children (it will be made only if it was not made before).\n      this._makeSnapshot(parent); // Then, get all changes that already were done on the element (empty array if this is the first change).\n\n\n      var changes = this._getChangesForElement(parent); // Then, look through all the changes, and transform them or the new change.\n\n\n      this._handleChange(changeItem, changes); // Add the new change.\n\n\n      changes.push(changeItem); // Remove incorrect changes. During transformation some change might be, for example, included in another.\n      // In that case, the change will have `howMany` property set to `0` or less. We need to remove those changes.\n\n      for (var i = 0; i < changes.length; i++) {\n        if (changes[i].howMany < 1) {\n          changes.splice(i, 1);\n          i--;\n        }\n      }\n    }\n    /**\n     * Gets an array of changes that have already been saved for a given element.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} element\n     * @returns {Array.<Object>}\n     */\n\n  }, {\n    key: \"_getChangesForElement\",\n    value: function _getChangesForElement(element) {\n      var changes;\n\n      if (this._changesInElement.has(element)) {\n        changes = this._changesInElement.get(element);\n      } else {\n        changes = [];\n\n        this._changesInElement.set(element, changes);\n      }\n\n      return changes;\n    }\n    /**\n     * Saves a children snapshot for a given element.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} element\n     */\n\n  }, {\n    key: \"_makeSnapshot\",\n    value: function _makeSnapshot(element) {\n      if (!this._elementSnapshots.has(element)) {\n        this._elementSnapshots.set(element, _getChildrenSnapshot(element.getChildren()));\n      }\n    }\n    /**\n     * For a given newly saved change, compares it with a change already done on the element and modifies the incoming\n     * change and/or the old change.\n     *\n     * @private\n     * @param {Object} inc Incoming (new) change.\n     * @param {Array.<Object>} changes An array containing all the changes done on that element.\n     */\n\n  }, {\n    key: \"_handleChange\",\n    value: function _handleChange(inc, changes) {\n      // We need a helper variable that will store how many nodes are to be still handled for this change item.\n      // `nodesToHandle` (how many nodes still need to be handled) and `howMany` (how many nodes were affected)\n      // needs to be differentiated.\n      //\n      // This comes up when there are multiple changes that are affected by `inc` change item.\n      //\n      // For example: assume two insert changes: `{ offset: 2, howMany: 1 }` and `{ offset: 5, howMany: 1 }`.\n      // Assume that `inc` change is remove `{ offset: 2, howMany: 2, nodesToHandle: 2 }`.\n      //\n      // Then, we:\n      // - \"forget\" about first insert change (it is \"eaten\" by remove),\n      // - because of that, at the end we will want to remove only one node (`nodesToHandle = 1`),\n      // - but still we have to change offset of the second insert change from `5` to `3`!\n      //\n      // So, `howMany` does not change throughout items transformation and keeps information about how many nodes were affected,\n      // while `nodesToHandle` means how many nodes need to be handled after the change item is transformed by other changes.\n      inc.nodesToHandle = inc.howMany;\n\n      var _iterator9 = _createForOfIteratorHelper(changes),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var old = _step9.value;\n          var incEnd = inc.offset + inc.howMany;\n          var oldEnd = old.offset + old.howMany;\n\n          if (inc.type == 'insert') {\n            if (old.type == 'insert') {\n              if (inc.offset <= old.offset) {\n                old.offset += inc.howMany;\n              } else if (inc.offset < oldEnd) {\n                old.howMany += inc.nodesToHandle;\n                inc.nodesToHandle = 0;\n              }\n            }\n\n            if (old.type == 'remove') {\n              if (inc.offset < old.offset) {\n                old.offset += inc.howMany;\n              }\n            }\n\n            if (old.type == 'attribute') {\n              if (inc.offset <= old.offset) {\n                old.offset += inc.howMany;\n              } else if (inc.offset < oldEnd) {\n                // This case is more complicated, because attribute change has to be split into two.\n                // Example (assume that uppercase and lowercase letters mean different attributes):\n                //\n                // initial state:\t\tabcxyz\n                // attribute change:\taBCXYz\n                // incoming insert:\t\taBCfooXYz\n                //\n                // Change ranges cannot intersect because each item has to be described exactly (it was either\n                // not changed, inserted, removed, or its attribute was changed). That's why old attribute\n                // change has to be split and both parts has to be handled separately from now on.\n                var howMany = old.howMany;\n                old.howMany = inc.offset - old.offset; // Add the second part of attribute change to the beginning of processed array so it won't\n                // be processed again in this loop.\n\n                changes.unshift({\n                  type: 'attribute',\n                  offset: incEnd,\n                  howMany: howMany - old.howMany,\n                  count: this._changeCount++\n                });\n              }\n            }\n          }\n\n          if (inc.type == 'remove') {\n            if (old.type == 'insert') {\n              if (incEnd <= old.offset) {\n                old.offset -= inc.howMany;\n              } else if (incEnd <= oldEnd) {\n                if (inc.offset < old.offset) {\n                  var intersectionLength = incEnd - old.offset;\n                  old.offset = inc.offset;\n                  old.howMany -= intersectionLength;\n                  inc.nodesToHandle -= intersectionLength;\n                } else {\n                  old.howMany -= inc.nodesToHandle;\n                  inc.nodesToHandle = 0;\n                }\n              } else {\n                if (inc.offset <= old.offset) {\n                  inc.nodesToHandle -= old.howMany;\n                  old.howMany = 0;\n                } else if (inc.offset < oldEnd) {\n                  var _intersectionLength = oldEnd - inc.offset;\n\n                  old.howMany -= _intersectionLength;\n                  inc.nodesToHandle -= _intersectionLength;\n                }\n              }\n            }\n\n            if (old.type == 'remove') {\n              if (incEnd <= old.offset) {\n                old.offset -= inc.howMany;\n              } else if (inc.offset < old.offset) {\n                inc.nodesToHandle += old.howMany;\n                old.howMany = 0;\n              }\n            }\n\n            if (old.type == 'attribute') {\n              if (incEnd <= old.offset) {\n                old.offset -= inc.howMany;\n              } else if (inc.offset < old.offset) {\n                var _intersectionLength2 = incEnd - old.offset;\n\n                old.offset = inc.offset;\n                old.howMany -= _intersectionLength2;\n              } else if (inc.offset < oldEnd) {\n                if (incEnd <= oldEnd) {\n                  // On first sight in this case we don't need to split attribute operation into two.\n                  // However the changes set is later converted to actions (see `_generateActionsFromChanges`).\n                  // For that reason, no two changes may intersect.\n                  // So we cannot have an attribute change that \"contains\" remove change.\n                  // Attribute change needs to be split.\n                  var _howMany = old.howMany;\n                  old.howMany = inc.offset - old.offset;\n                  var howManyAfter = _howMany - old.howMany - inc.nodesToHandle; // Add the second part of attribute change to the beginning of processed array so it won't\n                  // be processed again in this loop.\n\n                  changes.unshift({\n                    type: 'attribute',\n                    offset: inc.offset,\n                    howMany: howManyAfter,\n                    count: this._changeCount++\n                  });\n                } else {\n                  old.howMany -= oldEnd - inc.offset;\n                }\n              }\n            }\n          }\n\n          if (inc.type == 'attribute') {\n            // In case of attribute change, `howMany` should be kept same as `nodesToHandle`. It's not an error.\n            if (old.type == 'insert') {\n              if (inc.offset < old.offset && incEnd > old.offset) {\n                if (incEnd > oldEnd) {\n                  // This case is similar to a case described when incoming change was insert and old change was attribute.\n                  // See comment above.\n                  //\n                  // This time incoming change is attribute. We need to split incoming change in this case too.\n                  // However this time, the second part of the attribute change needs to be processed further\n                  // because there might be other changes that it collides with.\n                  var attributePart = {\n                    type: 'attribute',\n                    offset: oldEnd,\n                    howMany: incEnd - oldEnd,\n                    count: this._changeCount++\n                  };\n\n                  this._handleChange(attributePart, changes);\n\n                  changes.push(attributePart);\n                }\n\n                inc.nodesToHandle = old.offset - inc.offset;\n                inc.howMany = inc.nodesToHandle;\n              } else if (inc.offset >= old.offset && inc.offset < oldEnd) {\n                if (incEnd > oldEnd) {\n                  inc.nodesToHandle = incEnd - oldEnd;\n                  inc.offset = oldEnd;\n                } else {\n                  inc.nodesToHandle = 0;\n                }\n              }\n            }\n\n            if (old.type == 'remove') {\n              // This is a case when attribute change \"contains\" remove change.\n              // The attribute change needs to be split into two because changes cannot intersect.\n              if (inc.offset < old.offset && incEnd > old.offset) {\n                var _attributePart = {\n                  type: 'attribute',\n                  offset: old.offset,\n                  howMany: incEnd - old.offset,\n                  count: this._changeCount++\n                };\n\n                this._handleChange(_attributePart, changes);\n\n                changes.push(_attributePart);\n                inc.nodesToHandle = old.offset - inc.offset;\n                inc.howMany = inc.nodesToHandle;\n              }\n            }\n\n            if (old.type == 'attribute') {\n              // There are only two conflicting scenarios possible here:\n              if (inc.offset >= old.offset && incEnd <= oldEnd) {\n                // `old` change includes `inc` change, or they are the same.\n                inc.nodesToHandle = 0;\n                inc.howMany = 0;\n                inc.offset = 0;\n              } else if (inc.offset <= old.offset && incEnd >= oldEnd) {\n                // `inc` change includes `old` change.\n                old.howMany = 0;\n              }\n            }\n          }\n        }\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      inc.howMany = inc.nodesToHandle;\n      delete inc.nodesToHandle;\n    }\n    /**\n     * Returns an object with a single insert change description.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} parent The element in which the change happened.\n     * @param {Number} offset The offset at which change happened.\n     * @param {String} name The name of the removed element or `'$text'` for a character.\n     * @returns {Object} The diff item.\n     */\n\n  }, {\n    key: \"_getInsertDiff\",\n    value: function _getInsertDiff(parent, offset, name) {\n      return {\n        type: 'insert',\n        position: Position._createAt(parent, offset),\n        name: name,\n        length: 1,\n        changeCount: this._changeCount++\n      };\n    }\n    /**\n     * Returns an object with a single remove change description.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} parent The element in which change happened.\n     * @param {Number} offset The offset at which change happened.\n     * @param {String} name The name of the removed element or `'$text'` for a character.\n     * @returns {Object} The diff item.\n     */\n\n  }, {\n    key: \"_getRemoveDiff\",\n    value: function _getRemoveDiff(parent, offset, name) {\n      return {\n        type: 'remove',\n        position: Position._createAt(parent, offset),\n        name: name,\n        length: 1,\n        changeCount: this._changeCount++\n      };\n    }\n    /**\n     * Returns an array of objects where each one is a single attribute change description.\n     *\n     * @private\n     * @param {module:engine/model/range~Range} range The range where the change happened.\n     * @param {Map} oldAttributes A map, map iterator or compatible object that contains attributes before the change.\n     * @param {Map} newAttributes A map, map iterator or compatible object that contains attributes after the change.\n     * @returns {Array.<Object>} An array containing one or more diff items.\n     */\n\n  }, {\n    key: \"_getAttributesDiff\",\n    value: function _getAttributesDiff(range, oldAttributes, newAttributes) {\n      // Results holder.\n      var diffs = []; // Clone new attributes as we will be performing changes on this object.\n\n      newAttributes = new Map(newAttributes); // Look through old attributes.\n\n      var _iterator10 = _createForOfIteratorHelper(oldAttributes),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var _step10$value = _slicedToArray(_step10.value, 2),\n              key = _step10$value[0],\n              oldValue = _step10$value[1];\n\n          // Check what is the new value of the attribute (or if it was removed).\n          var newValue = newAttributes.has(key) ? newAttributes.get(key) : null; // If values are different (or attribute was removed)...\n\n          if (newValue !== oldValue) {\n            // Add diff item.\n            diffs.push({\n              type: 'attribute',\n              position: range.start,\n              range: range.clone(),\n              length: 1,\n              attributeKey: key,\n              attributeOldValue: oldValue,\n              attributeNewValue: newValue,\n              changeCount: this._changeCount++\n            });\n          } // Prevent returning two diff items for the same change.\n\n\n          newAttributes.delete(key);\n        } // Look through new attributes that weren't handled above.\n\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n\n      var _iterator11 = _createForOfIteratorHelper(newAttributes),\n          _step11;\n\n      try {\n        for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n          var _step11$value = _slicedToArray(_step11.value, 2),\n              _key = _step11$value[0],\n              _newValue = _step11$value[1];\n\n          // Each of them is a new attribute. Add diff item.\n          diffs.push({\n            type: 'attribute',\n            position: range.start,\n            range: range.clone(),\n            length: 1,\n            attributeKey: _key,\n            attributeOldValue: null,\n            attributeNewValue: _newValue,\n            changeCount: this._changeCount++\n          });\n        }\n      } catch (err) {\n        _iterator11.e(err);\n      } finally {\n        _iterator11.f();\n      }\n\n      return diffs;\n    }\n    /**\n     * Checks whether given element or any of its parents is an element that is buffered as an inserted element.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} element Element to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_isInInsertedElement\",\n    value: function _isInInsertedElement(element) {\n      var parent = element.parent;\n\n      if (!parent) {\n        return false;\n      }\n\n      var changes = this._changesInElement.get(parent);\n\n      var offset = element.startOffset;\n\n      if (changes) {\n        var _iterator12 = _createForOfIteratorHelper(changes),\n            _step12;\n\n        try {\n          for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n            var change = _step12.value;\n\n            if (change.type == 'insert' && offset >= change.offset && offset < change.offset + change.howMany) {\n              return true;\n            }\n          }\n        } catch (err) {\n          _iterator12.e(err);\n        } finally {\n          _iterator12.f();\n        }\n      }\n\n      return this._isInInsertedElement(parent);\n    }\n    /**\n     * Removes deeply all buffered changes that are registered in elements from range specified by `parent`, `offset`\n     * and `howMany`.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} parent\n     * @param {Number} offset\n     * @param {Number} howMany\n     */\n\n  }, {\n    key: \"_removeAllNestedChanges\",\n    value: function _removeAllNestedChanges(parent, offset, howMany) {\n      var range = new Range(Position._createAt(parent, offset), Position._createAt(parent, offset + howMany));\n\n      var _iterator13 = _createForOfIteratorHelper(range.getItems({\n        shallow: true\n      })),\n          _step13;\n\n      try {\n        for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n          var item = _step13.value;\n\n          if (item.is('element')) {\n            this._elementSnapshots.delete(item);\n\n            this._changesInElement.delete(item);\n\n            this._removeAllNestedChanges(item, 0, item.maxOffset);\n          }\n        }\n      } catch (err) {\n        _iterator13.e(err);\n      } finally {\n        _iterator13.f();\n      }\n    }\n  }, {\n    key: \"isEmpty\",\n    get: function get() {\n      return this._changesInElement.size == 0 && this._changedMarkers.size == 0;\n    }\n  }]);\n\n  return Differ;\n}(); // Returns an array that is a copy of passed child list with the exception that text nodes are split to one or more\n// objects, each representing one character and attributes set on that character.\n\n\nexport { Differ as default };\n\nfunction _getChildrenSnapshot(children) {\n  var snapshot = [];\n\n  var _iterator14 = _createForOfIteratorHelper(children),\n      _step14;\n\n  try {\n    for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n      var child = _step14.value;\n\n      if (child.is('text')) {\n        for (var i = 0; i < child.data.length; i++) {\n          snapshot.push({\n            name: '$text',\n            attributes: new Map(child.getAttributes())\n          });\n        }\n      } else {\n        snapshot.push({\n          name: child.name,\n          attributes: new Map(child.getAttributes())\n        });\n      }\n    }\n  } catch (err) {\n    _iterator14.e(err);\n  } finally {\n    _iterator14.f();\n  }\n\n  return snapshot;\n} // Generates array of actions for given changes set.\n// It simulates what `diff` function does.\n// Generated actions are:\n// - 'e' for 'equal' - when item at that position did not change,\n// - 'i' for 'insert' - when item at that position was inserted,\n// - 'r' for 'remove' - when item at that position was removed,\n// - 'a' for 'attribute' - when item at that position has it attributes changed.\n//\n// Example (assume that uppercase letters have bold attribute, compare with function code):\n//\n// children before:\tfooBAR\n// children after:\tfoxybAR\n//\n// changes: type: remove, offset: 1, howMany: 1\n//\t\t\ttype: insert, offset: 2, howMany: 2\n//\t\t\ttype: attribute, offset: 4, howMany: 1\n//\n// expected actions: equal (f), remove (o), equal (o), insert (x), insert (y), attribute (b), equal (A), equal (R)\n//\n// steps taken by th script:\n//\n// 1. change = \"type: remove, offset: 1, howMany: 1\"; offset = 0; oldChildrenHandled = 0\n//    1.1 between this change and the beginning is one not-changed node, fill with one equal action, one old child has been handled\n//    1.2 this change removes one node, add one remove action\n//    1.3 change last visited `offset` to 1\n//    1.4 since an old child has been removed, one more old child has been handled\n//    1.5 actions at this point are: equal, remove\n//\n// 2. change = \"type: insert, offset: 2, howMany: 2\"; offset = 1; oldChildrenHandled = 2\n//    2.1 between this change and previous change is one not-changed node, add equal action, another one old children has been handled\n//    2.2 this change inserts two nodes, add two insert actions\n//    2.3 change last visited offset to the end of the inserted range, that is 4\n//    2.4 actions at this point are: equal, remove, equal, insert, insert\n//\n// 3. change = \"type: attribute, offset: 4, howMany: 1\"; offset = 4, oldChildrenHandled = 3\n//    3.1 between this change and previous change are no not-changed nodes\n//    3.2 this change changes one node, add one attribute action\n//    3.3 change last visited `offset` to the end of change range, that is 5\n//    3.4 since an old child has been changed, one more old child has been handled\n//    3.5 actions at this point are: equal, remove, equal, insert, insert, attribute\n//\n// 4. after loop oldChildrenHandled = 4, oldChildrenLength = 6 (fooBAR is 6 characters)\n//    4.1 fill up with two equal actions\n//\n// The result actions are: equal, remove, equal, insert, insert, attribute, equal, equal.\n\n\nfunction _generateActionsFromChanges(oldChildrenLength, changes) {\n  var actions = [];\n  var offset = 0;\n  var oldChildrenHandled = 0; // Go through all buffered changes.\n\n  var _iterator15 = _createForOfIteratorHelper(changes),\n      _step15;\n\n  try {\n    for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n      var change = _step15.value;\n\n      // First, fill \"holes\" between changes with \"equal\" actions.\n      if (change.offset > offset) {\n        for (var _i3 = 0; _i3 < change.offset - offset; _i3++) {\n          actions.push('e');\n        }\n\n        oldChildrenHandled += change.offset - offset;\n      } // Then, fill up actions accordingly to change type.\n\n\n      if (change.type == 'insert') {\n        for (var _i4 = 0; _i4 < change.howMany; _i4++) {\n          actions.push('i');\n        } // The last handled offset is after inserted range.\n\n\n        offset = change.offset + change.howMany;\n      } else if (change.type == 'remove') {\n        for (var _i5 = 0; _i5 < change.howMany; _i5++) {\n          actions.push('r');\n        } // The last handled offset is at the position where the nodes were removed.\n\n\n        offset = change.offset; // We removed `howMany` old nodes, update `oldChildrenHandled`.\n\n        oldChildrenHandled += change.howMany;\n      } else {\n        actions.push.apply(actions, _toConsumableArray('a'.repeat(change.howMany).split(''))); // The last handled offset is at the position after the changed range.\n\n        offset = change.offset + change.howMany; // We changed `howMany` old nodes, update `oldChildrenHandled`.\n\n        oldChildrenHandled += change.howMany;\n      }\n    } // Fill \"equal\" actions at the end of actions set. Use `oldChildrenHandled` to see how many children\n    // has not been changed / removed at the end of their parent.\n\n  } catch (err) {\n    _iterator15.e(err);\n  } finally {\n    _iterator15.f();\n  }\n\n  if (oldChildrenHandled < oldChildrenLength) {\n    for (var i = 0; i < oldChildrenLength - oldChildrenHandled - offset; i++) {\n      actions.push('e');\n    }\n  }\n\n  return actions;\n} // Filter callback for Array.filter that filters out change entries that are in graveyard.\n\n\nfunction _changesInGraveyardFilter(entry) {\n  var posInGy = entry.position && entry.position.root.rootName == '$graveyard';\n  var rangeInGy = entry.range && entry.range.root.rootName == '$graveyard';\n  return !posInGy && !rangeInGy;\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/document\n */\nimport Differ from \"./differ\";\nimport RootElement from \"./rootelement\";\nimport History from \"./history\";\nimport DocumentSelection from \"./documentselection\";\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport { isInsideSurrogatePair, isInsideCombinedSymbol } from '@ckeditor/ckeditor5-utils/src/unicode';\nimport { clone } from 'lodash-es';\nvar graveyardName = '$graveyard';\n/**\n * Data model's document. It contains the model's structure, its selection and the history of changes.\n *\n * Read more about working with the model in\n * {@glink framework/guides/architecture/editing-engine#model introduction to the the editing engine's architecture}.\n *\n * Usually, the document contains just one {@link module:engine/model/document~Document#roots root element}, so\n * you can retrieve it by just calling {@link module:engine/model/document~Document#getRoot} without specifying its name:\n *\n *\t\tmodel.document.getRoot(); // -> returns the main root\n *\n * However, the document may contain multiple roots – e.g. when the editor has multiple editable areas\n * (e.g. a title and a body of a message).\n *\n * @mixes module:utils/emittermixin~EmitterMixin\n */\n\nvar Document = /*#__PURE__*/function () {\n  /**\n   * Creates an empty document instance with no {@link #roots} (other than\n   * the {@link #graveyard graveyard root}).\n   */\n  function Document(model) {\n    var _this = this;\n\n    _classCallCheck(this, Document);\n\n    /**\n     * The {@link module:engine/model/model~Model model} that the document is a part of.\n     *\n     * @readonly\n     * @type {module:engine/model/model~Model}\n     */\n    this.model = model;\n    /**\n     * The document version. It starts from `0` and every operation increases the version number. It is used to ensure that\n     * operations are applied on a proper document version.\n     *\n     * If the {@link module:engine/model/operation/operation~Operation#baseVersion base version} does not match the document version,\n     * a {@link module:utils/ckeditorerror~CKEditorError model-document-applyOperation-wrong-version} error is thrown.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n    this.version = 0;\n    /**\n     * The document's history.\n     *\n     * @readonly\n     * @type {module:engine/model/history~History}\n     */\n\n    this.history = new History(this);\n    /**\n     * The selection in this document.\n     *\n     * @readonly\n     * @type {module:engine/model/documentselection~DocumentSelection}\n     */\n\n    this.selection = new DocumentSelection(this);\n    /**\n     * A list of roots that are owned and managed by this document. Use {@link #createRoot} and\n     * {@link #getRoot} to manipulate it.\n     *\n     * @readonly\n     * @type {module:utils/collection~Collection}\n     */\n\n    this.roots = new Collection({\n      idProperty: 'rootName'\n    });\n    /**\n     * The model differ object. Its role is to buffer changes done on the model document and then calculate a diff of those changes.\n     *\n     * @readonly\n     * @type {module:engine/model/differ~Differ}\n     */\n\n    this.differ = new Differ(model.markers);\n    /**\n     * Post-fixer callbacks registered to the model document.\n     *\n     * @private\n     * @type {Set.<Function>}\n     */\n\n    this._postFixers = new Set();\n    /**\n     * A boolean indicates whether the selection has changed until\n     *\n     * @private\n     * @type {Boolean}\n     */\n\n    this._hasSelectionChangedFromTheLastChangeBlock = false; // Graveyard tree root. Document always have a graveyard root, which stores removed nodes.\n\n    this.createRoot('$root', graveyardName); // First, if the operation is a document operation check if it's base version is correct.\n\n    this.listenTo(model, 'applyOperation', function (evt, args) {\n      var operation = args[0];\n\n      if (operation.isDocumentOperation && operation.baseVersion !== _this.version) {\n        /**\n         * Only operations with matching versions can be applied.\n         *\n         * @error document-applyOperation-wrong-version\n         * @param {module:engine/model/operation/operation~Operation} operation\n         */\n        throw new CKEditorError('model-document-applyOperation-wrong-version: Only operations with matching versions can be applied.', _this, {\n          operation: operation\n        });\n      }\n    }, {\n      priority: 'highest'\n    }); // Then, still before an operation is applied on model, buffer the change in differ.\n\n    this.listenTo(model, 'applyOperation', function (evt, args) {\n      var operation = args[0];\n\n      if (operation.isDocumentOperation) {\n        _this.differ.bufferOperation(operation);\n      }\n    }, {\n      priority: 'high'\n    }); // After the operation is applied, bump document's version and add the operation to the history.\n\n    this.listenTo(model, 'applyOperation', function (evt, args) {\n      var operation = args[0];\n\n      if (operation.isDocumentOperation) {\n        _this.version++;\n\n        _this.history.addOperation(operation);\n      }\n    }, {\n      priority: 'low'\n    }); // Listen to selection changes. If selection changed, mark it.\n\n    this.listenTo(this.selection, 'change', function () {\n      _this._hasSelectionChangedFromTheLastChangeBlock = true;\n    }); // Buffer marker changes.\n    // This is not covered in buffering operations because markers may change outside of them (when they\n    // are modified using `model.markers` collection, not through `MarkerOperation`).\n\n    this.listenTo(model.markers, 'update', function (evt, marker, oldRange, newRange) {\n      // Whenever marker is updated, buffer that change.\n      _this.differ.bufferMarkerChange(marker.name, oldRange, newRange, marker.affectsData);\n\n      if (oldRange === null) {\n        // If this is a new marker, add a listener that will buffer change whenever marker changes.\n        marker.on('change', function (evt, oldRange) {\n          _this.differ.bufferMarkerChange(marker.name, oldRange, marker.getRange(), marker.affectsData);\n        });\n      }\n    });\n  }\n  /**\n   * The graveyard tree root. A document always has a graveyard root that stores removed nodes.\n   *\n   * @readonly\n   * @member {module:engine/model/rootelement~RootElement}\n   */\n\n\n  _createClass(Document, [{\n    key: \"createRoot\",\n\n    /**\n     * Creates a new root.\n     *\n     * @param {String} [elementName='$root'] The element name. Defaults to `'$root'` which also has some basic schema defined\n     * (`$block`s are allowed inside the `$root`). Make sure to define a proper schema if you use a different name.\n     * @param {String} [rootName='main'] A unique root name.\n     * @returns {module:engine/model/rootelement~RootElement} The created root.\n     */\n    value: function createRoot() {\n      var elementName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '$root';\n      var rootName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'main';\n\n      if (this.roots.get(rootName)) {\n        /**\n         * A root with the specified name already exists.\n         *\n         * @error model-document-createRoot-name-exists\n         * @param {module:engine/model/document~Document} doc\n         * @param {String} name\n         */\n        throw new CKEditorError('model-document-createRoot-name-exists: Root with specified name already exists.', this, {\n          name: rootName\n        });\n      }\n\n      var root = new RootElement(this, elementName, rootName);\n      this.roots.add(root);\n      return root;\n    }\n    /**\n     * Removes all event listeners set by the document instance.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.selection.destroy();\n      this.stopListening();\n    }\n    /**\n     * Returns a root by its name.\n     *\n     * @param {String} [name='main'] A unique root name.\n     * @returns {module:engine/model/rootelement~RootElement|null} The root registered under a given name or `null` when\n     * there is no root with the given name.\n     */\n\n  }, {\n    key: \"getRoot\",\n    value: function getRoot() {\n      var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'main';\n      return this.roots.get(name);\n    }\n    /**\n     * Returns an array with names of all roots (without the {@link #graveyard}) added to the document.\n     *\n     * @returns {Array.<String>} Roots names.\n     */\n\n  }, {\n    key: \"getRootNames\",\n    value: function getRootNames() {\n      return Array.from(this.roots, function (root) {\n        return root.rootName;\n      }).filter(function (name) {\n        return name != graveyardName;\n      });\n    }\n    /**\n     * Used to register a post-fixer callback. A post-fixer mechanism guarantees that the features\n     * will operate on a correct model state.\n     *\n     * An execution of a feature may lead to an incorrect document tree state. The callbacks are used to fix the document tree after\n     * it has changed. Post-fixers are fired just after all changes from the outermost change block were applied but\n     * before the {@link module:engine/model/document~Document#event:change change event} is fired. If a post-fixer callback made\n     * a change, it should return `true`. When this happens, all post-fixers are fired again to check if something else should\n     * not be fixed in the new document tree state.\n     *\n     * As a parameter, a post-fixer callback receives a {@link module:engine/model/writer~Writer writer} instance connected with the\n     * executed changes block. Thanks to that, all changes done by the callback will be added to the same\n     * {@link module:engine/model/batch~Batch batch} (and undo step) as the original changes. This makes post-fixer changes transparent\n     * for the user.\n     *\n     * An example of a post-fixer is a callback that checks if all the data were removed from the editor. If so, the\n     * callback should add an empty paragraph so that the editor is never empty:\n     *\n     *\t\tdocument.registerPostFixer( writer => {\n     *\t\t\tconst changes = document.differ.getChanges();\n     *\n     *\t\t\t// Check if the changes lead to an empty root in the editor.\n     *\t\t\tfor ( const entry of changes ) {\n     *\t\t\t\tif ( entry.type == 'remove' && entry.position.root.isEmpty ) {\n     *\t\t\t\t\twriter.insertElement( 'paragraph', entry.position.root, 0 );\n     *\n     *\t\t\t\t\t// It is fine to return early, even if multiple roots would need to be fixed.\n     *\t\t\t\t\t// All post-fixers will be fired again, so if there are more empty roots, those will be fixed, too.\n     *\t\t\t\t\treturn true;\n     *\t\t\t\t}\n     *\t\t\t}\n     *\t\t} );\n     *\n     * @param {Function} postFixer\n     */\n\n  }, {\n    key: \"registerPostFixer\",\n    value: function registerPostFixer(postFixer) {\n      this._postFixers.add(postFixer);\n    }\n    /**\n     * A custom `toJSON()` method to solve child-parent circular dependencies.\n     *\n     * @returns {Object} A clone of this object with the document property changed to a string.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = clone(this); // Due to circular references we need to remove parent reference.\n\n      json.selection = '[engine.model.DocumentSelection]';\n      json.model = '[engine.model.Model]';\n      return json;\n    }\n    /**\n     * Check if there were any changes done on document, and if so, call post-fixers,\n     * fire `change` event for features and conversion and then reset the differ.\n     * Fire `change:data` event when at least one operation or buffered marker changes the data.\n     *\n     * @protected\n     * @fires change\n     * @fires change:data\n     * @param {module:engine/model/writer~Writer} writer The writer on which post-fixers will be called.\n     */\n\n  }, {\n    key: \"_handleChangeBlock\",\n    value: function _handleChangeBlock(writer) {\n      if (this._hasDocumentChangedFromTheLastChangeBlock()) {\n        this._callPostFixers(writer); // Refresh selection attributes according to the final position in the model after the change.\n\n\n        this.selection.refresh();\n\n        if (this.differ.hasDataChanges()) {\n          this.fire('change:data', writer.batch);\n        } else {\n          this.fire('change', writer.batch);\n        } // Theoretically, it is not necessary to refresh selection after change event because\n        // post-fixers are the last who should change the model, but just in case...\n\n\n        this.selection.refresh();\n        this.differ.reset();\n      }\n\n      this._hasSelectionChangedFromTheLastChangeBlock = false;\n    }\n    /**\n     * Returns whether there is a buffered change or if the selection has changed from the last\n     * {@link module:engine/model/model~Model#enqueueChange `enqueueChange()` block}\n     * or {@link module:engine/model/model~Model#change `change()` block}.\n     *\n     * @protected\n     * @returns {Boolean} Returns `true` if document has changed from the last `change()` or `enqueueChange()` block.\n     */\n\n  }, {\n    key: \"_hasDocumentChangedFromTheLastChangeBlock\",\n    value: function _hasDocumentChangedFromTheLastChangeBlock() {\n      return !this.differ.isEmpty || this._hasSelectionChangedFromTheLastChangeBlock;\n    }\n    /**\n     * Returns the default root for this document which is either the first root that was added to the document using\n     * {@link #createRoot} or the {@link #graveyard graveyard root} if no other roots were created.\n     *\n     * @protected\n     * @returns {module:engine/model/rootelement~RootElement} The default root for this document.\n     */\n\n  }, {\n    key: \"_getDefaultRoot\",\n    value: function _getDefaultRoot() {\n      var _iterator = _createForOfIteratorHelper(this.roots),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var root = _step.value;\n\n          if (root !== this.graveyard) {\n            return root;\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return this.graveyard;\n    }\n    /**\n     * Returns the default range for this selection. The default range is a collapsed range that starts and ends\n     * at the beginning of this selection's document {@link #_getDefaultRoot default root}.\n     *\n     * @protected\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"_getDefaultRange\",\n    value: function _getDefaultRange() {\n      var defaultRoot = this._getDefaultRoot();\n\n      var model = this.model;\n      var schema = model.schema; // Find the first position where the selection can be put.\n\n      var position = model.createPositionFromPath(defaultRoot, [0]);\n      var nearestRange = schema.getNearestSelectionRange(position); // If valid selection range is not found - return range collapsed at the beginning of the root.\n\n      return nearestRange || model.createRange(position);\n    }\n    /**\n     * Checks whether a given {@link module:engine/model/range~Range range} is a valid range for\n     * the {@link #selection document's selection}.\n     *\n     * @private\n     * @param {module:engine/model/range~Range} range A range to check.\n     * @returns {Boolean} `true` if `range` is valid, `false` otherwise.\n     */\n\n  }, {\n    key: \"_validateSelectionRange\",\n    value: function _validateSelectionRange(range) {\n      return validateTextNodePosition(range.start) && validateTextNodePosition(range.end);\n    }\n    /**\n     * Performs post-fixer loops. Executes post-fixer callbacks as long as none of them has done any changes to the model.\n     *\n     * @private\n     * @param {module:engine/model/writer~Writer} writer The writer on which post-fixer callbacks will be called.\n     */\n\n  }, {\n    key: \"_callPostFixers\",\n    value: function _callPostFixers(writer) {\n      var wasFixed = false;\n\n      do {\n        var _iterator2 = _createForOfIteratorHelper(this._postFixers),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var callback = _step2.value;\n            // Ensure selection attributes are up to date before each post-fixer.\n            // https://github.com/ckeditor/ckeditor5-engine/issues/1673.\n            //\n            // It might be good to refresh the selection after each operation but at the moment it leads\n            // to losing attributes for composition or and spell checking\n            // https://github.com/ckeditor/ckeditor5-typing/issues/188\n            this.selection.refresh();\n            wasFixed = callback(writer);\n\n            if (wasFixed) {\n              break;\n            }\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      } while (wasFixed);\n    }\n    /**\n     * Fired after each {@link module:engine/model/model~Model#enqueueChange `enqueueChange()` block} or the outermost\n     * {@link module:engine/model/model~Model#change `change()` block} was executed and the document was changed\n     * during that block's execution.\n     *\n     * The changes which this event will cover include:\n     *\n     * * document structure changes,\n     * * selection changes,\n     * * marker changes.\n     *\n     * If you want to be notified about all these changes, then simply listen to this event like this:\n     *\n     *\t\tmodel.document.on( 'change', () => {\n     *\t\t\tconsole.log( 'The document has changed!' );\n     *\t\t} );\n     *\n     * If, however, you only want to be notified about the data changes, then use the\n     * {@link module:engine/model/document~Document#event:change:data change:data} event,\n     * which is fired for document structure changes and marker changes (which affects the data).\n     *\n     *\t\tmodel.document.on( 'change:data', () => {\n     *\t\t\tconsole.log( 'The data has changed!' );\n     *\t\t} );\n     *\n     * @event change\n     * @param {module:engine/model/batch~Batch} batch The batch that was used in the executed changes block.\n     */\n\n    /**\n     * It is a narrower version of the {@link #event:change} event. It is fired for changes which\n     * affect the editor data. This is:\n     *\n     * * document structure changes,\n     * * marker changes (which affects the data).\n     *\n     * If you want to be notified about the data changes, then listen to this event:\n     *\n     *\t\tmodel.document.on( 'change:data', () => {\n     *\t\t\tconsole.log( 'The data has changed!' );\n     *\t\t} );\n     *\n     * If you would like to listen to all document changes, then check out the\n     * {@link module:engine/model/document~Document#event:change change} event.\n     *\n     * @event change:data\n     * @param {module:engine/model/batch~Batch} batch The batch that was used in the executed changes block.\n     */\n\n  }, {\n    key: \"graveyard\",\n    get: function get() {\n      return this.getRoot(graveyardName);\n    }\n  }]);\n\n  return Document;\n}();\n\nexport { Document as default };\nmix(Document, EmitterMixin); // Checks whether given range boundary position is valid for document selection, meaning that is not between\n// unicode surrogate pairs or base character and combining marks.\n\nfunction validateTextNodePosition(rangeBoundary) {\n  var textNode = rangeBoundary.textNode;\n\n  if (textNode) {\n    var data = textNode.data;\n    var offset = rangeBoundary.offset - textNode.startOffset;\n    return !isInsideSurrogatePair(data, offset) && !isInsideCombinedSymbol(data, offset);\n  }\n\n  return true;\n}","import \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module module:engine/model/documentfragment\n */\nimport NodeList from \"./nodelist\";\nimport Element from \"./element\";\nimport Text from \"./text\";\nimport TextProxy from \"./textproxy\";\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\n/**\n * DocumentFragment represents a part of model which does not have a common root but it's top-level nodes\n * can be seen as siblings. In other words, it is a detached part of model tree, without a root.\n *\n * DocumentFragment has own {@link module:engine/model/markercollection~MarkerCollection}. Markers from this collection\n * will be set to the {@link module:engine/model/model~Model#markers model markers} by a\n * {@link module:engine/model/writer~Writer#insert} function.\n */\n\nvar DocumentFragment = /*#__PURE__*/function () {\n  /**\n   * Creates an empty `DocumentFragment`.\n   *\n   * **Note:** Constructor of this class shouldn't be used directly in the code.\n   * Use the {@link module:engine/model/writer~Writer#createDocumentFragment} method instead.\n   *\n   * @protected\n   * @param {module:engine/model/node~Node|Iterable.<module:engine/model/node~Node>} [children]\n   * Nodes to be contained inside the `DocumentFragment`.\n   */\n  function DocumentFragment(children) {\n    _classCallCheck(this, DocumentFragment);\n\n    /**\n     * DocumentFragment static markers map. This is a list of names and {@link module:engine/model/range~Range ranges}\n     * which will be set as Markers to {@link module:engine/model/model~Model#markers model markers collection}\n     * when DocumentFragment will be inserted to the document.\n     *\n     * @readonly\n     * @member {Map<String,module:engine/model/range~Range>} module:engine/model/documentfragment~DocumentFragment#markers\n     */\n    this.markers = new Map();\n    /**\n     * List of nodes contained inside the document fragment.\n     *\n     * @private\n     * @member {module:engine/model/nodelist~NodeList} module:engine/model/documentfragment~DocumentFragment#_children\n     */\n\n    this._children = new NodeList();\n\n    if (children) {\n      this._insertChild(0, children);\n    }\n  }\n  /**\n   * Returns an iterator that iterates over all nodes contained inside this document fragment.\n   *\n   * @returns {Iterable.<module:engine/model/node~Node>}\n   */\n\n\n  _createClass(DocumentFragment, [{\n    key: Symbol.iterator,\n    value: function value() {\n      return this.getChildren();\n    }\n    /**\n     * Number of this document fragment's children.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\tdocFrag.is( 'documentFragment' ); // -> true\n     *\t\tdocFrag.is( 'model:documentFragment' ); // -> true\n     *\n     *\t\tdocFrag.is( 'view:documentFragment' ); // -> false\n     *\t\tdocFrag.is( 'element' ); // -> false\n     *\t\tdocFrag.is( 'node' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n    value: function is(type) {\n      return type == 'documentFragment' || type == 'model:documentFragment';\n    }\n    /**\n     * Gets the child at the given index. Returns `null` if incorrect index was passed.\n     *\n     * @param {Number} index Index of child.\n     * @returns {module:engine/model/node~Node|null} Child node.\n     */\n\n  }, {\n    key: \"getChild\",\n    value: function getChild(index) {\n      return this._children.getNode(index);\n    }\n    /**\n     * Returns an iterator that iterates over all of this document fragment's children.\n     *\n     * @returns {Iterable.<module:engine/model/node~Node>}\n     */\n\n  }, {\n    key: \"getChildren\",\n    value: function getChildren() {\n      return this._children[Symbol.iterator]();\n    }\n    /**\n     * Returns an index of the given child node. Returns `null` if given node is not a child of this document fragment.\n     *\n     * @param {module:engine/model/node~Node} node Child node to look for.\n     * @returns {Number|null} Child node's index.\n     */\n\n  }, {\n    key: \"getChildIndex\",\n    value: function getChildIndex(node) {\n      return this._children.getNodeIndex(node);\n    }\n    /**\n     * Returns the starting offset of given child. Starting offset is equal to the sum of\n     * {@link module:engine/model/node~Node#offsetSize offset sizes} of all node's siblings that are before it. Returns `null` if\n     * given node is not a child of this document fragment.\n     *\n     * @param {module:engine/model/node~Node} node Child node to look for.\n     * @returns {Number|null} Child node's starting offset.\n     */\n\n  }, {\n    key: \"getChildStartOffset\",\n    value: function getChildStartOffset(node) {\n      return this._children.getNodeStartOffset(node);\n    }\n    /**\n     * Returns path to a `DocumentFragment`, which is an empty array. Added for compatibility reasons.\n     *\n     * @returns {Array}\n     */\n\n  }, {\n    key: \"getPath\",\n    value: function getPath() {\n      return [];\n    }\n    /**\n     * Returns a descendant node by its path relative to this element.\n     *\n     *\t\t// <this>a<b>c</b></this>\n     *\t\tthis.getNodeByPath( [ 0 ] );     // -> \"a\"\n     *\t\tthis.getNodeByPath( [ 1 ] );     // -> <b>\n     *\t\tthis.getNodeByPath( [ 1, 0 ] );  // -> \"c\"\n     *\n     * @param {Array.<Number>} relativePath Path of the node to find, relative to this element.\n     * @returns {module:engine/model/node~Node|module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"getNodeByPath\",\n    value: function getNodeByPath(relativePath) {\n      var node = this; // eslint-disable-line consistent-this\n\n      var _iterator = _createForOfIteratorHelper(relativePath),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var index = _step.value;\n          node = node.getChild(node.offsetToIndex(index));\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return node;\n    }\n    /**\n     * Converts offset \"position\" to index \"position\".\n     *\n     * Returns index of a node that occupies given offset. If given offset is too low, returns `0`. If given offset is\n     * too high, returns index after last child}.\n     *\n     *\t\tconst textNode = new Text( 'foo' );\n     *\t\tconst pElement = new Element( 'p' );\n     *\t\tconst docFrag = new DocumentFragment( [ textNode, pElement ] );\n     *\t\tdocFrag.offsetToIndex( -1 ); // Returns 0, because offset is too low.\n     *\t\tdocFrag.offsetToIndex( 0 ); // Returns 0, because offset 0 is taken by `textNode` which is at index 0.\n     *\t\tdocFrag.offsetToIndex( 1 ); // Returns 0, because `textNode` has `offsetSize` equal to 3, so it occupies offset 1 too.\n     *\t\tdocFrag.offsetToIndex( 2 ); // Returns 0.\n     *\t\tdocFrag.offsetToIndex( 3 ); // Returns 1.\n     *\t\tdocFrag.offsetToIndex( 4 ); // Returns 2. There are no nodes at offset 4, so last available index is returned.\n     *\n     * @param {Number} offset Offset to look for.\n     * @returns {Number} Index of a node that occupies given offset.\n     */\n\n  }, {\n    key: \"offsetToIndex\",\n    value: function offsetToIndex(offset) {\n      return this._children.offsetToIndex(offset);\n    }\n    /**\n     * Converts `DocumentFragment` instance to plain object and returns it.\n     * Takes care of converting all of this document fragment's children.\n     *\n     * @returns {Object} `DocumentFragment` instance converted to plain object.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = [];\n\n      var _iterator2 = _createForOfIteratorHelper(this._children),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var node = _step2.value;\n          json.push(node.toJSON());\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      return json;\n    }\n    /**\n     * Creates a `DocumentFragment` instance from given plain object (i.e. parsed JSON string).\n     * Converts `DocumentFragment` children to proper nodes.\n     *\n     * @param {Object} json Plain object to be converted to `DocumentFragment`.\n     * @returns {module:engine/model/documentfragment~DocumentFragment} `DocumentFragment` instance created using given plain object.\n     */\n\n  }, {\n    key: \"_appendChild\",\n\n    /**\n     * {@link #_insertChild Inserts} one or more nodes at the end of this document fragment.\n     *\n     * @protected\n     * @param {module:engine/model/item~Item|Iterable.<module:engine/model/item~Item>} items Items to be inserted.\n     */\n    value: function _appendChild(items) {\n      this._insertChild(this.childCount, items);\n    }\n    /**\n     * Inserts one or more nodes at the given index and sets {@link module:engine/model/node~Node#parent parent} of these nodes\n     * to this document fragment.\n     *\n     * @protected\n     * @param {Number} index Index at which nodes should be inserted.\n     * @param {module:engine/model/item~Item|Iterable.<module:engine/model/item~Item>} items Items to be inserted.\n     */\n\n  }, {\n    key: \"_insertChild\",\n    value: function _insertChild(index, items) {\n      var nodes = normalize(items);\n\n      var _iterator3 = _createForOfIteratorHelper(nodes),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var node = _step3.value;\n\n          // If node that is being added to this element is already inside another element, first remove it from the old parent.\n          if (node.parent !== null) {\n            node._remove();\n          }\n\n          node.parent = this;\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      this._children._insertNodes(index, nodes);\n    }\n    /**\n     * Removes one or more nodes starting at the given index\n     * and sets {@link module:engine/model/node~Node#parent parent} of these nodes to `null`.\n     *\n     * @protected\n     * @param {Number} index Index of the first node to remove.\n     * @param {Number} [howMany=1] Number of nodes to remove.\n     * @returns {Array.<module:engine/model/node~Node>} Array containing removed nodes.\n     */\n\n  }, {\n    key: \"_removeChildren\",\n    value: function _removeChildren(index) {\n      var howMany = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n      var nodes = this._children._removeNodes(index, howMany);\n\n      var _iterator4 = _createForOfIteratorHelper(nodes),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var node = _step4.value;\n          node.parent = null;\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      return nodes;\n    }\n  }, {\n    key: \"childCount\",\n    get: function get() {\n      return this._children.length;\n    }\n    /**\n     * Sum of {@link module:engine/model/node~Node#offsetSize offset sizes} of all of this document fragment's children.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"maxOffset\",\n    get: function get() {\n      return this._children.maxOffset;\n    }\n    /**\n     * Is `true` if there are no nodes inside this document fragment, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isEmpty\",\n    get: function get() {\n      return this.childCount === 0;\n    }\n    /**\n     * Artificial root of `DocumentFragment`. Returns itself. Added for compatibility reasons.\n     *\n     * @readonly\n     * @type {module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      return this;\n    }\n    /**\n     * Artificial parent of `DocumentFragment`. Returns `null`. Added for compatibility reasons.\n     *\n     * @readonly\n     * @type {null}\n     */\n\n  }, {\n    key: \"parent\",\n    get: function get() {\n      return null;\n    }\n  }], [{\n    key: \"fromJSON\",\n    value: function fromJSON(json) {\n      var children = [];\n\n      var _iterator5 = _createForOfIteratorHelper(json),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var child = _step5.value;\n\n          if (child.name) {\n            // If child has name property, it is an Element.\n            children.push(Element.fromJSON(child));\n          } else {\n            // Otherwise, it is a Text node.\n            children.push(Text.fromJSON(child));\n          }\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      return new DocumentFragment(children);\n    }\n  }]);\n\n  return DocumentFragment;\n}(); // Converts strings to Text and non-iterables to arrays.\n//\n// @param {String|module:engine/model/item~Item|Iterable.<module:engine/model/item~Item>}\n// @returns {Iterable.<module:engine/model/node~Node>}\n\n\nexport { DocumentFragment as default };\n\nfunction normalize(nodes) {\n  // Separate condition because string is iterable.\n  if (typeof nodes == 'string') {\n    return [new Text(nodes)];\n  }\n\n  if (!isIterable(nodes)) {\n    nodes = [nodes];\n  } // Array.from to enable .map() on non-arrays.\n\n\n  return Array.from(nodes).map(function (node) {\n    if (typeof node == 'string') {\n      return new Text(node);\n    }\n\n    if (node instanceof TextProxy) {\n      return new Text(node.data, node.getAttributes());\n    }\n\n    return node;\n  });\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.array.from\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport \"core-js/modules/es6.string.starts-with\";\nimport \"core-js/modules/es6.string.anchor\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/documentselection\n */\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport Selection from \"./selection\";\nimport LiveRange from \"./liverange\";\nimport Text from \"./text\";\nimport TextProxy from \"./textproxy\";\nimport toMap from '@ckeditor/ckeditor5-utils/src/tomap';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport uid from '@ckeditor/ckeditor5-utils/src/uid';\nvar storePrefix = 'selection:';\n/**\n * `DocumentSelection` is a special selection which is used as the\n * {@link module:engine/model/document~Document#selection document's selection}.\n * There can be only one instance of `DocumentSelection` per document.\n *\n * Document selection can only be changed by using the {@link module:engine/model/writer~Writer} instance\n * inside the {@link module:engine/model/model~Model#change `change()`} block, as it provides a secure way to modify model.\n *\n * `DocumentSelection` is automatically updated upon changes in the {@link module:engine/model/document~Document document}\n * to always contain valid ranges. Its attributes are inherited from the text unless set explicitly.\n *\n * Differences between {@link module:engine/model/selection~Selection} and `DocumentSelection` are:\n * * there is always a range in `DocumentSelection` - even if no ranges were added there is a \"default range\"\n * present in the selection,\n * * ranges added to this selection updates automatically when the document changes,\n * * attributes of `DocumentSelection` are updated automatically according to selection ranges.\n *\n * Since `DocumentSelection` uses {@link module:engine/model/liverange~LiveRange live ranges}\n * and is updated when {@link module:engine/model/document~Document document}\n * changes, it cannot be set on {@link module:engine/model/node~Node nodes}\n * that are inside {@link module:engine/model/documentfragment~DocumentFragment document fragment}.\n * If you need to represent a selection in document fragment,\n * use {@link module:engine/model/selection~Selection Selection class} instead.\n *\n * @mixes module:utils/emittermixin~EmitterMixin\n */\n\nvar DocumentSelection = /*#__PURE__*/function () {\n  /**\n   * Creates an empty live selection for given {@link module:engine/model/document~Document}.\n   *\n   * @param {module:engine/model/document~Document} doc Document which owns this selection.\n   */\n  function DocumentSelection(doc) {\n    _classCallCheck(this, DocumentSelection);\n\n    /**\n     * Selection used internally by that class (`DocumentSelection` is a proxy to that selection).\n     *\n     * @protected\n     */\n    this._selection = new LiveSelection(doc);\n\n    this._selection.delegate('change:range').to(this);\n\n    this._selection.delegate('change:attribute').to(this);\n  }\n  /**\n   * Returns whether the selection is collapsed. Selection is collapsed when there is exactly one range which is\n   * collapsed.\n   *\n   * @readonly\n   * @type {Boolean}\n   */\n\n\n  _createClass(DocumentSelection, [{\n    key: \"getRanges\",\n\n    /**\n     * Returns an iterable that iterates over copies of selection ranges.\n     *\n     * @returns {Iterable.<module:engine/model/range~Range>}\n     */\n    value: function getRanges() {\n      return this._selection.getRanges();\n    }\n    /**\n     * Returns the first position in the selection.\n     * First position is the position that {@link module:engine/model/position~Position#isBefore is before}\n     * any other position in the selection.\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/position~Position|null}\n     */\n\n  }, {\n    key: \"getFirstPosition\",\n    value: function getFirstPosition() {\n      return this._selection.getFirstPosition();\n    }\n    /**\n     * Returns the last position in the selection.\n     * Last position is the position that {@link module:engine/model/position~Position#isAfter is after}\n     * any other position in the selection.\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/position~Position|null}\n     */\n\n  }, {\n    key: \"getLastPosition\",\n    value: function getLastPosition() {\n      return this._selection.getLastPosition();\n    }\n    /**\n     * Returns a copy of the first range in the selection.\n     * First range is the one which {@link module:engine/model/range~Range#start start} position\n     * {@link module:engine/model/position~Position#isBefore is before} start position of all other ranges\n     * (not to confuse with the first range added to the selection).\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/range~Range|null}\n     */\n\n  }, {\n    key: \"getFirstRange\",\n    value: function getFirstRange() {\n      return this._selection.getFirstRange();\n    }\n    /**\n     * Returns a copy of the last range in the selection.\n     * Last range is the one which {@link module:engine/model/range~Range#end end} position\n     * {@link module:engine/model/position~Position#isAfter is after} end position of all other ranges (not to confuse with the range most\n     * recently added to the selection).\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/range~Range|null}\n     */\n\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      return this._selection.getLastRange();\n    }\n    /**\n     * Gets elements of type {@link module:engine/model/schema~Schema#isBlock \"block\"} touched by the selection.\n     *\n     * This method's result can be used for example to apply block styling to all blocks covered by this selection.\n     *\n     * **Note:** `getSelectedBlocks()` returns blocks that are nested in other non-block elements\n     * but will not return blocks nested in other blocks.\n     *\n     * In this case the function will return exactly all 3 paragraphs (note: `<blockQuote>` is not a block itself):\n     *\n     *\t\t<paragraph>[a</paragraph>\n     *\t\t<blockQuote>\n     *\t\t\t<paragraph>b</paragraph>\n     *\t\t</blockQuote>\n     *\t\t<paragraph>c]d</paragraph>\n     *\n     * In this case the paragraph will also be returned, despite the collapsed selection:\n     *\n     *\t\t<paragraph>[]a</paragraph>\n     *\n     * In such a scenario, however, only blocks A, B & E will be returned as blocks C & D are nested in block B:\n     *\n     *\t\t[<blockA></blockA>\n     *\t\t<blockB>\n     *\t\t\t<blockC></blockC>\n     *\t\t\t<blockD></blockD>\n     *\t\t</blockB>\n     *\t\t<blockE></blockE>]\n     *\n     * If the selection is inside a block all the inner blocks (A & B) are returned:\n     *\n     * \t\t<block>\n     *\t\t\t<blockA>[a</blockA>\n     * \t\t\t<blockB>b]</blockB>\n     * \t\t</block>\n     *\n     * **Special case**: If a selection ends at the beginning of a block, that block is not returned as from user perspective\n     * this block wasn't selected. See [#984](https://github.com/ckeditor/ckeditor5-engine/issues/984) for more details.\n     *\n     *\t\t<paragraph>[a</paragraph>\n     *\t\t<paragraph>b</paragraph>\n     *\t\t<paragraph>]c</paragraph> // this block will not be returned\n     *\n     * @returns {Iterable.<module:engine/model/element~Element>}\n     */\n\n  }, {\n    key: \"getSelectedBlocks\",\n    value: function getSelectedBlocks() {\n      return this._selection.getSelectedBlocks();\n    }\n    /**\n     * Returns the selected element. {@link module:engine/model/element~Element Element} is considered as selected if there is only\n     * one range in the selection, and that range contains exactly one element.\n     * Returns `null` if there is no selected element.\n     *\n     * @returns {module:engine/model/element~Element|null}\n     */\n\n  }, {\n    key: \"getSelectedElement\",\n    value: function getSelectedElement() {\n      return this._selection.getSelectedElement();\n    }\n    /**\n     * Checks whether the selection contains the entire content of the given element. This means that selection must start\n     * at a position {@link module:engine/model/position~Position#isTouching touching} the element's start and ends at position\n     * touching the element's end.\n     *\n     * By default, this method will check whether the entire content of the selection's current root is selected.\n     * Useful to check if e.g. the user has just pressed <kbd>Ctrl</kbd> + <kbd>A</kbd>.\n     *\n     * @param {module:engine/model/element~Element} [element=this.anchor.root]\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"containsEntireContent\",\n    value: function containsEntireContent(element) {\n      return this._selection.containsEntireContent(element);\n    }\n    /**\n     * Unbinds all events previously bound by document selection.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this._selection.destroy();\n    }\n    /**\n     * Returns iterable that iterates over this selection's attribute keys.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getAttributeKeys\",\n    value: function getAttributeKeys() {\n      return this._selection.getAttributeKeys();\n    }\n    /**\n     * Returns iterable that iterates over this selection's attributes.\n     *\n     * Attributes are returned as arrays containing two items. First one is attribute key and second is attribute value.\n     * This format is accepted by native `Map` object and also can be passed in `Node` constructor.\n     *\n     * @returns {Iterable.<*>}\n     */\n\n  }, {\n    key: \"getAttributes\",\n    value: function getAttributes() {\n      return this._selection.getAttributes();\n    }\n    /**\n     * Gets an attribute value for given key or `undefined` if that attribute is not set on the selection.\n     *\n     * @param {String} key Key of attribute to look for.\n     * @returns {*} Attribute value or `undefined`.\n     */\n\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(key) {\n      return this._selection.getAttribute(key);\n    }\n    /**\n     * Checks if the selection has an attribute for given key.\n     *\n     * @param {String} key Key of attribute to check.\n     * @returns {Boolean} `true` if attribute with given key is set on selection, `false` otherwise.\n     */\n\n  }, {\n    key: \"hasAttribute\",\n    value: function hasAttribute(key) {\n      return this._selection.hasAttribute(key);\n    }\n    /**\n     * Refreshes selection attributes and markers according to the current position in the model.\n     */\n\n  }, {\n    key: \"refresh\",\n    value: function refresh() {\n      this._selection._updateMarkers();\n\n      this._selection._updateAttributes(false);\n    }\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\tselection.is( 'selection' ); // -> true\n     *\t\tselection.is( 'documentSelection' ); // -> true\n     *\t\tselection.is( 'model:selection' ); // -> true\n     *\t\tselection.is( 'model:documentSelection' ); // -> true\n     *\n     *\t\tselection.is( 'view:selection' ); // -> false\n     *\t\tselection.is( 'element' ); // -> false\n     *\t\tselection.is( 'node' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'selection' || type == 'model:selection' || type == 'documentSelection' || type == 'model:documentSelection';\n    }\n    /**\n     * Moves {@link module:engine/model/documentselection~DocumentSelection#focus} to the specified location.\n     * Should be used only within the {@link module:engine/model/writer~Writer#setSelectionFocus} method.\n     *\n     * The location can be specified in the same form as\n     * {@link module:engine/model/writer~Writer#createPositionAt writer.createPositionAt()} parameters.\n     *\n     * @see module:engine/model/writer~Writer#setSelectionFocus\n     * @protected\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"_setFocus\",\n    value: function _setFocus(itemOrPosition, offset) {\n      this._selection.setFocus(itemOrPosition, offset);\n    }\n    /**\n     * Sets this selection's ranges and direction to the specified location based on the given\n     * {@link module:engine/model/selection~Selectable selectable}.\n     * Should be used only within the {@link module:engine/model/writer~Writer#setSelection} method.\n     *\n     * @see module:engine/model/writer~Writer#setSelection\n     * @protected\n     * @param {module:engine/model/selection~Selectable} selectable\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     */\n\n  }, {\n    key: \"_setTo\",\n    value: function _setTo(selectable, placeOrOffset, options) {\n      this._selection.setTo(selectable, placeOrOffset, options);\n    }\n    /**\n     * Sets attribute on the selection. If attribute with the same key already is set, it's value is overwritten.\n     * Should be used only within the {@link module:engine/model/writer~Writer#setSelectionAttribute} method.\n     *\n     * @see module:engine/model/writer~Writer#setSelectionAttribute\n     * @protected\n     * @param {String} key Key of the attribute to set.\n     * @param {*} value Attribute value.\n     */\n\n  }, {\n    key: \"_setAttribute\",\n    value: function _setAttribute(key, value) {\n      this._selection.setAttribute(key, value);\n    }\n    /**\n     * Removes an attribute with given key from the selection.\n     * If the given attribute was set on the selection, fires the {@link module:engine/model/selection~Selection#event:change:range}\n     * event with removed attribute key.\n     * Should be used only within the {@link module:engine/model/writer~Writer#removeSelectionAttribute} method.\n     *\n     * @see module:engine/model/writer~Writer#removeSelectionAttribute\n     * @protected\n     * @param {String} key Key of the attribute to remove.\n     */\n\n  }, {\n    key: \"_removeAttribute\",\n    value: function _removeAttribute(key) {\n      this._selection.removeAttribute(key);\n    }\n    /**\n     * Returns an iterable that iterates through all selection attributes stored in current selection's parent.\n     *\n     * @protected\n     * @returns {Iterable.<*>}\n     */\n\n  }, {\n    key: \"_getStoredAttributes\",\n    value: function _getStoredAttributes() {\n      return this._selection._getStoredAttributes();\n    }\n    /**\n     * Temporarily changes the gravity of the selection from the left to the right.\n     *\n     * The gravity defines from which direction the selection inherits its attributes. If it's the default left\n     * gravity, the selection (after being moved by the the user) inherits attributes from its left hand side.\n     * This method allows to temporarily override this behavior by forcing the gravity to the right.\n     *\n     * It returns an unique identifier which is required to restore the gravity. It guarantees the symmetry\n     * of the process.\n     *\n     * @see module:engine/model/writer~Writer#overrideSelectionGravity\n     * @protected\n     * @returns {String} The unique id which allows restoring the gravity.\n     */\n\n  }, {\n    key: \"_overrideGravity\",\n    value: function _overrideGravity() {\n      return this._selection.overrideGravity();\n    }\n    /**\n     * Restores the {@link ~DocumentSelection#_overrideGravity overridden gravity}.\n     *\n     * Restoring the gravity is only possible using the unique identifier returned by\n     * {@link ~DocumentSelection#_overrideGravity}. Note that the gravity remains overridden as long as won't be restored\n     * the same number of times it was overridden.\n     *\n     * @see module:engine/model/writer~Writer#restoreSelectionGravity\n     * @protected\n     * @param {String} uid The unique id returned by {@link #_overrideGravity}.\n     */\n\n  }, {\n    key: \"_restoreGravity\",\n    value: function _restoreGravity(uid) {\n      this._selection.restoreGravity(uid);\n    }\n    /**\n     * Generates and returns an attribute key for selection attributes store, basing on original attribute key.\n     *\n     * @protected\n     * @param {String} key Attribute key to convert.\n     * @returns {String} Converted attribute key, applicable for selection store.\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    get: function get() {\n      return this._selection.isCollapsed;\n    }\n    /**\n     * Selection anchor. Anchor may be described as a position where the most recent part of the selection starts.\n     * Together with {@link #focus} they define the direction of selection, which is important\n     * when expanding/shrinking selection. Anchor is always {@link module:engine/model/range~Range#start start} or\n     * {@link module:engine/model/range~Range#end end} position of the most recently added range.\n     *\n     * Is set to `null` if there are no ranges in selection.\n     *\n     * @see #focus\n     * @readonly\n     * @type {module:engine/model/position~Position|null}\n     */\n\n  }, {\n    key: \"anchor\",\n    get: function get() {\n      return this._selection.anchor;\n    }\n    /**\n     * Selection focus. Focus is a position where the selection ends.\n     *\n     * Is set to `null` if there are no ranges in selection.\n     *\n     * @see #anchor\n     * @readonly\n     * @type {module:engine/model/position~Position|null}\n     */\n\n  }, {\n    key: \"focus\",\n    get: function get() {\n      return this._selection.focus;\n    }\n    /**\n     * Returns number of ranges in selection.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"rangeCount\",\n    get: function get() {\n      return this._selection.rangeCount;\n    }\n    /**\n     * Describes whether `Documentselection` has own range(s) set, or if it is defaulted to\n     * {@link module:engine/model/document~Document#_getDefaultRange document's default range}.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"hasOwnRange\",\n    get: function get() {\n      return this._selection.hasOwnRange;\n    }\n    /**\n     * Specifies whether the {@link #focus}\n     * precedes {@link #anchor}.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isBackward\",\n    get: function get() {\n      return this._selection.isBackward;\n    }\n    /**\n     * Describes whether the gravity is overridden (using {@link module:engine/model/writer~Writer#overrideSelectionGravity}) or not.\n     *\n     * Note that the gravity remains overridden as long as will not be restored the same number of times as it was overridden.\n     *\n     * @readonly\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isGravityOverridden\",\n    get: function get() {\n      return this._selection.isGravityOverridden;\n    }\n    /**\n     * A collection of selection markers.\n     * Marker is a selection marker when selection range is inside the marker range.\n     *\n     * @readonly\n     * @type {module:utils/collection~Collection.<module:engine/model/markercollection~Marker>}\n     */\n\n  }, {\n    key: \"markers\",\n    get: function get() {\n      return this._selection.markers;\n    }\n    /**\n     * Used for the compatibility with the {@link module:engine/model/selection~Selection#isEqual} method.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_ranges\",\n    get: function get() {\n      return this._selection._ranges;\n    }\n  }], [{\n    key: \"_getStoreAttributeKey\",\n    value: function _getStoreAttributeKey(key) {\n      return storePrefix + key;\n    }\n    /**\n     * Checks whether the given attribute key is an attribute stored on an element.\n     *\n     * @protected\n     * @param {String} key\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_isStoreAttributeKey\",\n    value: function _isStoreAttributeKey(key) {\n      return key.startsWith(storePrefix);\n    }\n  }]);\n\n  return DocumentSelection;\n}();\n\nexport { DocumentSelection as default };\nmix(DocumentSelection, EmitterMixin);\n/**\n * Fired when selection range(s) changed.\n *\n * @event change:range\n * @param {Boolean} directChange In case of {@link module:engine/model/selection~Selection} class it is always set\n * to `true` which indicates that the selection change was caused by a direct use of selection's API.\n * The {@link module:engine/model/documentselection~DocumentSelection}, however, may change because its position\n * was directly changed through the {@link module:engine/model/writer~Writer writer} or because its position was\n * changed because the structure of the model has been changed (which means an indirect change).\n * The indirect change does not occur in case of normal (detached) selections because they are \"static\" (as \"not live\")\n * which mean that they are not updated once the document changes.\n */\n\n/**\n * Fired when selection attribute changed.\n *\n * @event change:attribute\n * @param {Boolean} directChange In case of {@link module:engine/model/selection~Selection} class it is always set\n * to `true` which indicates that the selection change was caused by a direct use of selection's API.\n * The {@link module:engine/model/documentselection~DocumentSelection}, however, may change because its attributes\n * were directly changed through the {@link module:engine/model/writer~Writer writer} or because its position was\n * changed in the model and its attributes were refreshed (which means an indirect change).\n * The indirect change does not occur in case of normal (detached) selections because they are \"static\" (as \"not live\")\n * which mean that they are not updated once the document changes.\n * @param {Array.<String>} attributeKeys Array containing keys of attributes that changed.\n */\n// `LiveSelection` is used internally by {@link module:engine/model/documentselection~DocumentSelection} and shouldn't be used directly.\n//\n// LiveSelection` is automatically updated upon changes in the {@link module:engine/model/document~Document document}\n// to always contain valid ranges. Its attributes are inherited from the text unless set explicitly.\n//\n// Differences between {@link module:engine/model/selection~Selection} and `LiveSelection` are:\n// * there is always a range in `LiveSelection` - even if no ranges were added there is a \"default range\"\n// present in the selection,\n// * ranges added to this selection updates automatically when the document changes,\n// * attributes of `LiveSelection` are updated automatically according to selection ranges.\n//\n// @extends module:engine/model/selection~Selection\n//\n\nvar LiveSelection = /*#__PURE__*/function (_Selection) {\n  _inherits(LiveSelection, _Selection);\n\n  var _super = _createSuper(LiveSelection);\n\n  // Creates an empty live selection for given {@link module:engine/model/document~Document}.\n  // @param {module:engine/model/document~Document} doc Document which owns this selection.\n  function LiveSelection(doc) {\n    var _this;\n\n    _classCallCheck(this, LiveSelection);\n\n    _this = _super.call(this); // List of selection markers.\n    // Marker is a selection marker when selection range is inside the marker range.\n    //\n    // @type {module:utils/collection~Collection}\n\n    _this.markers = new Collection({\n      idProperty: 'name'\n    }); // Document which owns this selection.\n    //\n    // @protected\n    // @member {module:engine/model/model~Model}\n\n    _this._model = doc.model; // Document which owns this selection.\n    //\n    // @protected\n    // @member {module:engine/model/document~Document}\n\n    _this._document = doc; // Keeps mapping of attribute name to priority with which the attribute got modified (added/changed/removed)\n    // last time. Possible values of priority are: `'low'` and `'normal'`.\n    //\n    // Priorities are used by internal `LiveSelection` mechanisms. All attributes set using `LiveSelection`\n    // attributes API are set with `'normal'` priority.\n    //\n    // @private\n    // @member {Map} module:engine/model/liveselection~LiveSelection#_attributePriority\n\n    _this._attributePriority = new Map(); // Contains data required to fix ranges which have been moved to the graveyard.\n    // @private\n    // @member {Array} module:engine/model/liveselection~LiveSelection#_fixGraveyardRangesData\n\n    _this._fixGraveyardRangesData = []; // Flag that informs whether the selection ranges have changed. It is changed on true when `LiveRange#change:range` event is fired.\n    // @private\n    // @member {Array} module:engine/model/liveselection~LiveSelection#_hasChangedRange\n\n    _this._hasChangedRange = false; // Each overriding gravity adds an UID to the set and each removal removes it.\n    // Gravity is overridden when there's at least one UID in the set.\n    // Gravity is restored when the set is empty.\n    // This is to prevent conflicts when gravity is overridden by more than one feature at the same time.\n    // @private\n    // @type {Set}\n\n    _this._overriddenGravityRegister = new Set(); // Ensure selection is correct after each operation.\n\n    _this.listenTo(_this._model, 'applyOperation', function (evt, args) {\n      var operation = args[0];\n\n      if (!operation.isDocumentOperation || operation.type == 'marker' || operation.type == 'rename' || operation.type == 'noop') {\n        return;\n      }\n\n      while (_this._fixGraveyardRangesData.length) {\n        var _this$_fixGraveyardRa = _this._fixGraveyardRangesData.shift(),\n            liveRange = _this$_fixGraveyardRa.liveRange,\n            sourcePosition = _this$_fixGraveyardRa.sourcePosition;\n\n        _this._fixGraveyardSelection(liveRange, sourcePosition);\n      }\n\n      if (_this._hasChangedRange) {\n        _this._hasChangedRange = false;\n\n        _this.fire('change:range', {\n          directChange: false\n        });\n      }\n    }, {\n      priority: 'lowest'\n    }); // Ensure selection is correct and up to date after each range change.\n\n\n    _this.on('change:range', function () {\n      var _iterator = _createForOfIteratorHelper(_this.getRanges()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var range = _step.value;\n\n          if (!_this._document._validateSelectionRange(range)) {\n            /**\n             * Range from {@link module:engine/model/documentselection~DocumentSelection document selection}\n             * starts or ends at incorrect position.\n             *\n             * @error document-selection-wrong-position\n             * @param {module:engine/model/range~Range} range\n             */\n            throw new CKEditorError('document-selection-wrong-position: Range from document selection starts or ends at incorrect position.', _assertThisInitialized(_this), {\n              range: range\n            });\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }); // Update markers data stored by the selection after each marker change.\n\n\n    _this.listenTo(_this._model.markers, 'update', function () {\n      return _this._updateMarkers();\n    }); // Ensure selection is up to date after each change block.\n\n\n    _this.listenTo(_this._document, 'change', function (evt, batch) {\n      clearAttributesStoredInElement(_this._model, batch);\n    });\n\n    return _this;\n  }\n\n  _createClass(LiveSelection, [{\n    key: \"destroy\",\n    // Unbinds all events previously bound by live selection.\n    value: function destroy() {\n      for (var i = 0; i < this._ranges.length; i++) {\n        this._ranges[i].detach();\n      }\n\n      this.stopListening();\n    }\n  }, {\n    key: \"getRanges\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getRanges() {\n      return regeneratorRuntime.wrap(function getRanges$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              if (!this._ranges.length) {\n                _context.next = 4;\n                break;\n              }\n\n              return _context.delegateYield(_get(_getPrototypeOf(LiveSelection.prototype), \"getRanges\", this).call(this), \"t0\", 2);\n\n            case 2:\n              _context.next = 6;\n              break;\n\n            case 4:\n              _context.next = 6;\n              return this._document._getDefaultRange();\n\n            case 6:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, getRanges, this);\n    })\n  }, {\n    key: \"getFirstRange\",\n    value: function getFirstRange() {\n      return _get(_getPrototypeOf(LiveSelection.prototype), \"getFirstRange\", this).call(this) || this._document._getDefaultRange();\n    }\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      return _get(_getPrototypeOf(LiveSelection.prototype), \"getLastRange\", this).call(this) || this._document._getDefaultRange();\n    }\n  }, {\n    key: \"setTo\",\n    value: function setTo(selectable, optionsOrPlaceOrOffset, options) {\n      _get(_getPrototypeOf(LiveSelection.prototype), \"setTo\", this).call(this, selectable, optionsOrPlaceOrOffset, options);\n\n      this._updateAttributes(true);\n    }\n  }, {\n    key: \"setFocus\",\n    value: function setFocus(itemOrPosition, offset) {\n      _get(_getPrototypeOf(LiveSelection.prototype), \"setFocus\", this).call(this, itemOrPosition, offset);\n\n      this._updateAttributes(true);\n    }\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(key, value) {\n      if (this._setAttribute(key, value)) {\n        // Fire event with exact data.\n        var attributeKeys = [key];\n        this.fire('change:attribute', {\n          attributeKeys: attributeKeys,\n          directChange: true\n        });\n      }\n    }\n  }, {\n    key: \"removeAttribute\",\n    value: function removeAttribute(key) {\n      if (this._removeAttribute(key)) {\n        // Fire event with exact data.\n        var attributeKeys = [key];\n        this.fire('change:attribute', {\n          attributeKeys: attributeKeys,\n          directChange: true\n        });\n      }\n    }\n  }, {\n    key: \"overrideGravity\",\n    value: function overrideGravity() {\n      var overrideUid = uid(); // Remember that another overriding has been requested. It will need to be removed\n      // before the gravity is to be restored.\n\n      this._overriddenGravityRegister.add(overrideUid);\n\n      if (this._overriddenGravityRegister.size === 1) {\n        this._updateAttributes(true);\n      }\n\n      return overrideUid;\n    }\n  }, {\n    key: \"restoreGravity\",\n    value: function restoreGravity(uid) {\n      if (!this._overriddenGravityRegister.has(uid)) {\n        /**\n         * Restoring gravity for an unknown UID is not possible. Make sure you are using a correct\n         * UID obtained from the {@link module:engine/model/writer~Writer#overrideSelectionGravity} to restore.\n         *\n         * @error document-selection-gravity-wrong-restore\n         * @param {String} uid The unique identifier returned by\n         * {@link module:engine/model/documentselection~DocumentSelection#_overrideGravity}.\n         */\n        throw new CKEditorError('document-selection-gravity-wrong-restore: Attempting to restore the selection gravity for an unknown UID.', this, {\n          uid: uid\n        });\n      }\n\n      this._overriddenGravityRegister.delete(uid); // Restore gravity only when all overriding have been restored.\n\n\n      if (!this.isGravityOverridden) {\n        this._updateAttributes(true);\n      }\n    }\n  }, {\n    key: \"_popRange\",\n    value: function _popRange() {\n      this._ranges.pop().detach();\n    }\n  }, {\n    key: \"_pushRange\",\n    value: function _pushRange(range) {\n      var liveRange = this._prepareRange(range); // `undefined` is returned when given `range` is in graveyard root.\n\n\n      if (liveRange) {\n        this._ranges.push(liveRange);\n      }\n    } // Prepares given range to be added to selection. Checks if it is correct,\n    // converts it to {@link module:engine/model/liverange~LiveRange LiveRange}\n    // and sets listeners listening to the range's change event.\n    //\n    // @private\n    // @param {module:engine/model/range~Range} range\n\n  }, {\n    key: \"_prepareRange\",\n    value: function _prepareRange(range) {\n      var _this2 = this;\n\n      this._checkRange(range);\n\n      if (range.root == this._document.graveyard) {\n        // @if CK_DEBUG // console.warn( 'Trying to add a Range that is in the graveyard root. Range rejected.' );\n        return;\n      }\n\n      var liveRange = LiveRange.fromRange(range);\n      liveRange.on('change:range', function (evt, oldRange, data) {\n        _this2._hasChangedRange = true; // If `LiveRange` is in whole moved to the graveyard, save necessary data. It will be fixed on `Model#applyOperation` event.\n\n        if (liveRange.root == _this2._document.graveyard) {\n          _this2._fixGraveyardRangesData.push({\n            liveRange: liveRange,\n            sourcePosition: data.deletionPosition\n          });\n        }\n      });\n      return liveRange;\n    }\n  }, {\n    key: \"_updateMarkers\",\n    value: function _updateMarkers() {\n      var markers = [];\n\n      var _iterator2 = _createForOfIteratorHelper(this._model.markers),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var _marker2 = _step2.value;\n\n          var markerRange = _marker2.getRange();\n\n          var _iterator3 = _createForOfIteratorHelper(this.getRanges()),\n              _step3;\n\n          try {\n            for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n              var selectionRange = _step3.value;\n\n              if (markerRange.containsRange(selectionRange, !selectionRange.isCollapsed)) {\n                markers.push(_marker2);\n              }\n            }\n          } catch (err) {\n            _iterator3.e(err);\n          } finally {\n            _iterator3.f();\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      for (var _i = 0, _markers = markers; _i < _markers.length; _i++) {\n        var marker = _markers[_i];\n\n        if (!this.markers.has(marker)) {\n          this.markers.add(marker);\n        }\n      }\n\n      for (var _i2 = 0, _Array$from = Array.from(this.markers); _i2 < _Array$from.length; _i2++) {\n        var _marker = _Array$from[_i2];\n\n        if (!markers.includes(_marker)) {\n          this.markers.remove(_marker);\n        }\n      }\n    } // Updates this selection attributes according to its ranges and the {@link module:engine/model/document~Document model document}.\n    //\n    // @protected\n    // @param {Boolean} clearAll\n    // @fires change:attribute\n\n  }, {\n    key: \"_updateAttributes\",\n    value: function _updateAttributes(clearAll) {\n      var newAttributes = toMap(this._getSurroundingAttributes());\n      var oldAttributes = toMap(this.getAttributes());\n\n      if (clearAll) {\n        // If `clearAll` remove all attributes and reset priorities.\n        this._attributePriority = new Map();\n        this._attrs = new Map();\n      } else {\n        // If not, remove only attributes added with `low` priority.\n        var _iterator4 = _createForOfIteratorHelper(this._attributePriority),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var _step4$value = _slicedToArray(_step4.value, 2),\n                key = _step4$value[0],\n                priority = _step4$value[1];\n\n            if (priority == 'low') {\n              this._attrs.delete(key);\n\n              this._attributePriority.delete(key);\n            }\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n      }\n\n      this._setAttributesTo(newAttributes); // Let's evaluate which attributes really changed.\n\n\n      var changed = []; // First, loop through all attributes that are set on selection right now.\n      // Check which of them are different than old attributes.\n\n      var _iterator5 = _createForOfIteratorHelper(this.getAttributes()),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var _step5$value = _slicedToArray(_step5.value, 2),\n              newKey = _step5$value[0],\n              newValue = _step5$value[1];\n\n          if (!oldAttributes.has(newKey) || oldAttributes.get(newKey) !== newValue) {\n            changed.push(newKey);\n          }\n        } // Then, check which of old attributes got removed.\n\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      var _iterator6 = _createForOfIteratorHelper(oldAttributes),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var _step6$value = _slicedToArray(_step6.value, 1),\n              oldKey = _step6$value[0];\n\n          if (!this.hasAttribute(oldKey)) {\n            changed.push(oldKey);\n          }\n        } // Fire event with exact data (fire only if anything changed).\n\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      if (changed.length > 0) {\n        this.fire('change:attribute', {\n          attributeKeys: changed,\n          directChange: false\n        });\n      }\n    } // Internal method for setting `LiveSelection` attribute. Supports attribute priorities (through `directChange`\n    // parameter).\n    //\n    // @private\n    // @param {String} key Attribute key.\n    // @param {*} value Attribute value.\n    // @param {Boolean} [directChange=true] `true` if the change is caused by `Selection` API, `false` if change\n    // is caused by `Batch` API.\n    // @returns {Boolean} Whether value has changed.\n\n  }, {\n    key: \"_setAttribute\",\n    value: function _setAttribute(key, value) {\n      var directChange = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n      var priority = directChange ? 'normal' : 'low';\n\n      if (priority == 'low' && this._attributePriority.get(key) == 'normal') {\n        // Priority too low.\n        return false;\n      }\n\n      var oldValue = _get(_getPrototypeOf(LiveSelection.prototype), \"getAttribute\", this).call(this, key); // Don't do anything if value has not changed.\n\n\n      if (oldValue === value) {\n        return false;\n      }\n\n      this._attrs.set(key, value); // Update priorities map.\n\n\n      this._attributePriority.set(key, priority);\n\n      return true;\n    } // Internal method for removing `LiveSelection` attribute. Supports attribute priorities (through `directChange`\n    // parameter).\n    //\n    // NOTE: Even if attribute is not present in the selection but is provided to this method, it's priority will\n    // be changed according to `directChange` parameter.\n    //\n    // @private\n    // @param {String} key Attribute key.\n    // @param {Boolean} [directChange=true] `true` if the change is caused by `Selection` API, `false` if change\n    // is caused by `Batch` API.\n    // @returns {Boolean} Whether attribute was removed. May not be true if such attributes didn't exist or the\n    // existing attribute had higher priority.\n\n  }, {\n    key: \"_removeAttribute\",\n    value: function _removeAttribute(key) {\n      var directChange = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n      var priority = directChange ? 'normal' : 'low';\n\n      if (priority == 'low' && this._attributePriority.get(key) == 'normal') {\n        // Priority too low.\n        return false;\n      } // Update priorities map.\n\n\n      this._attributePriority.set(key, priority); // Don't do anything if value has not changed.\n\n\n      if (!_get(_getPrototypeOf(LiveSelection.prototype), \"hasAttribute\", this).call(this, key)) {\n        return false;\n      }\n\n      this._attrs.delete(key);\n\n      return true;\n    } // Internal method for setting multiple `LiveSelection` attributes. Supports attribute priorities (through\n    // `directChange` parameter).\n    //\n    // @private\n    // @param {Map.<String,*>} attrs Iterable object containing attributes to be set.\n    // @returns {Set.<String>} Changed attribute keys.\n\n  }, {\n    key: \"_setAttributesTo\",\n    value: function _setAttributesTo(attrs) {\n      var changed = new Set();\n\n      var _iterator7 = _createForOfIteratorHelper(this.getAttributes()),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var _step7$value = _slicedToArray(_step7.value, 2),\n              oldKey = _step7$value[0],\n              oldValue = _step7$value[1];\n\n          // Do not remove attribute if attribute with same key and value is about to be set.\n          if (attrs.get(oldKey) === oldValue) {\n            continue;\n          } // All rest attributes will be removed so changed attributes won't change .\n\n\n          this._removeAttribute(oldKey, false);\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n\n      var _iterator8 = _createForOfIteratorHelper(attrs),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var _step8$value = _slicedToArray(_step8.value, 2),\n              key = _step8$value[0],\n              value = _step8$value[1];\n\n          // Attribute may not be set because of attributes or because same key/value is already added.\n          var gotAdded = this._setAttribute(key, value, false);\n\n          if (gotAdded) {\n            changed.add(key);\n          }\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      return changed;\n    } // Returns an iterable that iterates through all selection attributes stored in current selection's parent.\n    //\n    // @protected\n    // @returns {Iterable.<*>}\n\n  }, {\n    key: \"_getStoredAttributes\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function _getStoredAttributes() {\n      var selectionParent, _iterator9, _step9, key, realKey;\n\n      return regeneratorRuntime.wrap(function _getStoredAttributes$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              selectionParent = this.getFirstPosition().parent;\n\n              if (!(this.isCollapsed && selectionParent.isEmpty)) {\n                _context2.next = 21;\n                break;\n              }\n\n              _iterator9 = _createForOfIteratorHelper(selectionParent.getAttributeKeys());\n              _context2.prev = 3;\n\n              _iterator9.s();\n\n            case 5:\n              if ((_step9 = _iterator9.n()).done) {\n                _context2.next = 13;\n                break;\n              }\n\n              key = _step9.value;\n\n              if (!key.startsWith(storePrefix)) {\n                _context2.next = 11;\n                break;\n              }\n\n              realKey = key.substr(storePrefix.length);\n              _context2.next = 11;\n              return [realKey, selectionParent.getAttribute(key)];\n\n            case 11:\n              _context2.next = 5;\n              break;\n\n            case 13:\n              _context2.next = 18;\n              break;\n\n            case 15:\n              _context2.prev = 15;\n              _context2.t0 = _context2[\"catch\"](3);\n\n              _iterator9.e(_context2.t0);\n\n            case 18:\n              _context2.prev = 18;\n\n              _iterator9.f();\n\n              return _context2.finish(18);\n\n            case 21:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, _getStoredAttributes, this, [[3, 15, 18, 21]]);\n    }) // Checks model text nodes that are closest to the selection's first position and returns attributes of first\n    // found element. If there are no text nodes in selection's first position parent, it returns selection\n    // attributes stored in that parent.\n    //\n    // @private\n    // @returns {Iterable.<*>} Collection of attributes.\n\n  }, {\n    key: \"_getSurroundingAttributes\",\n    value: function _getSurroundingAttributes() {\n      var position = this.getFirstPosition();\n      var schema = this._model.schema;\n      var attrs = null;\n\n      if (!this.isCollapsed) {\n        // 1. If selection is a range...\n        var range = this.getFirstRange(); // ...look for a first character node in that range and take attributes from it.\n\n        var _iterator10 = _createForOfIteratorHelper(range),\n            _step10;\n\n        try {\n          for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n            var value = _step10.value;\n\n            // If the item is an object, we don't want to get attributes from its children.\n            if (value.item.is('element') && schema.isObject(value.item)) {\n              break;\n            }\n\n            if (value.type == 'text') {\n              attrs = value.item.getAttributes();\n              break;\n            }\n          }\n        } catch (err) {\n          _iterator10.e(err);\n        } finally {\n          _iterator10.f();\n        }\n      } else {\n        // 2. If the selection is a caret or the range does not contain a character node...\n        var nodeBefore = position.textNode ? position.textNode : position.nodeBefore;\n        var nodeAfter = position.textNode ? position.textNode : position.nodeAfter; // When gravity is overridden then don't take node before into consideration.\n\n        if (!this.isGravityOverridden) {\n          // ...look at the node before caret and take attributes from it if it is a character node.\n          attrs = getAttrsIfCharacter(nodeBefore);\n        } // 3. If not, look at the node after caret...\n\n\n        if (!attrs) {\n          attrs = getAttrsIfCharacter(nodeAfter);\n        } // 4. If not, try to find the first character on the left, that is in the same node.\n        // When gravity is overridden then don't take node before into consideration.\n\n\n        if (!this.isGravityOverridden && !attrs) {\n          var node = nodeBefore;\n\n          while (node && !attrs) {\n            node = node.previousSibling;\n            attrs = getAttrsIfCharacter(node);\n          }\n        } // 5. If not found, try to find the first character on the right, that is in the same node.\n\n\n        if (!attrs) {\n          var _node = nodeAfter;\n\n          while (_node && !attrs) {\n            _node = _node.nextSibling;\n            attrs = getAttrsIfCharacter(_node);\n          }\n        } // 6. If not found, selection should retrieve attributes from parent.\n\n\n        if (!attrs) {\n          attrs = this._getStoredAttributes();\n        }\n      }\n\n      return attrs;\n    } // Fixes a selection range after it ends up in graveyard root.\n    //\n    // @private\n    // @param {module:engine/model/liverange~LiveRange} liveRange The range from selection, that ended up in the graveyard root.\n    // @param {module:engine/model/position~Position} removedRangeStart Start position of a range which was removed.\n\n  }, {\n    key: \"_fixGraveyardSelection\",\n    value: function _fixGraveyardSelection(liveRange, removedRangeStart) {\n      // The start of the removed range is the closest position to the `liveRange` - the original selection range.\n      // This is a good candidate for a fixed selection range.\n      var positionCandidate = removedRangeStart.clone(); // Find a range that is a correct selection range and is closest to the start of removed range.\n\n      var selectionRange = this._model.schema.getNearestSelectionRange(positionCandidate); // Remove the old selection range before preparing and adding new selection range. This order is important,\n      // because new range, in some cases, may intersect with old range (it depends on `getNearestSelectionRange()` result).\n\n\n      var index = this._ranges.indexOf(liveRange);\n\n      this._ranges.splice(index, 1);\n\n      liveRange.detach(); // If nearest valid selection range has been found - add it in the place of old range.\n\n      if (selectionRange) {\n        // Check the range, convert it to live range, bind events, etc.\n        var newRange = this._prepareRange(selectionRange); // Add new range in the place of old range.\n\n\n        this._ranges.splice(index, 0, newRange);\n      } // If nearest valid selection range cannot be found - just removing the old range is fine.\n\n    }\n  }, {\n    key: \"isCollapsed\",\n    get: function get() {\n      var length = this._ranges.length;\n      return length === 0 ? this._document._getDefaultRange().isCollapsed : _get(_getPrototypeOf(LiveSelection.prototype), \"isCollapsed\", this);\n    }\n  }, {\n    key: \"anchor\",\n    get: function get() {\n      return _get(_getPrototypeOf(LiveSelection.prototype), \"anchor\", this) || this._document._getDefaultRange().start;\n    }\n  }, {\n    key: \"focus\",\n    get: function get() {\n      return _get(_getPrototypeOf(LiveSelection.prototype), \"focus\", this) || this._document._getDefaultRange().end;\n    }\n  }, {\n    key: \"rangeCount\",\n    get: function get() {\n      return this._ranges.length ? this._ranges.length : 1;\n    } // Describes whether `LiveSelection` has own range(s) set, or if it is defaulted to\n    // {@link module:engine/model/document~Document#_getDefaultRange document's default range}.\n    //\n    // @readonly\n    // @type {Boolean}\n\n  }, {\n    key: \"hasOwnRange\",\n    get: function get() {\n      return this._ranges.length > 0;\n    } // When set to `true` then selection attributes on node before the caret won't be taken\n    // into consideration while updating selection attributes.\n    //\n    // @protected\n    // @type {Boolean}\n\n  }, {\n    key: \"isGravityOverridden\",\n    get: function get() {\n      return !!this._overriddenGravityRegister.size;\n    }\n  }]);\n\n  return LiveSelection;\n}(Selection); // Helper function for {@link module:engine/model/liveselection~LiveSelection#_updateAttributes}.\n//\n// It takes model item, checks whether it is a text node (or text proxy) and, if so, returns it's attributes. If not, returns `null`.\n//\n// @param {module:engine/model/item~Item|null}  node\n// @returns {Boolean}\n\n\nfunction getAttrsIfCharacter(node) {\n  if (node instanceof TextProxy || node instanceof Text) {\n    return node.getAttributes();\n  }\n\n  return null;\n} // Removes selection attributes from element which is not empty anymore.\n//\n// @private\n// @param {module:engine/model/model~Model} model\n// @param {module:engine/model/batch~Batch} batch\n\n\nfunction clearAttributesStoredInElement(model, batch) {\n  var differ = model.document.differ;\n\n  var _iterator11 = _createForOfIteratorHelper(differ.getChanges()),\n      _step11;\n\n  try {\n    var _loop = function _loop() {\n      var entry = _step11.value;\n\n      if (entry.type != 'insert') {\n        return \"continue\";\n      }\n\n      var changeParent = entry.position.parent;\n      var isNoLongerEmpty = entry.length === changeParent.maxOffset;\n\n      if (isNoLongerEmpty) {\n        model.enqueueChange(batch, function (writer) {\n          var storedAttributes = Array.from(changeParent.getAttributeKeys()).filter(function (key) {\n            return key.startsWith(storePrefix);\n          });\n\n          var _iterator12 = _createForOfIteratorHelper(storedAttributes),\n              _step12;\n\n          try {\n            for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n              var key = _step12.value;\n              writer.removeAttribute(key, changeParent);\n            }\n          } catch (err) {\n            _iterator12.e(err);\n          } finally {\n            _iterator12.f();\n          }\n        });\n      }\n    };\n\n    for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n      var _ret = _loop();\n\n      if (_ret === \"continue\") continue;\n    }\n  } catch (err) {\n    _iterator11.e(err);\n  } finally {\n    _iterator11.f();\n  }\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/element\n */\nimport Node from \"./node\";\nimport NodeList from \"./nodelist\";\nimport Text from \"./text\";\nimport TextProxy from \"./textproxy\";\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\n/**\n * Model element. Type of {@link module:engine/model/node~Node node} that has a {@link module:engine/model/element~Element#name name} and\n * {@link module:engine/model/element~Element#getChildren child nodes}.\n *\n * **Important**: see {@link module:engine/model/node~Node} to read about restrictions using `Element` and `Node` API.\n *\n * @extends module:engine/model/node~Node\n */\n\nvar Element = /*#__PURE__*/function (_Node) {\n  _inherits(Element, _Node);\n\n  var _super = _createSuper(Element);\n\n  /**\n   * Creates a model element.\n   *\n   * **Note:** Constructor of this class shouldn't be used directly in the code.\n   * Use the {@link module:engine/model/writer~Writer#createElement} method instead.\n   *\n   * @protected\n   * @param {String} name Element's name.\n   * @param {Object} [attrs] Element's attributes. See {@link module:utils/tomap~toMap} for a list of accepted values.\n   * @param {module:engine/model/node~Node|Iterable.<module:engine/model/node~Node>} [children]\n   * One or more nodes to be inserted as children of created element.\n   */\n  function Element(name, attrs, children) {\n    var _this;\n\n    _classCallCheck(this, Element);\n\n    _this = _super.call(this, attrs);\n    /**\n     * Element name.\n     *\n     * @readonly\n     * @member {String} module:engine/model/element~Element#name\n     */\n\n    _this.name = name;\n    /**\n     * List of children nodes.\n     *\n     * @private\n     * @member {module:engine/model/nodelist~NodeList} module:engine/model/element~Element#_children\n     */\n\n    _this._children = new NodeList();\n\n    if (children) {\n      _this._insertChild(0, children);\n    }\n\n    return _this;\n  }\n  /**\n   * Number of this element's children.\n   *\n   * @readonly\n   * @type {Number}\n   */\n\n\n  _createClass(Element, [{\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\telement.is( 'element' ); // -> true\n     *\t\telement.is( 'node' ); // -> true\n     *\t\telement.is( 'model:element' ); // -> true\n     *\t\telement.is( 'model:node' ); // -> true\n     *\n     *\t\telement.is( 'view:element' ); // -> false\n     *\t\telement.is( 'documentSelection' ); // -> false\n     *\n     * Assuming that the object being checked is an element, you can also check its\n     * {@link module:engine/model/element~Element#name name}:\n     *\n     *\t\telement.is( 'image' ); // -> true if this is an <image> element\n     *\t\telement.is( 'element', 'image' ); // -> same as above\n     *\t\ttext.is( 'image' ); -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type Type to check when `name` parameter is present.\n     * Otherwise, it acts like the `name` parameter.\n     * @param {String} [name] Element name.\n     * @returns {Boolean}\n     */\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type.replace(/^model:/, '');\n\n      if (!name) {\n        return cutType == 'element' || cutType == this.name || _get(_getPrototypeOf(Element.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'element' && name == this.name;\n      }\n    }\n    /**\n     * Gets the child at the given index.\n     *\n     * @param {Number} index Index of child.\n     * @returns {module:engine/model/node~Node} Child node.\n     */\n\n  }, {\n    key: \"getChild\",\n    value: function getChild(index) {\n      return this._children.getNode(index);\n    }\n    /**\n     * Returns an iterator that iterates over all of this element's children.\n     *\n     * @returns {Iterable.<module:engine/model/node~Node>}\n     */\n\n  }, {\n    key: \"getChildren\",\n    value: function getChildren() {\n      return this._children[Symbol.iterator]();\n    }\n    /**\n     * Returns an index of the given child node. Returns `null` if given node is not a child of this element.\n     *\n     * @param {module:engine/model/node~Node} node Child node to look for.\n     * @returns {Number} Child node's index in this element.\n     */\n\n  }, {\n    key: \"getChildIndex\",\n    value: function getChildIndex(node) {\n      return this._children.getNodeIndex(node);\n    }\n    /**\n     * Returns the starting offset of given child. Starting offset is equal to the sum of\n     * {@link module:engine/model/node~Node#offsetSize offset sizes} of all node's siblings that are before it. Returns `null` if\n     * given node is not a child of this element.\n     *\n     * @param {module:engine/model/node~Node} node Child node to look for.\n     * @returns {Number} Child node's starting offset.\n     */\n\n  }, {\n    key: \"getChildStartOffset\",\n    value: function getChildStartOffset(node) {\n      return this._children.getNodeStartOffset(node);\n    }\n    /**\n     * Returns index of a node that occupies given offset. If given offset is too low, returns `0`. If given offset is\n     * too high, returns {@link module:engine/model/element~Element#getChildIndex index after last child}.\n     *\n     *\t\tconst textNode = new Text( 'foo' );\n     *\t\tconst pElement = new Element( 'p' );\n     *\t\tconst divElement = new Element( [ textNode, pElement ] );\n     *\t\tdivElement.offsetToIndex( -1 ); // Returns 0, because offset is too low.\n     *\t\tdivElement.offsetToIndex( 0 ); // Returns 0, because offset 0 is taken by `textNode` which is at index 0.\n     *\t\tdivElement.offsetToIndex( 1 ); // Returns 0, because `textNode` has `offsetSize` equal to 3, so it occupies offset 1 too.\n     *\t\tdivElement.offsetToIndex( 2 ); // Returns 0.\n     *\t\tdivElement.offsetToIndex( 3 ); // Returns 1.\n     *\t\tdivElement.offsetToIndex( 4 ); // Returns 2. There are no nodes at offset 4, so last available index is returned.\n     *\n     * @param {Number} offset Offset to look for.\n     * @returns {Number}\n     */\n\n  }, {\n    key: \"offsetToIndex\",\n    value: function offsetToIndex(offset) {\n      return this._children.offsetToIndex(offset);\n    }\n    /**\n     * Returns a descendant node by its path relative to this element.\n     *\n     *\t\t// <this>a<b>c</b></this>\n     *\t\tthis.getNodeByPath( [ 0 ] );     // -> \"a\"\n     *\t\tthis.getNodeByPath( [ 1 ] );     // -> <b>\n     *\t\tthis.getNodeByPath( [ 1, 0 ] );  // -> \"c\"\n     *\n     * @param {Array.<Number>} relativePath Path of the node to find, relative to this element.\n     * @returns {module:engine/model/node~Node}\n     */\n\n  }, {\n    key: \"getNodeByPath\",\n    value: function getNodeByPath(relativePath) {\n      var node = this; // eslint-disable-line consistent-this\n\n      var _iterator = _createForOfIteratorHelper(relativePath),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var index = _step.value;\n          node = node.getChild(node.offsetToIndex(index));\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return node;\n    }\n    /**\n     * Converts `Element` instance to plain object and returns it. Takes care of converting all of this element's children.\n     *\n     * @returns {Object} `Element` instance converted to plain object.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(Element.prototype), \"toJSON\", this).call(this);\n\n      json.name = this.name;\n\n      if (this._children.length > 0) {\n        json.children = [];\n\n        var _iterator2 = _createForOfIteratorHelper(this._children),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var node = _step2.value;\n            json.children.push(node.toJSON());\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      }\n\n      return json;\n    }\n    /**\n     * Creates a copy of this element and returns it. Created element has the same name and attributes as the original element.\n     * If clone is deep, the original element's children are also cloned. If not, then empty element is removed.\n     *\n     * @protected\n     * @param {Boolean} [deep=false] If set to `true` clones element and all its children recursively. When set to `false`,\n     * element will be cloned without any child.\n     */\n\n  }, {\n    key: \"_clone\",\n    value: function _clone() {\n      var deep = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var children = deep ? Array.from(this._children).map(function (node) {\n        return node._clone(true);\n      }) : null;\n      return new Element(this.name, this.getAttributes(), children);\n    }\n    /**\n     * {@link module:engine/model/element~Element#_insertChild Inserts} one or more nodes at the end of this element.\n     *\n     * @see module:engine/model/writer~Writer#append\n     * @protected\n     * @param {module:engine/model/item~Item|Iterable.<module:engine/model/item~Item>} nodes Nodes to be inserted.\n     */\n\n  }, {\n    key: \"_appendChild\",\n    value: function _appendChild(nodes) {\n      this._insertChild(this.childCount, nodes);\n    }\n    /**\n     * Inserts one or more nodes at the given index and sets {@link module:engine/model/node~Node#parent parent} of these nodes\n     * to this element.\n     *\n     * @see module:engine/model/writer~Writer#insert\n     * @protected\n     * @param {Number} index Index at which nodes should be inserted.\n     * @param {module:engine/model/item~Item|Iterable.<module:engine/model/item~Item>} items Items to be inserted.\n     */\n\n  }, {\n    key: \"_insertChild\",\n    value: function _insertChild(index, items) {\n      var nodes = normalize(items);\n\n      var _iterator3 = _createForOfIteratorHelper(nodes),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var node = _step3.value;\n\n          // If node that is being added to this element is already inside another element, first remove it from the old parent.\n          if (node.parent !== null) {\n            node._remove();\n          }\n\n          node.parent = this;\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      this._children._insertNodes(index, nodes);\n    }\n    /**\n     * Removes one or more nodes starting at the given index and sets\n     * {@link module:engine/model/node~Node#parent parent} of these nodes to `null`.\n     *\n     * @see module:engine/model/writer~Writer#remove\n     * @protected\n     * @param {Number} index Index of the first node to remove.\n     * @param {Number} [howMany=1] Number of nodes to remove.\n     * @returns {Array.<module:engine/model/node~Node>} Array containing removed nodes.\n     */\n\n  }, {\n    key: \"_removeChildren\",\n    value: function _removeChildren(index) {\n      var howMany = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n      var nodes = this._children._removeNodes(index, howMany);\n\n      var _iterator4 = _createForOfIteratorHelper(nodes),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var node = _step4.value;\n          node.parent = null;\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      return nodes;\n    }\n    /**\n     * Creates an `Element` instance from given plain object (i.e. parsed JSON string).\n     * Converts `Element` children to proper nodes.\n     *\n     * @param {Object} json Plain object to be converted to `Element`.\n     * @returns {module:engine/model/element~Element} `Element` instance created using given plain object.\n     */\n\n  }, {\n    key: \"childCount\",\n    get: function get() {\n      return this._children.length;\n    }\n    /**\n     * Sum of {@link module:engine/model/node~Node#offsetSize offset sizes} of all of this element's children.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"maxOffset\",\n    get: function get() {\n      return this._children.maxOffset;\n    }\n    /**\n     * Is `true` if there are no nodes inside this element, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isEmpty\",\n    get: function get() {\n      return this.childCount === 0;\n    }\n  }], [{\n    key: \"fromJSON\",\n    value: function fromJSON(json) {\n      var children = null;\n\n      if (json.children) {\n        children = [];\n\n        var _iterator5 = _createForOfIteratorHelper(json.children),\n            _step5;\n\n        try {\n          for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n            var child = _step5.value;\n\n            if (child.name) {\n              // If child has name property, it is an Element.\n              children.push(Element.fromJSON(child));\n            } else {\n              // Otherwise, it is a Text node.\n              children.push(Text.fromJSON(child));\n            }\n          }\n        } catch (err) {\n          _iterator5.e(err);\n        } finally {\n          _iterator5.f();\n        }\n      }\n\n      return new Element(json.name, json.attributes, children);\n    }\n  }]);\n\n  return Element;\n}(Node); // Converts strings to Text and non-iterables to arrays.\n//\n// @param {String|module:engine/model/item~Item|Iterable.<String|module:engine/model/item~Item>}\n// @returns {Iterable.<module:engine/model/node~Node>}\n\n\nexport { Element as default };\n\nfunction normalize(nodes) {\n  // Separate condition because string is iterable.\n  if (typeof nodes == 'string') {\n    return [new Text(nodes)];\n  }\n\n  if (!isIterable(nodes)) {\n    nodes = [nodes];\n  } // Array.from to enable .map() on non-arrays.\n\n\n  return Array.from(nodes).map(function (node) {\n    if (typeof node == 'string') {\n      return new Text(node);\n    }\n\n    if (node instanceof TextProxy) {\n      return new Text(node.data, node.getAttributes());\n    }\n\n    return node;\n  });\n}","import \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/history\n */\n\n/**\n * `History` keeps the track of all the operations applied to the {@link module:engine/model/document~Document document}.\n */\nvar History = /*#__PURE__*/function () {\n  /**\n   * Creates an empty History instance.\n   */\n  function History() {\n    _classCallCheck(this, History);\n\n    /**\n     * Operations added to the history.\n     *\n     * @protected\n     * @member {Array.<module:engine/model/operation/operation~Operation>} module:engine/model/history~History#_operations\n     */\n    this._operations = [];\n    /**\n     * Holds an information which {@link module:engine/model/operation/operation~Operation operation} undoes which\n     * {@link module:engine/model/operation/operation~Operation operation}.\n     *\n     * Keys of the map are \"undoing operations\", that is operations that undone some other operations. For each key, the\n     * value is an operation that has been undone by the \"undoing operation\".\n     *\n     * @private\n     * @member {Map} module:engine/model/history~History#_undoPairs\n     */\n\n    this._undoPairs = new Map();\n    /**\n     * Holds all undone operations.\n     *\n     * @private\n     * @member {Set.<module:engine/model/operation/operation~Operation>} module:engine/model/history~History#_undoneOperations\n     */\n\n    this._undoneOperations = new Set();\n  }\n  /**\n   * Adds an operation to the history.\n   *\n   * @param {module:engine/model/operation/operation~Operation} operation Operation to add.\n   */\n\n\n  _createClass(History, [{\n    key: \"addOperation\",\n    value: function addOperation(operation) {\n      if (this._operations.includes(operation)) {\n        return;\n      }\n\n      this._operations.push(operation);\n    }\n    /**\n     * Returns operations added to the history.\n     *\n     * @param {Number} [from=0] Base version from which operations should be returned (inclusive). Defaults to `0`, which means\n     * that operations from the first one will be returned.\n     * @param {Number} [to=Number.POSITIVE_INFINITY] Base version up to which operations should be returned (exclusive).\n     * Defaults to `Number.POSITIVE_INFINITY` which means that operations up to the last one will be returned.\n     * @returns {Iterable.<module:engine/model/operation/operation~Operation>} Operations added to the history.\n     */\n\n  }, {\n    key: \"getOperations\",\n    value: function getOperations() {\n      var from = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n      var to = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.POSITIVE_INFINITY;\n\n      if (from < 0) {\n        return [];\n      }\n\n      return this._operations.slice(from, to);\n    }\n    /**\n     * Returns operation from the history that bases on given `baseVersion`.\n     *\n     * @param {Number} baseVersion Base version of the operation to get.\n     * @returns {module:engine/model/operation/operation~Operation|null} Operation with given base version or `null` if\n     * there is no such operation in history.\n     */\n\n  }, {\n    key: \"getOperation\",\n    value: function getOperation(baseVersion) {\n      return this._operations[baseVersion];\n    }\n    /**\n     * Marks in history that one operation is an operation that is undoing the other operation. By marking operation this way,\n     * history is keeping more context information about operations, which helps in operational transformation.\n     *\n     * @param {module:engine/model/operation/operation~Operation} undoneOperation Operation which is undone by `undoingOperation`.\n     * @param {module:engine/model/operation/operation~Operation} undoingOperation Operation which undoes `undoneOperation`.\n     */\n\n  }, {\n    key: \"setOperationAsUndone\",\n    value: function setOperationAsUndone(undoneOperation, undoingOperation) {\n      this._undoPairs.set(undoingOperation, undoneOperation);\n\n      this._undoneOperations.add(undoneOperation);\n    }\n    /**\n     * Checks whether given `operation` is undoing any other operation.\n     *\n     * @param {module:engine/model/operation/operation~Operation} operation Operation to check.\n     * @returns {Boolean} `true` if given `operation` is undoing any other operation, `false` otherwise.\n     */\n\n  }, {\n    key: \"isUndoingOperation\",\n    value: function isUndoingOperation(operation) {\n      return this._undoPairs.has(operation);\n    }\n    /**\n     * Checks whether given `operation` has been undone by any other operation.\n     *\n     * @param {module:engine/model/operation/operation~Operation} operation Operation to check.\n     * @returns {Boolean} `true` if given `operation` has been undone any other operation, `false` otherwise.\n     */\n\n  }, {\n    key: \"isUndoneOperation\",\n    value: function isUndoneOperation(operation) {\n      return this._undoneOperations.has(operation);\n    }\n    /**\n     * For given `undoingOperation`, returns the operation which has been undone by it.\n     *\n     * @param {module:engine/model/operation/operation~Operation} undoingOperation\n     * @returns {module:engine/model/operation/operation~Operation|undefined} Operation that has been undone by given\n     * `undoingOperation` or `undefined` if given `undoingOperation` is not undoing any other operation.\n     */\n\n  }, {\n    key: \"getUndoneOperation\",\n    value: function getUndoneOperation(undoingOperation) {\n      return this._undoPairs.get(undoingOperation);\n    }\n  }]);\n\n  return History;\n}();\n\nexport { History as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/liveposition\n */\nimport Position from \"./position\";\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * `LivePosition` is a type of {@link module:engine/model/position~Position Position}\n * that updates itself as {@link module:engine/model/document~Document document}\n * is changed through operations. It may be used as a bookmark.\n *\n * **Note:** Contrary to {@link module:engine/model/position~Position}, `LivePosition` works only in roots that are\n * {@link module:engine/model/rootelement~RootElement}.\n * If {@link module:engine/model/documentfragment~DocumentFragment} is passed, error will be thrown.\n *\n * **Note:** Be very careful when dealing with `LivePosition`. Each `LivePosition` instance bind events that might\n * have to be unbound.\n * Use {@link module:engine/model/liveposition~LivePosition#detach} whenever you don't need `LivePosition` anymore.\n *\n * @extends module:engine/model/position~Position\n */\n\nvar LivePosition = /*#__PURE__*/function (_Position) {\n  _inherits(LivePosition, _Position);\n\n  var _super = _createSuper(LivePosition);\n\n  /**\n   * Creates a live position.\n   *\n   * @see module:engine/model/position~Position\n   * @param {module:engine/model/rootelement~RootElement} root\n   * @param {Array.<Number>} path\n   * @param {module:engine/model/position~PositionStickiness} [stickiness]\n   */\n  function LivePosition(root, path) {\n    var _this;\n\n    var stickiness = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'toNone';\n\n    _classCallCheck(this, LivePosition);\n\n    _this = _super.call(this, root, path, stickiness);\n\n    if (!_this.root.is('rootElement')) {\n      /**\n       * LivePosition's root has to be an instance of RootElement.\n       *\n       * @error liveposition-root-not-rootelement\n       */\n      throw new CKEditorError('model-liveposition-root-not-rootelement: LivePosition\\'s root has to be an instance of RootElement.', root);\n    }\n\n    bindWithDocument.call(_assertThisInitialized(_this));\n    return _this;\n  }\n  /**\n   * Unbinds all events previously bound by `LivePosition`. Use it whenever you don't need `LivePosition` instance\n   * anymore (i.e. when leaving scope in which it was declared or before re-assigning variable that was\n   * referring to it).\n   */\n\n\n  _createClass(LivePosition, [{\n    key: \"detach\",\n    value: function detach() {\n      this.stopListening();\n    }\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\tlivePosition.is( 'position' ); // -> true\n     *\t\tlivePosition.is( 'model:position' ); // -> true\n     *\t\tlivePosition.is( 'liveposition' ); // -> true\n     *\t\tlivePosition.is( 'model:livePosition' ); // -> true\n     *\n     *\t\tlivePosition.is( 'view:position' ); // -> false\n     *\t\tlivePosition.is( 'documentSelection' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'livePosition' || type == 'model:livePosition' || _get(_getPrototypeOf(LivePosition.prototype), \"is\", this).call(this, type);\n    }\n    /**\n     * Creates a {@link module:engine/model/position~Position position instance}, which is equal to this live position.\n     *\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"toPosition\",\n    value: function toPosition() {\n      return new Position(this.root, this.path.slice(), this.stickiness);\n    }\n    /**\n     * Creates a `LivePosition` instance that is equal to position.\n     *\n     * @param {module:engine/model/position~Position} position\n     * @param {module:engine/model/position~PositionStickiness} [stickiness]\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }], [{\n    key: \"fromPosition\",\n    value: function fromPosition(position, stickiness) {\n      return new this(position.root, position.path.slice(), stickiness ? stickiness : position.stickiness);\n    }\n    /**\n     * @static\n     * @protected\n     * @method module:engine/model/liveposition~LivePosition._createAfter\n     * @see module:engine/model/position~Position._createAfter\n     * @param {module:engine/model/node~Node} node\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone']\n     * @returns {module:engine/model/liveposition~LivePosition}\n     */\n\n    /**\n     * @static\n     * @protected\n     * @method module:engine/model/liveposition~LivePosition._createBefore\n     * @see module:engine/model/position~Position._createBefore\n     * @param {module:engine/model/node~Node} node\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone']\n     * @returns {module:engine/model/liveposition~LivePosition}\n     */\n\n    /**\n     * @static\n     * @protected\n     * @method module:engine/model/liveposition~LivePosition._createAt\n     * @see module:engine/model/position~Position._createAt\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset]\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone']\n     * @returns {module:engine/model/liveposition~LivePosition}\n     */\n\n    /**\n     * Fired when `LivePosition` instance is changed due to changes on {@link module:engine/model/document~Document}.\n     *\n     * @event module:engine/model/liveposition~LivePosition#change\n     * @param {module:engine/model/position~Position} oldPosition Position equal to this live position before it got changed.\n     */\n\n  }]);\n\n  return LivePosition;\n}(Position); // Binds this `LivePosition` to the {@link module:engine/model/document~Document document} that owns\n// this position's {@link module:engine/model/position~Position#root root}.\n//\n// @private\n\n\nexport { LivePosition as default };\n\nfunction bindWithDocument() {\n  var _this2 = this;\n\n  this.listenTo(this.root.document.model, 'applyOperation', function (event, args) {\n    var operation = args[0];\n\n    if (!operation.isDocumentOperation) {\n      return;\n    }\n\n    transform.call(_this2, operation);\n  }, {\n    priority: 'low'\n  });\n} // Updates this position accordingly to the updates applied to the model. Bases on change events.\n//\n// @private\n// @param {module:engine/model/operation/operation~Operation} operation Executed operation.\n\n\nfunction transform(operation) {\n  var result = this.getTransformedByOperation(operation);\n\n  if (!this.isEqual(result)) {\n    var oldPosition = this.toPosition();\n    this.path = result.path;\n    this.root = result.root;\n    this.fire('change', oldPosition);\n  }\n}\n\nmix(LivePosition, EmitterMixin);","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/liverange\n */\nimport Range from \"./range\";\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * `LiveRange` is a type of {@link module:engine/model/range~Range Range}\n * that updates itself as {@link module:engine/model/document~Document document}\n * is changed through operations. It may be used as a bookmark.\n *\n * **Note:** Be very careful when dealing with `LiveRange`. Each `LiveRange` instance bind events that might\n * have to be unbound. Use {@link module:engine/model/liverange~LiveRange#detach detach} whenever you don't need `LiveRange` anymore.\n */\n\nvar LiveRange = /*#__PURE__*/function (_Range) {\n  _inherits(LiveRange, _Range);\n\n  var _super = _createSuper(LiveRange);\n\n  /**\n   * Creates a live range.\n   *\n   * @see module:engine/model/range~Range\n   */\n  function LiveRange(start, end) {\n    var _this;\n\n    _classCallCheck(this, LiveRange);\n\n    _this = _super.call(this, start, end);\n    bindWithDocument.call(_assertThisInitialized(_this));\n    return _this;\n  }\n  /**\n   * Unbinds all events previously bound by `LiveRange`. Use it whenever you don't need `LiveRange` instance\n   * anymore (i.e. when leaving scope in which it was declared or before re-assigning variable that was\n   * referring to it).\n   */\n\n\n  _createClass(LiveRange, [{\n    key: \"detach\",\n    value: function detach() {\n      this.stopListening();\n    }\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\tliveRange.is( 'range' ); // -> true\n     *\t\tliveRange.is( 'model:range' ); // -> true\n     *\t\tliveRange.is( 'liveRange' ); // -> true\n     *\t\tliveRange.is( 'model:liveRange' ); // -> true\n     *\n     *\t\tliveRange.is( 'view:range' ); // -> false\n     *\t\tliveRange.is( 'documentSelection' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'liveRange' || type == 'model:liveRange' || _get(_getPrototypeOf(LiveRange.prototype), \"is\", this).call(this, type);\n    }\n    /**\n     * Creates a {@link module:engine/model/range~Range range instance} that is equal to this live range.\n     *\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"toRange\",\n    value: function toRange() {\n      return new Range(this.start, this.end);\n    }\n    /**\n     * Creates a `LiveRange` instance that is equal to the given range.\n     *\n     * @param {module:engine/model/range~Range} range\n     * @returns {module:engine/model/liverange~LiveRange}\n     */\n\n  }], [{\n    key: \"fromRange\",\n    value: function fromRange(range) {\n      return new LiveRange(range.start, range.end);\n    }\n    /**\n     * @see module:engine/model/range~Range._createIn\n     * @static\n     * @protected\n     * @method module:engine/model/liverange~LiveRange._createIn\n     * @param {module:engine/model/element~Element} element\n     * @returns {module:engine/model/liverange~LiveRange}\n     */\n\n    /**\n     * @see module:engine/model/range~Range._createOn\n     * @static\n     * @protected\n     * @method module:engine/model/liverange~LiveRange._createOn\n     * @param {module:engine/model/element~Element} element\n     * @returns {module:engine/model/liverange~LiveRange}\n     */\n\n    /**\n     * @see module:engine/model/range~Range._createFromPositionAndShift\n     * @static\n     * @protected\n     * @method module:engine/model/liverange~LiveRange._createFromPositionAndShift\n     * @param {module:engine/model/position~Position} position\n     * @param {Number} shift\n     * @returns {module:engine/model/liverange~LiveRange}\n     */\n\n    /**\n     * Fired when `LiveRange` instance boundaries have changed due to changes in the\n     * {@link module:engine/model/document~Document document}.\n     *\n     * @event change:range\n     * @param {module:engine/model/range~Range} oldRange Range with start and end position equal to start and end position of this live\n     * range before it got changed.\n     * @param {Object} data Object with additional information about the change.\n     * @param {module:engine/model/position~Position|null} data.deletionPosition Source position for remove and merge changes.\n     * Available if the range was moved to the graveyard root, `null` otherwise.\n     */\n\n    /**\n     * Fired when `LiveRange` instance boundaries have not changed after a change in {@link module:engine/model/document~Document document}\n     * but the change took place inside the range, effectively changing its content.\n     *\n     * @event change:content\n     * @param {module:engine/model/range~Range} range Range with start and end position equal to start and end position of\n     * change range.\n     * @param {Object} data Object with additional information about the change.\n     * @param {null} data.deletionPosition Due to the nature of this event, this property is always set to `null`. It is passed\n     * for compatibility with the {@link module:engine/model/liverange~LiveRange#event:change:range} event.\n     */\n\n  }]);\n\n  return LiveRange;\n}(Range); // Binds this `LiveRange` to the {@link module:engine/model/document~Document document}\n// that owns this range's {@link module:engine/model/range~Range#root root}.\n//\n// @private\n\n\nexport { LiveRange as default };\n\nfunction bindWithDocument() {\n  var _this2 = this;\n\n  this.listenTo(this.root.document.model, 'applyOperation', function (event, args) {\n    var operation = args[0];\n\n    if (!operation.isDocumentOperation) {\n      return;\n    }\n\n    transform.call(_this2, operation);\n  }, {\n    priority: 'low'\n  });\n} // Updates this range accordingly to the updates applied to the model. Bases on change events.\n//\n// @private\n// @param {module:engine/model/operation/operation~Operation} operation Executed operation.\n\n\nfunction transform(operation) {\n  // Transform the range by the operation. Join the result ranges if needed.\n  var ranges = this.getTransformedByOperation(operation);\n\n  var result = Range._createFromRanges(ranges);\n\n  var boundariesChanged = !result.isEqual(this);\n  var contentChanged = doesOperationChangeRangeContent(this, operation);\n  var deletionPosition = null;\n\n  if (boundariesChanged) {\n    // If range boundaries have changed, fire `change:range` event.\n    //\n    if (result.root.rootName == '$graveyard') {\n      // If the range was moved to the graveyard root, set `deletionPosition`.\n      if (operation.type == 'remove') {\n        deletionPosition = operation.sourcePosition;\n      } else {\n        // Merge operation.\n        deletionPosition = operation.deletionPosition;\n      }\n    }\n\n    var oldRange = this.toRange();\n    this.start = result.start;\n    this.end = result.end;\n    this.fire('change:range', oldRange, {\n      deletionPosition: deletionPosition\n    });\n  } else if (contentChanged) {\n    // If range boundaries have not changed, but there was change inside the range, fire `change:content` event.\n    this.fire('change:content', this.toRange(), {\n      deletionPosition: deletionPosition\n    });\n  }\n} // Checks whether given operation changes something inside the range (even if it does not change boundaries).\n//\n// @private\n// @param {module:engine/model/range~Range} range Range to check.\n// @param {module:engine/model/operation/operation~Operation} operation Executed operation.\n// @returns {Boolean}\n\n\nfunction doesOperationChangeRangeContent(range, operation) {\n  switch (operation.type) {\n    case 'insert':\n      return range.containsPosition(operation.position);\n\n    case 'move':\n    case 'remove':\n    case 'reinsert':\n    case 'merge':\n      return range.containsPosition(operation.sourcePosition) || range.start.isEqual(operation.sourcePosition) || range.containsPosition(operation.targetPosition);\n\n    case 'split':\n      return range.containsPosition(operation.splitPosition) || range.containsPosition(operation.insertionPosition);\n  }\n\n  return false;\n}\n\nmix(LiveRange, EmitterMixin);","import \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.string.starts-with\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/markercollection\n */\nimport LiveRange from \"./liverange\";\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * The collection of all {@link module:engine/model/markercollection~Marker markers} attached to the document.\n * It lets you {@link module:engine/model/markercollection~MarkerCollection#get get} markers or track them using\n * {@link module:engine/model/markercollection~MarkerCollection#event:update} event.\n *\n * To create, change or remove makers use {@link module:engine/model/writer~Writer model writers'} methods:\n * {@link module:engine/model/writer~Writer#addMarker} or {@link module:engine/model/writer~Writer#removeMarker}. Since\n * the writer is the only proper way to change the data model it is not possible to change markers directly using this\n * collection. All markers created by the writer will be automatically added to this collection.\n *\n * By default there is one marker collection available as {@link module:engine/model/model~Model#markers model property}.\n *\n * @see module:engine/model/markercollection~Marker\n */\n\nvar MarkerCollection = /*#__PURE__*/function () {\n  /**\n   * Creates a markers collection.\n   */\n  function MarkerCollection() {\n    _classCallCheck(this, MarkerCollection);\n\n    /**\n     * Stores {@link ~Marker markers} added to the collection.\n     *\n     * @private\n     * @member {Map} #_markers\n     */\n    this._markers = new Map();\n  }\n  /**\n   * Iterable interface.\n   *\n   * Iterates over all {@link ~Marker markers} added to the collection.\n   *\n   * @returns {Iterable}\n   */\n\n\n  _createClass(MarkerCollection, [{\n    key: Symbol.iterator,\n    value: function value() {\n      return this._markers.values();\n    }\n    /**\n     * Checks if marker with given `markerName` is in the collection.\n     *\n     * @param {String} markerName Marker name.\n     * @returns {Boolean} `true` if marker with given `markerName` is in the collection, `false` otherwise.\n     */\n\n  }, {\n    key: \"has\",\n    value: function has(markerName) {\n      return this._markers.has(markerName);\n    }\n    /**\n     * Returns {@link ~Marker marker} with given `markerName`.\n     *\n     * @param {String} markerName Name of marker to get.\n     * @returns {module:engine/model/markercollection~Marker|null} Marker with given name or `null` if such marker was\n     * not added to the collection.\n     */\n\n  }, {\n    key: \"get\",\n    value: function get(markerName) {\n      return this._markers.get(markerName) || null;\n    }\n    /**\n     * Creates and adds a {@link ~Marker marker} to the `MarkerCollection` with given name on given\n     * {@link module:engine/model/range~Range range}.\n     *\n     * If `MarkerCollection` already had a marker with given name (or {@link ~Marker marker} was passed), the marker in\n     * collection is updated and {@link module:engine/model/markercollection~MarkerCollection#event:update} event is fired\n     * but only if there was a change (marker range or {@link module:engine/model/markercollection~Marker#managedUsingOperations}\n     * flag has changed.\n     *\n     * @protected\n     * @fires module:engine/model/markercollection~MarkerCollection#event:update\n     * @param {String|module:engine/model/markercollection~Marker} markerOrName Name of marker to set or marker instance to update.\n     * @param {module:engine/model/range~Range} range Marker range.\n     * @param {Boolean} [managedUsingOperations=false] Specifies whether the marker is managed using operations.\n     * @param {Boolean} [affectsData=false] Specifies whether the marker affects the data produced by the data pipeline\n     * (is persisted in the editor's data).\n     * @returns {module:engine/model/markercollection~Marker} `Marker` instance which was added or updated.\n     */\n\n  }, {\n    key: \"_set\",\n    value: function _set(markerOrName, range) {\n      var managedUsingOperations = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n      var affectsData = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n      var markerName = markerOrName instanceof Marker ? markerOrName.name : markerOrName;\n\n      var oldMarker = this._markers.get(markerName);\n\n      if (oldMarker) {\n        var oldRange = oldMarker.getRange();\n        var hasChanged = false;\n\n        if (!oldRange.isEqual(range)) {\n          oldMarker._attachLiveRange(LiveRange.fromRange(range));\n\n          hasChanged = true;\n        }\n\n        if (managedUsingOperations != oldMarker.managedUsingOperations) {\n          oldMarker._managedUsingOperations = managedUsingOperations;\n          hasChanged = true;\n        }\n\n        if (typeof affectsData === 'boolean' && affectsData != oldMarker.affectsData) {\n          oldMarker._affectsData = affectsData;\n          hasChanged = true;\n        }\n\n        if (hasChanged) {\n          this.fire('update:' + markerName, oldMarker, oldRange, range);\n        }\n\n        return oldMarker;\n      }\n\n      var liveRange = LiveRange.fromRange(range);\n      var marker = new Marker(markerName, liveRange, managedUsingOperations, affectsData);\n\n      this._markers.set(markerName, marker);\n\n      this.fire('update:' + markerName, marker, null, range);\n      return marker;\n    }\n    /**\n     * Removes given {@link ~Marker marker} or a marker with given name from the `MarkerCollection`.\n     *\n     * @protected\n     * @fires module:engine/model/markercollection~MarkerCollection#event:update\n     * @param {String} markerOrName Marker or name of a marker to remove.\n     * @returns {Boolean} `true` if marker was found and removed, `false` otherwise.\n     */\n\n  }, {\n    key: \"_remove\",\n    value: function _remove(markerOrName) {\n      var markerName = markerOrName instanceof Marker ? markerOrName.name : markerOrName;\n\n      var oldMarker = this._markers.get(markerName);\n\n      if (oldMarker) {\n        this._markers.delete(markerName);\n\n        this.fire('update:' + markerName, oldMarker, oldMarker.getRange(), null);\n\n        this._destroyMarker(oldMarker);\n\n        return true;\n      }\n\n      return false;\n    }\n    /**\n     * Fires an {@link module:engine/model/markercollection~MarkerCollection#event:update} event for the given {@link ~Marker marker}\n     * but does not change the marker. Useful to force {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher downcast\n     * conversion} for the marker.\n     *\n     * @protected\n     * @fires module:engine/model/markercollection~MarkerCollection#event:update\n     * @param {String} markerOrName Marker or name of a marker to refresh.\n     */\n\n  }, {\n    key: \"_refresh\",\n    value: function _refresh(markerOrName) {\n      var markerName = markerOrName instanceof Marker ? markerOrName.name : markerOrName;\n\n      var marker = this._markers.get(markerName);\n\n      if (!marker) {\n        throw new CKEditorError('markercollection-refresh-marker-not-exists: Marker with provided name does not exists.', this);\n      }\n\n      var range = marker.getRange();\n      this.fire('update:' + markerName, marker, range, range, marker.managedUsingOperations, marker.affectsData);\n    }\n    /**\n     * Returns iterator that iterates over all markers, which ranges contain given {@link module:engine/model/position~Position position}.\n     *\n     * @param {module:engine/model/position~Position} position\n     * @returns {Iterable.<module:engine/model/markercollection~Marker>}\n     */\n\n  }, {\n    key: \"getMarkersAtPosition\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getMarkersAtPosition(position) {\n      var _iterator, _step, marker;\n\n      return regeneratorRuntime.wrap(function getMarkersAtPosition$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _iterator = _createForOfIteratorHelper(this);\n              _context.prev = 1;\n\n              _iterator.s();\n\n            case 3:\n              if ((_step = _iterator.n()).done) {\n                _context.next = 10;\n                break;\n              }\n\n              marker = _step.value;\n\n              if (!marker.getRange().containsPosition(position)) {\n                _context.next = 8;\n                break;\n              }\n\n              _context.next = 8;\n              return marker;\n\n            case 8:\n              _context.next = 3;\n              break;\n\n            case 10:\n              _context.next = 15;\n              break;\n\n            case 12:\n              _context.prev = 12;\n              _context.t0 = _context[\"catch\"](1);\n\n              _iterator.e(_context.t0);\n\n            case 15:\n              _context.prev = 15;\n\n              _iterator.f();\n\n              return _context.finish(15);\n\n            case 18:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, getMarkersAtPosition, this, [[1, 12, 15, 18]]);\n    })\n    /**\n     * Returns iterator that iterates over all markers, which intersects with given {@link module:engine/model/range~Range range}.\n     *\n     * @param {module:engine/model/range~Range} range\n     * @returns {Iterable.<module:engine/model/markercollection~Marker>}\n     */\n\n  }, {\n    key: \"getMarkersIntersectingRange\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getMarkersIntersectingRange(range) {\n      var _iterator2, _step2, marker;\n\n      return regeneratorRuntime.wrap(function getMarkersIntersectingRange$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              _iterator2 = _createForOfIteratorHelper(this);\n              _context2.prev = 1;\n\n              _iterator2.s();\n\n            case 3:\n              if ((_step2 = _iterator2.n()).done) {\n                _context2.next = 10;\n                break;\n              }\n\n              marker = _step2.value;\n\n              if (!(marker.getRange().getIntersection(range) !== null)) {\n                _context2.next = 8;\n                break;\n              }\n\n              _context2.next = 8;\n              return marker;\n\n            case 8:\n              _context2.next = 3;\n              break;\n\n            case 10:\n              _context2.next = 15;\n              break;\n\n            case 12:\n              _context2.prev = 12;\n              _context2.t0 = _context2[\"catch\"](1);\n\n              _iterator2.e(_context2.t0);\n\n            case 15:\n              _context2.prev = 15;\n\n              _iterator2.f();\n\n              return _context2.finish(15);\n\n            case 18:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, getMarkersIntersectingRange, this, [[1, 12, 15, 18]]);\n    })\n    /**\n     * Destroys marker collection and all markers inside it.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var _iterator3 = _createForOfIteratorHelper(this._markers.values()),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var marker = _step3.value;\n\n          this._destroyMarker(marker);\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      this._markers = null;\n      this.stopListening();\n    }\n    /**\n     * Iterates over all markers that starts with given `prefix`.\n     *\n     *\t\tconst markerFooA = markersCollection.set( 'foo:a', rangeFooA );\n     *\t\tconst markerFooB = markersCollection.set( 'foo:b', rangeFooB );\n     *\t\tconst markerBarA = markersCollection.set( 'bar:a', rangeBarA );\n     *\t\tconst markerFooBarA = markersCollection.set( 'foobar:a', rangeFooBarA );\n     *\t\tArray.from( markersCollection.getMarkersGroup( 'foo' ) ); // [ markerFooA, markerFooB ]\n     *\t\tArray.from( markersCollection.getMarkersGroup( 'a' ) ); // []\n     *\n     * @param prefix\n     * @returns {Iterable.<module:engine/model/markercollection~Marker>}\n     */\n\n  }, {\n    key: \"getMarkersGroup\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getMarkersGroup(prefix) {\n      var _iterator4, _step4, marker;\n\n      return regeneratorRuntime.wrap(function getMarkersGroup$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              _iterator4 = _createForOfIteratorHelper(this._markers.values());\n              _context3.prev = 1;\n\n              _iterator4.s();\n\n            case 3:\n              if ((_step4 = _iterator4.n()).done) {\n                _context3.next = 10;\n                break;\n              }\n\n              marker = _step4.value;\n\n              if (!marker.name.startsWith(prefix + ':')) {\n                _context3.next = 8;\n                break;\n              }\n\n              _context3.next = 8;\n              return marker;\n\n            case 8:\n              _context3.next = 3;\n              break;\n\n            case 10:\n              _context3.next = 15;\n              break;\n\n            case 12:\n              _context3.prev = 12;\n              _context3.t0 = _context3[\"catch\"](1);\n\n              _iterator4.e(_context3.t0);\n\n            case 15:\n              _context3.prev = 15;\n\n              _iterator4.f();\n\n              return _context3.finish(15);\n\n            case 18:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, getMarkersGroup, this, [[1, 12, 15, 18]]);\n    })\n    /**\n     * Destroys the marker.\n     *\n     * @private\n     * @param {module:engine/model/markercollection~Marker} marker Marker to destroy.\n     */\n\n  }, {\n    key: \"_destroyMarker\",\n    value: function _destroyMarker(marker) {\n      marker.stopListening();\n\n      marker._detachLiveRange();\n    }\n    /**\n     * Fired whenever marker is added, updated or removed from `MarkerCollection`.\n     *\n     * @event update\n     * @param {module:engine/model/markercollection~Marker} marker Updated Marker.\n     * @param {module:engine/model/range~Range|null} oldRange Marker range before the update. When is not defined it\n     * means that marker is just added.\n     * @param {module:engine/model/range~Range|null} newRange Marker range after update. When is not defined it\n     * means that marker is just removed.\n     */\n\n  }]);\n\n  return MarkerCollection;\n}();\n\nexport { MarkerCollection as default };\nmix(MarkerCollection, EmitterMixin);\n/**\n * `Marker` is a continuous parts of model (like a range), is named and represent some kind of information about marked\n * part of model document. In contrary to {@link module:engine/model/node~Node nodes}, which are building blocks of\n * model document tree, markers are not stored directly in document tree but in\n * {@link module:engine/model/model~Model#markers model markers' collection}. Still, they are document data, by giving\n * additional meaning to the part of a model document between marker start and marker end.\n *\n * In this sense, markers are similar to adding and converting attributes on nodes. The difference is that attribute is\n * connected with a given node (e.g. a character is bold no matter if it gets moved or content around it changes).\n * Markers on the other hand are continuous ranges and are characterized by their start and end position. This means that\n * any character in the marker is marked by the marker. For example, if a character is moved outside of marker it stops being\n * \"special\" and the marker is shrunk. Similarly, when a character is moved into the marker from other place in document\n * model, it starts being \"special\" and the marker is enlarged.\n *\n * Another upside of markers is that finding marked part of document is fast and easy. Using attributes to mark some nodes\n * and then trying to find that part of document would require traversing whole document tree. Marker gives instant access\n * to the range which it is marking at the moment.\n *\n * Markers are built from a name and a range.\n *\n * Range of the marker is updated automatically when document changes, using\n * {@link module:engine/model/liverange~LiveRange live range} mechanism.\n *\n * Name is used to group and identify markers. Names have to be unique, but markers can be grouped by\n * using common prefixes, separated with `:`, for example: `user:john` or `search:3`. That's useful in term of creating\n * namespaces for custom elements (e.g. comments, highlights). You can use this prefixes in\n * {@link module:engine/model/markercollection~MarkerCollection#event:update} listeners to listen on changes in a group of markers.\n * For instance: `model.markers.on( 'set:user', callback );` will be called whenever any `user:*` markers changes.\n *\n * There are two types of markers.\n *\n * 1. Markers managed directly, without using operations. They are added directly by {@link module:engine/model/writer~Writer}\n * to the {@link module:engine/model/markercollection~MarkerCollection} without any additional mechanism. They can be used\n * as bookmarks or visual markers. They are great for showing results of the find, or select link when the focus is in the input.\n *\n * 1. Markers managed using operations. These markers are also stored in {@link module:engine/model/markercollection~MarkerCollection}\n * but changes in these markers is managed the same way all other changes in the model structure - using operations.\n * Therefore, they are handled in the undo stack and synchronized between clients if the collaboration plugin is enabled.\n * This type of markers is useful for solutions like spell checking or comments.\n *\n * Both type of them should be added / updated by {@link module:engine/model/writer~Writer#addMarker}\n * and removed by {@link module:engine/model/writer~Writer#removeMarker} methods.\n *\n *\t\tmodel.change( ( writer ) => {\n * \t\t\tconst marker = writer.addMarker( name, { range, usingOperation: true } );\n *\n * \t\t\t// ...\n *\n * \t\t\twriter.removeMarker( marker );\n *\t\t} );\n *\n * See {@link module:engine/model/writer~Writer} to find more examples.\n *\n * Since markers need to track change in the document, for efficiency reasons, it is best to create and keep as little\n * markers as possible and remove them as soon as they are not needed anymore.\n *\n * Markers can be downcasted and upcasted.\n *\n * Markers downcast happens on {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:addMarker} and\n * {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:removeMarker} events.\n * Use {@link module:engine/conversion/downcasthelpers downcast converters} or attach a custom converter to mentioned events.\n * For {@link module:engine/controller/datacontroller~DataController data pipeline}, marker should be downcasted to an element.\n * Then, it can be upcasted back to a marker. Again, use {@link module:engine/conversion/upcasthelpers upcast converters} or\n * attach a custom converter to {@link module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element}.\n *\n * `Marker` instances are created and destroyed only by {@link ~MarkerCollection MarkerCollection}.\n */\n\nvar Marker = /*#__PURE__*/function () {\n  /**\n   * Creates a marker instance.\n   *\n   * @param {String} name Marker name.\n   * @param {module:engine/model/liverange~LiveRange} liveRange Range marked by the marker.\n   * @param {Boolean} managedUsingOperations Specifies whether the marker is managed using operations.\n   * @param {Boolean} affectsData Specifies whether the marker affects the data produced by the data pipeline\n   * (is persisted in the editor's data).\n   */\n  function Marker(name, liveRange, managedUsingOperations, affectsData) {\n    _classCallCheck(this, Marker);\n\n    /**\n     * Marker's name.\n     *\n     * @readonly\n     * @type {String}\n     */\n    this.name = name;\n    /**\n     * Range marked by the marker.\n     *\n     * @protected\n     * @member {module:engine/model/liverange~LiveRange}\n     */\n\n    this._liveRange = this._attachLiveRange(liveRange);\n    /**\n     * Flag indicates if the marker is managed using operations or not.\n     *\n     * @private\n     * @member {Boolean}\n     */\n\n    this._managedUsingOperations = managedUsingOperations;\n    /**\n     * Specifies whether the marker affects the data produced by the data pipeline\n     * (is persisted in the editor's data).\n     *\n     * @private\n     * @member {Boolean}\n     */\n\n    this._affectsData = affectsData;\n  }\n  /**\n   * A value indicating if the marker is managed using operations.\n   * See {@link ~Marker marker class description} to learn more about marker types.\n   * See {@link module:engine/model/writer~Writer#addMarker}.\n   *\n   * @returns {Boolean}\n   */\n\n\n  _createClass(Marker, [{\n    key: \"getStart\",\n\n    /**\n     * Returns current marker start position.\n     *\n     * @returns {module:engine/model/position~Position}\n     */\n    value: function getStart() {\n      if (!this._liveRange) {\n        throw new CKEditorError('marker-destroyed: Cannot use a destroyed marker instance.', this);\n      }\n\n      return this._liveRange.start.clone();\n    }\n    /**\n     * Returns current marker end position.\n     *\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"getEnd\",\n    value: function getEnd() {\n      if (!this._liveRange) {\n        throw new CKEditorError('marker-destroyed: Cannot use a destroyed marker instance.', this);\n      }\n\n      return this._liveRange.end.clone();\n    }\n    /**\n     * Returns a range that represents the current state of the marker.\n     *\n     * Keep in mind that returned value is a {@link module:engine/model/range~Range Range}, not a\n     * {@link module:engine/model/liverange~LiveRange LiveRange}. This means that it is up-to-date and relevant only\n     * until next model document change. Do not store values returned by this method. Instead, store {@link ~Marker#name}\n     * and get `Marker` instance from {@link module:engine/model/markercollection~MarkerCollection MarkerCollection} every\n     * time there is a need to read marker properties. This will guarantee that the marker has not been removed and\n     * that it's data is up-to-date.\n     *\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"getRange\",\n    value: function getRange() {\n      if (!this._liveRange) {\n        throw new CKEditorError('marker-destroyed: Cannot use a destroyed marker instance.', this);\n      }\n\n      return this._liveRange.toRange();\n    }\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\tmarker.is( 'marker' ); // -> true\n     *\t\tmarker.is( 'model:marker' ); // -> true\n     *\n     *\t\tmarker.is( 'view:element' ); // -> false\n     *\t\tmarker.is( 'documentSelection' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'marker' || type == 'model:marker';\n    }\n    /**\n     * Binds new live range to the marker and detach the old one if is attached.\n     *\n     * @protected\n     * @param {module:engine/model/liverange~LiveRange} liveRange Live range to attach\n     * @returns {module:engine/model/liverange~LiveRange} Attached live range.\n     */\n\n  }, {\n    key: \"_attachLiveRange\",\n    value: function _attachLiveRange(liveRange) {\n      if (this._liveRange) {\n        this._detachLiveRange();\n      } // Delegating does not work with namespaces. Alternatively, we could delegate all events (using `*`).\n\n\n      liveRange.delegate('change:range').to(this);\n      liveRange.delegate('change:content').to(this);\n      this._liveRange = liveRange;\n      return liveRange;\n    }\n    /**\n     * Unbinds and destroys currently attached live range.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_detachLiveRange\",\n    value: function _detachLiveRange() {\n      this._liveRange.stopDelegating('change:range', this);\n\n      this._liveRange.stopDelegating('change:content', this);\n\n      this._liveRange.detach();\n\n      this._liveRange = null;\n    }\n    /**\n     * Fired whenever {@link ~Marker#_liveRange marker range} is changed due to changes on {@link module:engine/model/document~Document}.\n     * This is a delegated {@link module:engine/model/liverange~LiveRange#event:change:range LiveRange change:range event}.\n     *\n     * When marker is removed from {@link module:engine/model/markercollection~MarkerCollection MarkerCollection},\n     * all event listeners listening to it should be removed. It is best to do it on\n     * {@link module:engine/model/markercollection~MarkerCollection#event:update MarkerCollection update event}.\n     *\n     * @see module:engine/model/liverange~LiveRange#event:change:range\n     * @event change:range\n     * @param {module:engine/model/range~Range} oldRange\n     * @param {Object} data\n     */\n\n    /**\n     * Fired whenever change on {@link module:engine/model/document~Document} is done inside {@link ~Marker#_liveRange marker range}.\n     * This is a delegated {@link module:engine/model/liverange~LiveRange#event:change:content LiveRange change:content event}.\n     *\n     * When marker is removed from {@link module:engine/model/markercollection~MarkerCollection MarkerCollection},\n     * all event listeners listening to it should be removed. It is best to do it on\n     * {@link module:engine/model/markercollection~MarkerCollection#event:update MarkerCollection update event}.\n     *\n     * @see module:engine/model/liverange~LiveRange#event:change:content\n     * @event change:content\n     * @param {module:engine/model/range~Range} oldRange\n     * @param {Object} data\n     */\n\n  }, {\n    key: \"managedUsingOperations\",\n    get: function get() {\n      if (!this._liveRange) {\n        throw new CKEditorError('marker-destroyed: Cannot use a destroyed marker instance.', this);\n      }\n\n      return this._managedUsingOperations;\n    }\n    /**\n     * A value indicating if the marker changes the data.\n     *\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"affectsData\",\n    get: function get() {\n      if (!this._liveRange) {\n        throw new CKEditorError('marker-destroyed: Cannot use a destroyed marker instance.', this);\n      }\n\n      return this._affectsData;\n    }\n  }]);\n\n  return Marker;\n}();\n\nmix(Marker, EmitterMixin);\n/**\n * Cannot use a {@link module:engine/model/markercollection~MarkerCollection#destroy destroyed marker} instance.\n *\n * @error marker-destroyed\n */","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.search\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/model\n */\nimport Batch from \"./batch\";\nimport Writer from \"./writer\";\nimport Schema from \"./schema\";\nimport Document from \"./document\";\nimport MarkerCollection from \"./markercollection\";\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport ModelElement from \"./element\";\nimport ModelRange from \"./range\";\nimport ModelPosition from \"./position\";\nimport ModelSelection from \"./selection\";\nimport _insertContent from \"./utils/insertcontent\";\nimport _deleteContent from \"./utils/deletecontent\";\nimport _modifySelection from \"./utils/modifyselection\";\nimport _getSelectedContent from \"./utils/getselectedcontent\";\nimport { injectSelectionPostFixer } from \"./utils/selection-post-fixer\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Editor's data model. Read about the model in the\n * {@glink framework/guides/architecture/editing-engine engine architecture guide}.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar Model = /*#__PURE__*/function () {\n  function Model() {\n    var _this = this;\n\n    _classCallCheck(this, Model);\n\n    /**\n     * Model's marker collection.\n     *\n     * @readonly\n     * @member {module:engine/model/markercollection~MarkerCollection}\n     */\n    this.markers = new MarkerCollection();\n    /**\n     * Model's document.\n     *\n     * @readonly\n     * @member {module:engine/model/document~Document}\n     */\n\n    this.document = new Document(this);\n    /**\n     * Model's schema.\n     *\n     * @readonly\n     * @member {module:engine/model/schema~Schema}\n     */\n\n    this.schema = new Schema();\n    /**\n     * All callbacks added by {@link module:engine/model/model~Model#change} or\n     * {@link module:engine/model/model~Model#enqueueChange} methods waiting to be executed.\n     *\n     * @private\n     * @type {Array.<Function>}\n     */\n\n    this._pendingChanges = [];\n    /**\n     * The last created and currently used writer instance.\n     *\n     * @private\n     * @member {module:engine/model/writer~Writer}\n     */\n\n    this._currentWriter = null;\n    ['insertContent', 'deleteContent', 'modifySelection', 'getSelectedContent', 'applyOperation'].forEach(function (methodName) {\n      return _this.decorate(methodName);\n    }); // Adding operation validation with `highest` priority, so it is called before any other feature would like\n    // to do anything with the operation. If the operation has incorrect parameters it should throw on the earliest occasion.\n\n    this.on('applyOperation', function (evt, args) {\n      var operation = args[0];\n\n      operation._validate();\n    }, {\n      priority: 'highest'\n    }); // Register some default abstract entities.\n\n    this.schema.register('$root', {\n      isLimit: true\n    });\n    this.schema.register('$block', {\n      allowIn: '$root',\n      isBlock: true\n    });\n    this.schema.register('$text', {\n      allowIn: '$block',\n      isInline: true\n    });\n    this.schema.register('$clipboardHolder', {\n      allowContentOf: '$root',\n      isLimit: true\n    });\n    this.schema.extend('$text', {\n      allowIn: '$clipboardHolder'\n    }); // An element needed by the `upcastElementToMarker` converter.\n    // This element temporarily represents a marker boundary during the conversion process and is removed\n    // at the end of the conversion. `UpcastDispatcher` or at least `Conversion` class looks like a\n    // better place for this registration but both know nothing about `Schema`.\n\n    this.schema.register('$marker');\n    this.schema.addChildCheck(function (context, childDefinition) {\n      if (childDefinition.name === '$marker') {\n        return true;\n      }\n    });\n    injectSelectionPostFixer(this);\n  }\n  /**\n   * The `change()` method is the primary way of changing the model. You should use it to modify all document nodes\n   * (including detached nodes – i.e. nodes not added to the {@link module:engine/model/model~Model#document model document}),\n   * the {@link module:engine/model/document~Document#selection document's selection}, and\n   * {@link module:engine/model/model~Model#markers model markers}.\n   *\n   *\t\tmodel.change( writer => {\n   *\t\t\twriter.insertText( 'foo', paragraph, 'end' );\n   *\t\t} );\n   *\n   * All changes inside the change block use the same {@link module:engine/model/batch~Batch} so they are combined\n   * into a single undo step.\n   *\n   *\t\tmodel.change( writer => {\n   *\t\t\twriter.insertText( 'foo', paragraph, 'end' ); // foo.\n   *\n   *\t\t\tmodel.change( writer => {\n   *\t\t\t\twriter.insertText( 'bar', paragraph, 'end' ); // foobar.\n   *\t\t\t} );\n   *\n   * \t\t\twriter.insertText( 'bom', paragraph, 'end' ); // foobarbom.\n   *\t\t} );\n   *\n   * The callback of the `change()` block is executed synchronously.\n   *\n   * You can also return a value from the change block.\n   *\n   *\t\tconst img = model.change( writer => {\n   *\t\t\treturn writer.createElement( 'img' );\n   *\t\t} );\n   *\n   * @see #enqueueChange\n   * @param {Function} callback Callback function which may modify the model.\n   * @returns {*} Value returned by the callback.\n   */\n\n\n  _createClass(Model, [{\n    key: \"change\",\n    value: function change(callback) {\n      try {\n        if (this._pendingChanges.length === 0) {\n          // If this is the outermost block, create a new batch and start `_runPendingChanges` execution flow.\n          this._pendingChanges.push({\n            batch: new Batch(),\n            callback: callback\n          });\n\n          return this._runPendingChanges()[0];\n        } else {\n          // If this is not the outermost block, just execute the callback.\n          return callback(this._currentWriter);\n        }\n      } catch (err) {\n        CKEditorError.rethrowUnexpectedError(err, this);\n      }\n    }\n    /**\n     * The `enqueueChange()` method performs similar task as the {@link #change `change()` method}, with two major differences.\n     *\n     * First, the callback of `enqueueChange()` is executed when all other enqueued changes are done. It might be executed\n     * immediately if it is not nested in any other change block, but if it is nested in another (enqueue)change block,\n     * it will be delayed and executed after the outermost block.\n     *\n     *\t\tmodel.change( writer => {\n     *\t\t\tconsole.log( 1 );\n     *\n     *\t\t\tmodel.enqueueChange( writer => {\n     *\t\t\t\tconsole.log( 2 );\n     *\t\t\t} );\n     *\n     * \t\t\tconsole.log( 3 );\n     *\t\t} ); // Will log: 1, 3, 2.\n     *\n     * Second, it lets you define the {@link module:engine/model/batch~Batch} into which you want to add your changes.\n     * By default, a new batch is created. In the sample above, `change` and `enqueueChange` blocks use a different\n     * batch (and different {@link module:engine/model/writer~Writer} since each of them operates on the separate batch).\n     *\n     * When using the `enqueueChange()` block you can also add some changes to the batch you used before.\n     *\n     *\t\tmodel.enqueueChange( batch, writer => {\n     *\t\t\twriter.insertText( 'foo', paragraph, 'end' );\n     *\t\t} );\n     *\n     * The batch instance can be obtained from {@link module:engine/model/writer~Writer#batch the writer}.\n     *\n     * @param {module:engine/model/batch~Batch|'transparent'|'default'} batchOrType Batch or batch type should be used in the callback.\n     * If not defined, a new batch will be created.\n     * @param {Function} callback Callback function which may modify the model.\n     */\n\n  }, {\n    key: \"enqueueChange\",\n    value: function enqueueChange(batchOrType, callback) {\n      try {\n        if (typeof batchOrType === 'string') {\n          batchOrType = new Batch(batchOrType);\n        } else if (typeof batchOrType == 'function') {\n          callback = batchOrType;\n          batchOrType = new Batch();\n        }\n\n        this._pendingChanges.push({\n          batch: batchOrType,\n          callback: callback\n        });\n\n        if (this._pendingChanges.length == 1) {\n          this._runPendingChanges();\n        }\n      } catch (err) {\n        CKEditorError.rethrowUnexpectedError(err, this);\n      }\n    }\n    /**\n     * {@link module:utils/observablemixin~ObservableMixin#decorate Decorated} function for applying\n     * {@link module:engine/model/operation/operation~Operation operations} to the model.\n     *\n     * This is a low-level way of changing the model. It is exposed for very specific use cases (like the undo feature).\n     * Normally, to modify the model, you will want to use {@link module:engine/model/writer~Writer `Writer`}.\n     * See also {@glink framework/guides/architecture/editing-engine#changing-the-model Changing the model} section\n     * of the {@glink framework/guides/architecture/editing-engine Editing architecture} guide.\n     *\n     * @param {module:engine/model/operation/operation~Operation} operation The operation to apply.\n     */\n\n  }, {\n    key: \"applyOperation\",\n    value: function applyOperation(operation) {\n      operation._execute();\n    }\n    /**\n     * Inserts content at the position in the editor specified by the selection, as one would expect the paste\n     * functionality to work.\n     *\n     * This is a high-level method. It takes the {@link #schema schema} into consideration when inserting\n     * the content, clears the given selection's content before inserting nodes and moves the selection\n     * to its target position at the end of the process.\n     * It can split elements, merge them, wrap bare text nodes with paragraphs, etc. &mdash; just like the\n     * pasting feature should do.\n     *\n     * For lower-level methods see {@link module:engine/model/writer~Writer `Writer`}.\n     *\n     * This method, unlike {@link module:engine/model/writer~Writer `Writer`}'s methods, does not have to be used\n     * inside a {@link #change `change()` block}.\n     *\n     * # Conversion and schema\n     *\n     * Inserting elements and text nodes into the model is not enough to make CKEditor 5 render that content\n     * to the user. CKEditor 5 implements a model-view-controller architecture and what `model.insertContent()` does\n     * is only adding nodes to the model. Additionally, you need to define\n     * {@glink framework/guides/architecture/editing-engine#conversion converters} between the model and view\n     * and define those nodes in the {@glink framework/guides/architecture/editing-engine#schema schema}.\n     *\n     * So, while this method may seem similar to CKEditor 4 `editor.insertHtml()` (in fact, both methods\n     * are used for paste-like content insertion), the CKEditor 5 method cannot be use to insert arbitrary HTML\n     * unless converters are defined for all elements and attributes in that HTML.\n     *\n     * # Examples\n     *\n     * Using `insertContent()` with a manually created model structure:\n     *\n     *\t\t// Let's create a document fragment containing such content as:\n     *\t\t//\n     *\t\t// <paragrap>foo</paragraph>\n     *\t\t// <blockQuote>\n     *\t\t//    <paragraph>bar</paragraph>\n     *\t\t// </blockQuote>\n     *\t\tconst docFrag = editor.model.change( writer => {\n     *\t\t\tconst p1 = writer.createElement( 'paragraph' );\n     *\t\t\tconst p2 = writer.createElement( 'paragraph' );\n     *\t\t\tconst blockQuote = writer.createElement( 'blockQuote' );\n     *\t\t\tconst docFrag = writer.createDocumentFragment();\n     *\n     *\t\t\twriter.append( p1, docFrag );\n     *\t\t\twriter.append( blockQuote, docFrag );\n     *\t\t\twriter.append( p2, blockQuote );\n     *\t\t\twriter.insertText( 'foo', p1 );\n     *\t\t\twriter.insertText( 'bar', p2 );\n     *\n     *\t\t\treturn docFrag;\n     *\t\t} );\n     *\n     *\t\t// insertContent() does not have to be used in a change() block. It can, though,\n     *\t\t// so this code could be moved to the callback defined above.\n     *\t\teditor.model.insertContent( docFrag );\n     *\n     * Using `insertContent()` with an HTML string converted to a model document fragment (similar to the pasting mechanism):\n     *\n     *\t\t// You can create your own HtmlDataProcessor instance or use editor.data.processor\n     *\t\t// if you have not overridden the default one (which is the HtmlDataProcessor instance).\n     *\t\tconst htmlDP = new HtmlDataProcessor();\n     *\n     *\t\t// Convert an HTML string to a view document fragment:\n     *\t\tconst viewFragment = htmlDP.toView( htmlString );\n     *\n     *\t\t// Convert the view document fragment to a model document fragment\n     *\t\t// in the context of $root. This conversion takes the schema into\n     *\t\t// account so if, for example, the view document fragment contained a bare text node,\n     *\t\t// this text node cannot be a child of $root, so it will be automatically\n     *\t\t// wrapped with a <paragraph>. You can define the context yourself (in the second parameter),\n     *\t\t// and e.g. convert the content like it would happen in a <paragraph>.\n     *\t\t// Note: The clipboard feature uses a custom context called $clipboardHolder\n     *\t\t// which has a loosened schema.\n     *\t\tconst modelFragment = editor.data.toModel( viewFragment );\n     *\n     *\t\teditor.model.insertContent( modelFragment );\n     *\n     * By default this method will use the document selection but it can also be used with a position, range or selection instance.\n     *\n     *\t\t// Insert text at the current document selection position.\n     *\t\teditor.model.change( writer => {\n     *\t\t\teditor.model.insertContent( writer.createText( 'x' ) );\n     *\t\t} );\n     *\n     *\t\t// Insert text at a given position - the document selection will not be modified.\n     *\t\teditor.model.change( writer => {\n     *\t\t\teditor.model.insertContent( writer.createText( 'x' ), doc.getRoot(), 2 );\n     *\n     *\t\t\t// Which is a shorthand for:\n     *\t\t\teditor.model.insertContent( writer.createText( 'x' ), writer.createPositionAt( doc.getRoot(), 2 ) );\n     *\t\t} );\n     *\n     * If an instance of {@link module:engine/model/selection~Selection} is passed as `selectable`\n     * it will be moved to the target position (where the document selection should be moved after the insertion).\n     *\n     *\t\teditor.model.change( writer => {\n     *\t\t\t// Insert text replacing the given selection instance.\n     *\t\t\tconst selection = writer.createSelection( paragraph, 'in' );\n     *\n     *\t\t\teditor.model.insertContent( writer.createText( 'x' ), selection );\n     *\n     *\t\t\t// insertContent() modifies the passed selection instance so it can be used to set the document selection.\n     *\t\t\t// Note: This is not necessary when you passed the document selection to insertContent().\n     *\t\t\twriter.setSelection( selection );\n     *\t\t} );\n     *\n     * @fires insertContent\n     * @param {module:engine/model/documentfragment~DocumentFragment|module:engine/model/item~Item} content The content to insert.\n     * @param {module:engine/model/selection~Selectable} [selectable=model.document.selection]\n     * The selection into which the content should be inserted. If not provided the current model document selection will be used.\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] To be used when a model item was passed as `selectable`.\n     * This param defines a position in relation to that item.\n     * @returns {module:engine/model/range~Range} Range which contains all the performed changes. This is a range that, if removed,\n     * would return the model to the state before the insertion. If no changes were preformed by `insertContent`, returns a range collapsed\n     * at the insertion position.\n     */\n\n  }, {\n    key: \"insertContent\",\n    value: function insertContent(content, selectable, placeOrOffset) {\n      return _insertContent(this, content, selectable, placeOrOffset);\n    }\n    /**\n     * Deletes content of the selection and merge siblings. The resulting selection is always collapsed.\n     *\n     * **Note:** For the sake of predictability, the resulting selection should always be collapsed.\n     * In cases where a feature wants to modify deleting behavior so selection isn't collapsed\n     * (e.g. a table feature may want to keep row selection after pressing <kbd>Backspace</kbd>),\n     * then that behavior should be implemented in the view's listener. At the same time, the table feature\n     * will need to modify this method's behavior too, e.g. to \"delete contents and then collapse\n     * the selection inside the last selected cell\" or \"delete the row and collapse selection somewhere near\".\n     * That needs to be done in order to ensure that other features which use `deleteContent()` will work well with tables.\n     *\n     * @fires deleteContent\n     * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n     * Selection of which the content should be deleted.\n     * @param {Object} [options]\n     * @param {Boolean} [options.leaveUnmerged=false] Whether to merge elements after removing the content of the selection.\n     *\n     * For example `<heading1>x[x</heading1><paragraph>y]y</paragraph>` will become:\n     *\n     * * `<heading1>x^y</heading1>` with the option disabled (`leaveUnmerged == false`)\n     * * `<heading1>x^</heading1><paragraph>y</paragraph>` with enabled (`leaveUnmerged == true`).\n     *\n     * Note: {@link module:engine/model/schema~Schema#isObject object} and {@link module:engine/model/schema~Schema#isLimit limit}\n     * elements will not be merged.\n     *\n     * @param {Boolean} [options.doNotResetEntireContent=false] Whether to skip replacing the entire content with a\n     * paragraph when the entire content was selected.\n     *\n     * For example `<heading1>[x</heading1><paragraph>y]</paragraph>` will become:\n     *\n     * * `<paragraph>^</paragraph>` with the option disabled (`doNotResetEntireContent == false`)\n     * * `<heading1>^</heading1>` with enabled (`doNotResetEntireContent == true`)\n     *\n     * @param {Boolean} [options.doNotAutoparagraph=false] Whether to create a paragraph if after content deletion selection is moved\n     * to a place where text cannot be inserted.\n     *\n     * For example `<paragraph>x</paragraph>[<image src=\"foo.jpg\"></image>]` will become:\n     *\n     * * `<paragraph>x</paragraph><paragraph>[]</paragraph>` with the option disabled (`doNotAutoparagraph == false`)\n     * * `<paragraph>x[]</paragraph>` with the option enabled (`doNotAutoparagraph == true`).\n     *\n     * **Note:** if there is no valid position for the selection, the paragraph will always be created:\n     *\n     * `[<image src=\"foo.jpg\"></image>]` -> `<paragraph>[]</paragraph>`.\n     */\n\n  }, {\n    key: \"deleteContent\",\n    value: function deleteContent(selection, options) {\n      _deleteContent(this, selection, options);\n    }\n    /**\n     * Modifies the selection. Currently, the supported modifications are:\n     *\n     * * Extending. The selection focus is moved in the specified `options.direction` with a step specified in `options.unit`.\n     * Possible values for `unit` are:\n     *  * `'character'` (default) - moves selection by one user-perceived character. In most cases this means moving by one\n     *  character in `String` sense. However, unicode also defines \"combing marks\". These are special symbols, that combines\n     *  with a symbol before it (\"base character\") to create one user-perceived character. For example, `q̣̇` is a normal\n     *  letter `q` with two \"combining marks\": upper dot (`Ux0307`) and lower dot (`Ux0323`). For most actions, i.e. extending\n     *  selection by one position, it is correct to include both \"base character\" and all of it's \"combining marks\". That is\n     *  why `'character'` value is most natural and common method of modifying selection.\n     *  * `'codePoint'` - moves selection by one unicode code point. In contrary to, `'character'` unit, this will insert\n     *  selection between \"base character\" and \"combining mark\", because \"combining marks\" have their own unicode code points.\n     *  However, for technical reasons, unicode code points with values above `UxFFFF` are represented in native `String` by\n     *  two characters, called \"surrogate pairs\". Halves of \"surrogate pairs\" have a meaning only when placed next to each other.\n     *  For example `𨭎` is represented in `String` by `\\uD862\\uDF4E`. Both `\\uD862` and `\\uDF4E` do not have any meaning\n     *  outside the pair (are rendered as ? when alone). Position between them would be incorrect. In this case, selection\n     *  extension will include whole \"surrogate pair\".\n     *  * `'word'` - moves selection by a whole word.\n     *\n     * **Note:** if you extend a forward selection in a backward direction you will in fact shrink it.\n     *\n     * @fires modifySelection\n     * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n     * The selection to modify.\n     * @param {Object} [options]\n     * @param {'forward'|'backward'} [options.direction='forward'] The direction in which the selection should be modified.\n     * @param {'character'|'codePoint'|'word'} [options.unit='character'] The unit by which selection should be modified.\n     */\n\n  }, {\n    key: \"modifySelection\",\n    value: function modifySelection(selection, options) {\n      _modifySelection(this, selection, options);\n    }\n    /**\n     * Gets a clone of the selected content.\n     *\n     * For example, for the following selection:\n     *\n     * ```html\n     * <paragraph>x</paragraph>\n     * <blockQuote>\n     *\t<paragraph>y</paragraph>\n     *\t<heading1>fir[st</heading1>\n     * </blockQuote>\n     * <paragraph>se]cond</paragraph>\n     * <paragraph>z</paragraph>\n     * ```\n     *\n     * It will return a document fragment with such a content:\n     *\n     * ```html\n     * <blockQuote>\n     *\t<heading1>st</heading1>\n     * </blockQuote>\n     * <paragraph>se</paragraph>\n     * ```\n     *\n     * @fires getSelectedContent\n     * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n     * The selection of which content will be returned.\n     * @returns {module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"getSelectedContent\",\n    value: function getSelectedContent(selection) {\n      return _getSelectedContent(this, selection);\n    }\n    /**\n     * Checks whether the given {@link module:engine/model/range~Range range} or\n     * {@link module:engine/model/element~Element element} has any meaningful content.\n     *\n     * Meaningful content is:\n     *\n     * * any text node (`options.ignoreWhitespaces` allows controlling whether this text node must also contain\n     * any non-whitespace characters),\n     * * or any {@link module:engine/model/schema~Schema#isObject object element},\n     * * or any {@link module:engine/model/markercollection~Marker marker} which\n     * {@link module:engine/model/markercollection~Marker#_affectsData affects data}.\n     *\n     * This means that a range containing an empty `<paragraph></paragraph>` is not considered to have a meaningful content.\n     * However, a range containing an `<image></image>` (which would normally be marked in the schema as an object element)\n     * is considered non-empty.\n     *\n     * @param {module:engine/model/range~Range|module:engine/model/element~Element} rangeOrElement Range or element to check.\n     * @param {Object} [options]\n     * @param {Boolean} [options.ignoreWhitespaces] Whether text node with whitespaces only should be considered empty.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"hasContent\",\n    value: function hasContent(rangeOrElement, options) {\n      var range = rangeOrElement instanceof ModelElement ? ModelRange._createIn(rangeOrElement) : rangeOrElement;\n\n      if (range.isCollapsed) {\n        return false;\n      } // Check if there are any markers which affects data in this given range.\n\n\n      var _iterator = _createForOfIteratorHelper(this.markers.getMarkersIntersectingRange(range)),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var intersectingMarker = _step.value;\n\n          if (intersectingMarker.affectsData) {\n            return true;\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      var _ref = options || {},\n          _ref$ignoreWhitespace = _ref.ignoreWhitespaces,\n          ignoreWhitespaces = _ref$ignoreWhitespace === void 0 ? false : _ref$ignoreWhitespace;\n\n      var _iterator2 = _createForOfIteratorHelper(range.getItems()),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var item = _step2.value;\n\n          if (item.is('textProxy')) {\n            if (!ignoreWhitespaces) {\n              return true;\n            } else if (item.data.search(/\\S/) !== -1) {\n              return true;\n            }\n          } else if (this.schema.isObject(item)) {\n            return true;\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      return false;\n    }\n    /**\n     * Creates a position from the given root and path in that root.\n     *\n     * Note: This method is also available as\n     * {@link module:engine/model/writer~Writer#createPositionFromPath `Writer#createPositionFromPath()`}.\n     *\n     * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} root Root of the position.\n     * @param {Array.<Number>} path Position path. See {@link module:engine/model/position~Position#path}.\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone'] Position stickiness.\n     * See {@link module:engine/model/position~PositionStickiness}.\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"createPositionFromPath\",\n    value: function createPositionFromPath(root, path, stickiness) {\n      return new ModelPosition(root, path, stickiness);\n    }\n    /**\n     * Creates position at the given location. The location can be specified as:\n     *\n     * * a {@link module:engine/model/position~Position position},\n     * * a parent element and offset in that element,\n     * * a parent element and `'end'` (the position will be set at the end of that element),\n     * * a {@link module:engine/model/item~Item model item} and `'before'` or `'after'`\n     * (the position will be set before or after the given model item).\n     *\n     * This method is a shortcut to other factory methods such as:\n     *\n     * * {@link module:engine/model/model~Model#createPositionBefore `createPositionBefore()`},\n     * * {@link module:engine/model/model~Model#createPositionAfter `createPositionAfter()`}.\n     *\n     * Note: This method is also available as\n     * {@link module:engine/model/writer~Writer#createPositionAt `Writer#createPositionAt()`},\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"createPositionAt\",\n    value: function createPositionAt(itemOrPosition, offset) {\n      return ModelPosition._createAt(itemOrPosition, offset);\n    }\n    /**\n     * Creates a new position after the given {@link module:engine/model/item~Item model item}.\n     *\n     * Note: This method is also available as\n     * {@link module:engine/model/writer~Writer#createPositionAfter `Writer#createPositionAfter()`}.\n     *\n     * @param {module:engine/model/item~Item} item Item after which the position should be placed.\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"createPositionAfter\",\n    value: function createPositionAfter(item) {\n      return ModelPosition._createAfter(item);\n    }\n    /**\n     * Creates a new position before the given {@link module:engine/model/item~Item model item}.\n     *\n     * Note: This method is also available as\n     * {@link module:engine/model/writer~Writer#createPositionBefore `Writer#createPositionBefore()`}.\n     *\n     * @param {module:engine/model/item~Item} item Item before which the position should be placed.\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"createPositionBefore\",\n    value: function createPositionBefore(item) {\n      return ModelPosition._createBefore(item);\n    }\n    /**\n     * Creates a range spanning from the `start` position to the `end` position.\n     *\n     * Note: This method is also available as\n     * {@link module:engine/model/writer~Writer#createRange `Writer#createRange()`}:\n     *\n     *\t\tmodel.change( writer => {\n     *\t\t\tconst range = writer.createRange( start, end );\n     *\t\t} );\n     *\n     * @param {module:engine/model/position~Position} start Start position.\n     * @param {module:engine/model/position~Position} [end] End position. If not set, the range will be collapsed\n     * to the `start` position.\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange(start, end) {\n      return new ModelRange(start, end);\n    }\n    /**\n     * Creates a range inside the given element which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     * Note: This method is also available as\n     * {@link module:engine/model/writer~Writer#createRangeIn `Writer#createRangeIn()`}:\n     *\n     *\t\tmodel.change( writer => {\n     *\t\t\tconst range = writer.createRangeIn( paragraph );\n     *\t\t} );\n     *\n     * @param {module:engine/model/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"createRangeIn\",\n    value: function createRangeIn(element) {\n      return ModelRange._createIn(element);\n    }\n    /**\n     * Creates a range that starts before the given {@link module:engine/model/item~Item model item} and ends after it.\n     *\n     * Note: This method is also available on `writer` instance as\n     * {@link module:engine/model/writer~Writer#createRangeOn `Writer.createRangeOn()`}:\n     *\n     *\t\tmodel.change( writer => {\n     *\t\t\tconst range = writer.createRangeOn( paragraph );\n     *\t\t} );\n     *\n     * @param {module:engine/model/item~Item} item\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"createRangeOn\",\n    value: function createRangeOn(item) {\n      return ModelRange._createOn(item);\n    }\n    /**\n     * Creates a new selection instance based on the given {@link module:engine/model/selection~Selectable selectable}\n     * or creates an empty selection if no arguments were passed.\n     *\n     * Note: This method is also available as\n     * {@link module:engine/model/writer~Writer#createSelection `Writer#createSelection()`}.\n     *\n     *\t\t// Creates empty selection without ranges.\n     *\t\tconst selection = writer.createSelection();\n     *\n     *\t\t// Creates selection at the given range.\n     *\t\tconst range = writer.createRange( start, end );\n     *\t\tconst selection = writer.createSelection( range );\n     *\n     *\t\t// Creates selection at the given ranges\n     *\t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n     *\t\tconst selection = writer.createSelection( ranges );\n     *\n     *\t\t// Creates selection from the other selection.\n     *\t\t// Note: It doesn't copies selection attributes.\n     *\t\tconst otherSelection = writer.createSelection();\n     *\t\tconst selection = writer.createSelection( otherSelection );\n     *\n     *\t\t// Creates selection from the given document selection.\n     *\t\t// Note: It doesn't copies selection attributes.\n     *\t\tconst documentSelection = model.document.selection;\n     *\t\tconst selection = writer.createSelection( documentSelection );\n     *\n     *\t\t// Creates selection at the given position.\n     *\t\tconst position = writer.createPositionFromPath( root, path );\n     *\t\tconst selection = writer.createSelection( position );\n     *\n     *\t\t// Creates selection at the given offset in the given element.\n     *\t\tconst paragraph = writer.createElement( 'paragraph' );\n     *\t\tconst selection = writer.createSelection( paragraph, offset );\n     *\n     *\t\t// Creates a range inside an {@link module:engine/model/element~Element element} which starts before the\n     *\t\t// first child of that element and ends after the last child of that element.\n     *\t\tconst selection = writer.createSelection( paragraph, 'in' );\n     *\n     *\t\t// Creates a range on an {@link module:engine/model/item~Item item} which starts before the item and ends\n     *\t\t// just after the item.\n     *\t\tconst selection = writer.createSelection( paragraph, 'on' );\n     *\n     *\t\t// Additional options (`'backward'`) can be specified as the last argument.\n     *\n     *\t\t// Creates backward selection.\n     *\t\tconst selection = writer.createSelection( range, { backward: true } );\n     *\n     * @param {module:engine/model/selection~Selectable} selectable\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     * @returns {module:engine/model/selection~Selection}\n     */\n\n  }, {\n    key: \"createSelection\",\n    value: function createSelection(selectable, placeOrOffset, options) {\n      return new ModelSelection(selectable, placeOrOffset, options);\n    }\n    /**\n     * Creates a {@link module:engine/model/batch~Batch} instance.\n     *\n     * **Note:** In most cases creating a batch instance is not necessary as they are created when using:\n     *\n     * * {@link #change `change()`},\n     * * {@link #enqueueChange `enqueueChange()`}.\n     *\n     * @param {'transparent'|'default'} [type='default'] The type of the batch.\n     * @returns {module:engine/model/batch~Batch}\n     */\n\n  }, {\n    key: \"createBatch\",\n    value: function createBatch(type) {\n      return new Batch(type);\n    }\n    /**\n     * Removes all events listeners set by model instance and destroys {@link module:engine/model/document~Document}.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.document.destroy();\n      this.stopListening();\n    }\n    /**\n     * Common part of {@link module:engine/model/model~Model#change} and {@link module:engine/model/model~Model#enqueueChange}\n     * which calls callbacks and returns array of values returned by these callbacks.\n     *\n     * @private\n     * @returns {Array.<*>} Array of values returned by callbacks.\n     */\n\n  }, {\n    key: \"_runPendingChanges\",\n    value: function _runPendingChanges() {\n      var ret = [];\n      this.fire('_beforeChanges');\n\n      while (this._pendingChanges.length) {\n        // Create a new writer using batch instance created for this chain of changes.\n        var currentBatch = this._pendingChanges[0].batch;\n        this._currentWriter = new Writer(this, currentBatch); // Execute changes callback and gather the returned value.\n\n        var callbackReturnValue = this._pendingChanges[0].callback(this._currentWriter);\n\n        ret.push(callbackReturnValue);\n\n        this.document._handleChangeBlock(this._currentWriter);\n\n        this._pendingChanges.shift();\n\n        this._currentWriter = null;\n      }\n\n      this.fire('_afterChanges');\n      return ret;\n    }\n    /**\n     * Fired when entering the outermost {@link module:engine/model/model~Model#enqueueChange} or\n     * {@link module:engine/model/model~Model#change} block.\n     *\n     * @protected\n     * @event _beforeChanges\n     */\n\n    /**\n     * Fired when leaving the outermost {@link module:engine/model/model~Model#enqueueChange} or\n     * {@link module:engine/model/model~Model#change} block.\n     *\n     * @protected\n     * @event _afterChanges\n     */\n\n    /**\n     * Fired every time any {@link module:engine/model/operation/operation~Operation operation} is applied on the model\n     * using {@link #applyOperation}.\n     *\n     * Note that this event is suitable only for very specific use-cases. Use it if you need to listen to every single operation\n     * applied on the document. However, in most cases {@link module:engine/model/document~Document#event:change} should\n     * be used.\n     *\n     * A few callbacks are already added to this event by engine internal classes:\n     *\n     * * with `highest` priority operation is validated,\n     * * with `normal` priority operation is executed,\n     * * with `low` priority the {@link module:engine/model/document~Document} updates its version,\n     * * with `low` priority {@link module:engine/model/liveposition~LivePosition} and {@link module:engine/model/liverange~LiveRange}\n     * update themselves.\n     *\n     * @event applyOperation\n     * @param {Array} args Arguments of the `applyOperation` which is an array with a single element - applied\n     * {@link module:engine/model/operation/operation~Operation operation}.\n     */\n\n    /**\n     * Event fired when {@link #insertContent} method is called.\n     *\n     * The {@link #insertContent default action of that method} is implemented as a\n     * listener to this event so it can be fully customized by the features.\n     *\n     * **Note** The `selectable` parameter for the {@link #insertContent} is optional. When `undefined` value is passed the method uses\n     * `model.document.selection`.\n     *\n     * @event insertContent\n     * @param {Array} args The arguments passed to the original method.\n     */\n\n    /**\n     * Event fired when {@link #deleteContent} method is called.\n     *\n     * The {@link #deleteContent default action of that method} is implemented as a\n     * listener to this event so it can be fully customized by the features.\n     *\n     * @event deleteContent\n     * @param {Array} args The arguments passed to the original method.\n     */\n\n    /**\n     * Event fired when {@link #modifySelection} method is called.\n     *\n     * The {@link #modifySelection default action of that method} is implemented as a\n     * listener to this event so it can be fully customized by the features.\n     *\n     * @event modifySelection\n     * @param {Array} args The arguments passed to the original method.\n     */\n\n    /**\n     * Event fired when {@link #getSelectedContent} method is called.\n     *\n     * The {@link #getSelectedContent default action of that method} is implemented as a\n     * listener to this event so it can be fully customized by the features.\n     *\n     * @event getSelectedContent\n     * @param {Array} args The arguments passed to the original method.\n     */\n\n  }]);\n\n  return Model;\n}();\n\nexport { Model as default };\nmix(Model, ObservableMixin);","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/node\n */\nimport toMap from '@ckeditor/ckeditor5-utils/src/tomap';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays'; // To check if component is loaded more than once.\n\nimport '@ckeditor/ckeditor5-utils/src/version';\n/**\n * Model node. Most basic structure of model tree.\n *\n * This is an abstract class that is a base for other classes representing different nodes in model.\n *\n * **Note:** If a node is detached from the model tree, you can manipulate it using it's API.\n * However, it is **very important** that nodes already attached to model tree should be only changed through\n * {@link module:engine/model/writer~Writer Writer API}.\n *\n * Changes done by `Node` methods, like {@link module:engine/model/element~Element#_insertChild _insertChild} or\n * {@link module:engine/model/node~Node#_setAttribute _setAttribute}\n * do not generate {@link module:engine/model/operation/operation~Operation operations}\n * which are essential for correct editor work if you modify nodes in {@link module:engine/model/document~Document document} root.\n *\n * The flow of working on `Node` (and classes that inherits from it) is as such:\n * 1. You can create a `Node` instance, modify it using it's API.\n * 2. Add `Node` to the model using `Batch` API.\n * 3. Change `Node` that was already added to the model using `Batch` API.\n *\n * Similarly, you cannot use `Batch` API on a node that has not been added to the model tree, with the exception\n * of {@link module:engine/model/writer~Writer#insert inserting} that node to the model tree.\n *\n * Be aware that using {@link module:engine/model/writer~Writer#remove remove from Batch API} does not allow to use `Node` API because\n * the information about `Node` is still kept in model document.\n *\n * In case of {@link module:engine/model/element~Element element node}, adding and removing children also counts as changing a node and\n * follows same rules.\n */\n\nvar Node = /*#__PURE__*/function () {\n  /**\n   * Creates a model node.\n   *\n   * This is an abstract class, so this constructor should not be used directly.\n   *\n   * @abstract\n   * @param {Object} [attrs] Node's attributes. See {@link module:utils/tomap~toMap} for a list of accepted values.\n   */\n  function Node(attrs) {\n    _classCallCheck(this, Node);\n\n    /**\n     * Parent of this node. It could be {@link module:engine/model/element~Element}\n     * or {@link module:engine/model/documentfragment~DocumentFragment}.\n     * Equals to `null` if the node has no parent.\n     *\n     * @readonly\n     * @member {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment|null}\n     */\n    this.parent = null;\n    /**\n     * Attributes set on this node.\n     *\n     * @private\n     * @member {Map} module:engine/model/node~Node#_attrs\n     */\n\n    this._attrs = toMap(attrs);\n  }\n  /**\n   * Index of this node in it's parent or `null` if the node has no parent.\n   *\n   * Accessing this property throws an error if this node's parent element does not contain it.\n   * This means that model tree got broken.\n   *\n   * @readonly\n   * @type {Number|null}\n   */\n\n\n  _createClass(Node, [{\n    key: \"getPath\",\n\n    /**\n     * Gets path to the node. The path is an array containing starting offsets of consecutive ancestors of this node,\n     * beginning from {@link module:engine/model/node~Node#root root}, down to this node's starting offset. The path can be used to\n     * create {@link module:engine/model/position~Position Position} instance.\n     *\n     *\t\tconst abc = new Text( 'abc' );\n     *\t\tconst foo = new Text( 'foo' );\n     *\t\tconst h1 = new Element( 'h1', null, new Text( 'header' ) );\n     *\t\tconst p = new Element( 'p', null, [ abc, foo ] );\n     *\t\tconst div = new Element( 'div', null, [ h1, p ] );\n     *\t\tfoo.getPath(); // Returns [ 1, 3 ]. `foo` is in `p` which is in `div`. `p` starts at offset 1, while `foo` at 3.\n     *\t\th1.getPath(); // Returns [ 0 ].\n     *\t\tdiv.getPath(); // Returns [].\n     *\n     * @returns {Array.<Number>} The path.\n     */\n    value: function getPath() {\n      var path = [];\n      var node = this; // eslint-disable-line consistent-this\n\n      while (node.parent) {\n        path.unshift(node.startOffset);\n        node = node.parent;\n      }\n\n      return path;\n    }\n    /**\n     * Returns ancestors array of this node.\n     *\n     * @param {Object} options Options object.\n     * @param {Boolean} [options.includeSelf=false] When set to `true` this node will be also included in parent's array.\n     * @param {Boolean} [options.parentFirst=false] When set to `true`, array will be sorted from node's parent to root element,\n     * otherwise root element will be the first item in the array.\n     * @returns {Array} Array with ancestors.\n     */\n\n  }, {\n    key: \"getAncestors\",\n    value: function getAncestors() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n        includeSelf: false,\n        parentFirst: false\n      };\n      var ancestors = [];\n      var parent = options.includeSelf ? this : this.parent;\n\n      while (parent) {\n        ancestors[options.parentFirst ? 'push' : 'unshift'](parent);\n        parent = parent.parent;\n      }\n\n      return ancestors;\n    }\n    /**\n     * Returns a {@link module:engine/model/element~Element} or {@link module:engine/model/documentfragment~DocumentFragment}\n     * which is a common ancestor of both nodes.\n     *\n     * @param {module:engine/model/node~Node} node The second node.\n     * @param {Object} options Options object.\n     * @param {Boolean} [options.includeSelf=false] When set to `true` both nodes will be considered \"ancestors\" too.\n     * Which means that if e.g. node A is inside B, then their common ancestor will be B.\n     * @returns {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"getCommonAncestor\",\n    value: function getCommonAncestor(node) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var ancestorsA = this.getAncestors(options);\n      var ancestorsB = node.getAncestors(options);\n      var i = 0;\n\n      while (ancestorsA[i] == ancestorsB[i] && ancestorsA[i]) {\n        i++;\n      }\n\n      return i === 0 ? null : ancestorsA[i - 1];\n    }\n    /**\n     * Returns whether this node is before given node. `false` is returned if nodes are in different trees (for example,\n     * in different {@link module:engine/model/documentfragment~DocumentFragment}s).\n     *\n     * @param {module:engine/model/node~Node} node Node to compare with.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isBefore\",\n    value: function isBefore(node) {\n      // Given node is not before this node if they are same.\n      if (this == node) {\n        return false;\n      } // Return `false` if it is impossible to compare nodes.\n\n\n      if (this.root !== node.root) {\n        return false;\n      }\n\n      var thisPath = this.getPath();\n      var nodePath = node.getPath();\n      var result = compareArrays(thisPath, nodePath);\n\n      switch (result) {\n        case 'prefix':\n          return true;\n\n        case 'extension':\n          return false;\n\n        default:\n          return thisPath[result] < nodePath[result];\n      }\n    }\n    /**\n     * Returns whether this node is after given node. `false` is returned if nodes are in different trees (for example,\n     * in different {@link module:engine/model/documentfragment~DocumentFragment}s).\n     *\n     * @param {module:engine/model/node~Node} node Node to compare with.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isAfter\",\n    value: function isAfter(node) {\n      // Given node is not before this node if they are same.\n      if (this == node) {\n        return false;\n      } // Return `false` if it is impossible to compare nodes.\n\n\n      if (this.root !== node.root) {\n        return false;\n      } // In other cases, just check if the `node` is before, and return the opposite.\n\n\n      return !this.isBefore(node);\n    }\n    /**\n     * Checks if the node has an attribute with given key.\n     *\n     * @param {String} key Key of attribute to check.\n     * @returns {Boolean} `true` if attribute with given key is set on node, `false` otherwise.\n     */\n\n  }, {\n    key: \"hasAttribute\",\n    value: function hasAttribute(key) {\n      return this._attrs.has(key);\n    }\n    /**\n     * Gets an attribute value for given key or `undefined` if that attribute is not set on node.\n     *\n     * @param {String} key Key of attribute to look for.\n     * @returns {*} Attribute value or `undefined`.\n     */\n\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(key) {\n      return this._attrs.get(key);\n    }\n    /**\n     * Returns iterator that iterates over this node's attributes.\n     *\n     * Attributes are returned as arrays containing two items. First one is attribute key and second is attribute value.\n     * This format is accepted by native `Map` object and also can be passed in `Node` constructor.\n     *\n     * @returns {Iterable.<*>}\n     */\n\n  }, {\n    key: \"getAttributes\",\n    value: function getAttributes() {\n      return this._attrs.entries();\n    }\n    /**\n     * Returns iterator that iterates over this node's attribute keys.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getAttributeKeys\",\n    value: function getAttributeKeys() {\n      return this._attrs.keys();\n    }\n    /**\n     * Converts `Node` to plain object and returns it.\n     *\n     * @returns {Object} `Node` converted to plain object.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = {}; // Serializes attributes to the object.\n      // attributes = { a: 'foo', b: 1, c: true }.\n\n      if (this._attrs.size) {\n        json.attributes = Array.from(this._attrs).reduce(function (result, attr) {\n          result[attr[0]] = attr[1];\n          return result;\n        }, {});\n      }\n\n      return json;\n    }\n    /**\n     * Checks whether this object is of the given type.\n     *\n     * This method is useful when processing model objects that are of unknown type. For example, a function\n     * may return a {@link module:engine/model/documentfragment~DocumentFragment} or a {@link module:engine/model/node~Node}\n     * that can be either a text node or an element. This method can be used to check what kind of object is returned.\n     *\n     *\t\tsomeObject.is( 'element' ); // -> true if this is an element\n     *\t\tsomeObject.is( 'node' ); // -> true if this is a node (a text node or an element)\n     *\t\tsomeObject.is( 'documentFragment' ); // -> true if this is a document fragment\n     *\n     * Since this method is also available on a range of view objects, you can prefix the type of the object with\n     * `model:` or `view:` to check, for example, if this is the model's or view's element:\n     *\n     *\t\tmodelElement.is( 'model:element' ); // -> true\n     *\t\tmodelElement.is( 'view:element' ); // -> false\n     *\n     * By using this method it is also possible to check a name of an element:\n     *\n     *\t\timageElement.is( 'image' ); // -> true\n     *\t\timageElement.is( 'element', 'image' ); // -> same as above\n     *\t\timageElement.is( 'model:element', 'image' ); // -> same as above, but more precise\n     *\n     * The list of model objects which implement the `is()` method:\n     *\n     * * {@link module:engine/model/node~Node#is `Node#is()`}\n     * * {@link module:engine/model/text~Text#is `Text#is()`}\n     * * {@link module:engine/model/element~Element#is `Element#is()`}\n     * * {@link module:engine/model/rootelement~RootElement#is `RootElement#is()`}\n     * * {@link module:engine/model/position~Position#is `Position#is()`}\n     * * {@link module:engine/model/liveposition~LivePosition#is `LivePosition#is()`}\n     * * {@link module:engine/model/range~Range#is `Range#is()`}\n     * * {@link module:engine/model/liverange~LiveRange#is `LiveRange#is()`}\n     * * {@link module:engine/model/documentfragment~DocumentFragment#is `DocumentFragment#is()`}\n     * * {@link module:engine/model/selection~Selection#is `Selection#is()`}\n     * * {@link module:engine/model/documentselection~DocumentSelection#is `DocumentSelection#is()`}\n     * * {@link module:engine/model/markercollection~Marker#is `Marker#is()`}\n     * * {@link module:engine/model/textproxy~TextProxy#is `TextProxy#is()`}\n     *\n     * @method #is\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'node' || type == 'model:node';\n    }\n    /**\n     * Creates a copy of this node, that is a node with exactly same attributes, and returns it.\n     *\n     * @protected\n     * @returns {module:engine/model/node~Node} Node with same attributes as this node.\n     */\n\n  }, {\n    key: \"_clone\",\n    value: function _clone() {\n      return new Node(this._attrs);\n    }\n    /**\n     * Removes this node from it's parent.\n     *\n     * @see module:engine/model/writer~Writer#remove\n     * @protected\n     */\n\n  }, {\n    key: \"_remove\",\n    value: function _remove() {\n      this.parent._removeChildren(this.index);\n    }\n    /**\n     * Sets attribute on the node. If attribute with the same key already is set, it's value is overwritten.\n     *\n     * @see module:engine/model/writer~Writer#setAttribute\n     * @protected\n     * @param {String} key Key of attribute to set.\n     * @param {*} value Attribute value.\n     */\n\n  }, {\n    key: \"_setAttribute\",\n    value: function _setAttribute(key, value) {\n      this._attrs.set(key, value);\n    }\n    /**\n     * Removes all attributes from the node and sets given attributes.\n     *\n     * @see module:engine/model/writer~Writer#setAttributes\n     * @protected\n     * @param {Object} [attrs] Attributes to set. See {@link module:utils/tomap~toMap} for a list of accepted values.\n     */\n\n  }, {\n    key: \"_setAttributesTo\",\n    value: function _setAttributesTo(attrs) {\n      this._attrs = toMap(attrs);\n    }\n    /**\n     * Removes an attribute with given key from the node.\n     *\n     * @see module:engine/model/writer~Writer#removeAttribute\n     * @protected\n     * @param {String} key Key of attribute to remove.\n     * @returns {Boolean} `true` if the attribute was set on the element, `false` otherwise.\n     */\n\n  }, {\n    key: \"_removeAttribute\",\n    value: function _removeAttribute(key) {\n      return this._attrs.delete(key);\n    }\n    /**\n     * Removes all attributes from the node.\n     *\n     * @see module:engine/model/writer~Writer#clearAttributes\n     * @protected\n     */\n\n  }, {\n    key: \"_clearAttributes\",\n    value: function _clearAttributes() {\n      this._attrs.clear();\n    }\n  }, {\n    key: \"index\",\n    get: function get() {\n      var pos;\n\n      if (!this.parent) {\n        return null;\n      }\n\n      if ((pos = this.parent.getChildIndex(this)) === null) {\n        throw new CKEditorError('model-node-not-found-in-parent: The node\\'s parent does not contain this node.', this);\n      }\n\n      return pos;\n    }\n    /**\n     * Offset at which this node starts in it's parent. It is equal to the sum of {@link #offsetSize offsetSize}\n     * of all it's previous siblings. Equals to `null` if node has no parent.\n     *\n     * Accessing this property throws an error if this node's parent element does not contain it.\n     * This means that model tree got broken.\n     *\n     * @readonly\n     * @type {Number|null}\n     */\n\n  }, {\n    key: \"startOffset\",\n    get: function get() {\n      var pos;\n\n      if (!this.parent) {\n        return null;\n      }\n\n      if ((pos = this.parent.getChildStartOffset(this)) === null) {\n        throw new CKEditorError('model-node-not-found-in-parent: The node\\'s parent does not contain this node.', this);\n      }\n\n      return pos;\n    }\n    /**\n     * Offset size of this node. Represents how much \"offset space\" is occupied by the node in it's parent.\n     * It is important for {@link module:engine/model/position~Position position}. When node has `offsetSize` greater than `1`, position\n     * can be placed between that node start and end. `offsetSize` greater than `1` is for nodes that represents more\n     * than one entity, i.e. {@link module:engine/model/text~Text text node}.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"offsetSize\",\n    get: function get() {\n      return 1;\n    }\n    /**\n     * Offset at which this node ends in it's parent. It is equal to the sum of this node's\n     * {@link module:engine/model/node~Node#startOffset start offset} and {@link #offsetSize offset size}.\n     * Equals to `null` if the node has no parent.\n     *\n     * @readonly\n     * @type {Number|null}\n     */\n\n  }, {\n    key: \"endOffset\",\n    get: function get() {\n      if (!this.parent) {\n        return null;\n      }\n\n      return this.startOffset + this.offsetSize;\n    }\n    /**\n     * Node's next sibling or `null` if the node is a last child of it's parent or if the node has no parent.\n     *\n     * @readonly\n     * @type {module:engine/model/node~Node|null}\n     */\n\n  }, {\n    key: \"nextSibling\",\n    get: function get() {\n      var index = this.index;\n      return index !== null && this.parent.getChild(index + 1) || null;\n    }\n    /**\n     * Node's previous sibling or `null` if the node is a first child of it's parent or if the node has no parent.\n     *\n     * @readonly\n     * @type {module:engine/model/node~Node|null}\n     */\n\n  }, {\n    key: \"previousSibling\",\n    get: function get() {\n      var index = this.index;\n      return index !== null && this.parent.getChild(index - 1) || null;\n    }\n    /**\n     * The top-most ancestor of the node. If node has no parent it is the root itself. If the node is a part\n     * of {@link module:engine/model/documentfragment~DocumentFragment}, it's `root` is equal to that `DocumentFragment`.\n     *\n     * @readonly\n     * @type {module:engine/model/node~Node|module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      var root = this; // eslint-disable-line consistent-this\n\n      while (root.parent) {\n        root = root.parent;\n      }\n\n      return root;\n    }\n    /**\n     * {@link module:engine/model/document~Document Document} that owns this node or `null` if the node has no parent or is inside\n     * a {@link module:engine/model/documentfragment~DocumentFragment DocumentFragment}.\n     *\n     * @readonly\n     * @type {module:engine/model/document~Document|null}\n     */\n\n  }, {\n    key: \"document\",\n    get: function get() {\n      // This is a top element of a sub-tree.\n      if (this.root == this) {\n        return null;\n      } // Root may be `DocumentFragment` which does not have document property.\n\n\n      return this.root.document || null;\n    }\n  }]);\n\n  return Node;\n}();\n/**\n * The node's parent does not contain this node.\n *\n * This error may be thrown from corrupted trees.\n *\n * @error model-node-not-found-in-parent\n */\n\n\nexport { Node as default };","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/nodelist\n */\nimport Node from \"./node\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Provides an interface to operate on a list of {@link module:engine/model/node~Node nodes}. `NodeList` is used internally\n * in classes like {@link module:engine/model/element~Element Element}\n * or {@link module:engine/model/documentfragment~DocumentFragment DocumentFragment}.\n */\n\nvar NodeList = /*#__PURE__*/function () {\n  /**\n   * Creates an empty node list.\n   *\n   * @protected\n   * @param {Iterable.<module:engine/model/node~Node>} nodes Nodes contained in this node list.\n   */\n  function NodeList(nodes) {\n    _classCallCheck(this, NodeList);\n\n    /**\n     * Nodes contained in this node list.\n     *\n     * @private\n     * @member {Array.<module:engine/model/node~Node>}\n     */\n    this._nodes = [];\n\n    if (nodes) {\n      this._insertNodes(0, nodes);\n    }\n  }\n  /**\n   * Iterable interface.\n   *\n   * Iterates over all nodes contained inside this node list.\n   *\n   * @returns {Iterable.<module:engine/model/node~Node>}\n   */\n\n\n  _createClass(NodeList, [{\n    key: Symbol.iterator,\n    value: function value() {\n      return this._nodes[Symbol.iterator]();\n    }\n    /**\n     * Number of nodes contained inside this node list.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"getNode\",\n\n    /**\n     * Gets the node at the given index. Returns `null` if incorrect index was passed.\n     *\n     * @param {Number} index Index of node.\n     * @returns {module:engine/model/node~Node|null} Node at given index.\n     */\n    value: function getNode(index) {\n      return this._nodes[index] || null;\n    }\n    /**\n     * Returns an index of the given node. Returns `null` if given node is not inside this node list.\n     *\n     * @param {module:engine/model/node~Node} node Child node to look for.\n     * @returns {Number|null} Child node's index.\n     */\n\n  }, {\n    key: \"getNodeIndex\",\n    value: function getNodeIndex(node) {\n      var index = this._nodes.indexOf(node);\n\n      return index == -1 ? null : index;\n    }\n    /**\n     * Returns the starting offset of given node. Starting offset is equal to the sum of\n     * {@link module:engine/model/node~Node#offsetSize offset sizes} of all nodes that are before this node in this node list.\n     *\n     * @param {module:engine/model/node~Node} node Node to look for.\n     * @returns {Number|null} Node's starting offset.\n     */\n\n  }, {\n    key: \"getNodeStartOffset\",\n    value: function getNodeStartOffset(node) {\n      var index = this.getNodeIndex(node);\n      return index === null ? null : this._nodes.slice(0, index).reduce(function (sum, node) {\n        return sum + node.offsetSize;\n      }, 0);\n    }\n    /**\n     * Converts index to offset in node list.\n     *\n     * Returns starting offset of a node that is at given index. Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError}\n     * `model-nodelist-index-out-of-bounds` if given index is less than `0` or more than {@link #length}.\n     *\n     * @param {Number} index Node's index.\n     * @returns {Number} Node's starting offset.\n     */\n\n  }, {\n    key: \"indexToOffset\",\n    value: function indexToOffset(index) {\n      if (index == this._nodes.length) {\n        return this.maxOffset;\n      }\n\n      var node = this._nodes[index];\n\n      if (!node) {\n        /**\n         * Given index cannot be found in the node list.\n         *\n         * @error nodelist-index-out-of-bounds\n         */\n        throw new CKEditorError('model-nodelist-index-out-of-bounds: Given index cannot be found in the node list.', this);\n      }\n\n      return this.getNodeStartOffset(node);\n    }\n    /**\n     * Converts offset in node list to index.\n     *\n     * Returns index of a node that occupies given offset. Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError}\n     * `model-nodelist-offset-out-of-bounds` if given offset is less than `0` or more than {@link #maxOffset}.\n     *\n     * @param {Number} offset Offset to look for.\n     * @returns {Number} Index of a node that occupies given offset.\n     */\n\n  }, {\n    key: \"offsetToIndex\",\n    value: function offsetToIndex(offset) {\n      var totalOffset = 0;\n\n      var _iterator = _createForOfIteratorHelper(this._nodes),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var node = _step.value;\n\n          if (offset >= totalOffset && offset < totalOffset + node.offsetSize) {\n            return this.getNodeIndex(node);\n          }\n\n          totalOffset += node.offsetSize;\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      if (totalOffset != offset) {\n        /**\n         * Given offset cannot be found in the node list.\n         *\n         * @error model-nodelist-offset-out-of-bounds\n         * @param {Number} offset\n         * @param {module:engine/model/nodelist~NodeList} nodeList Stringified node list.\n         */\n        throw new CKEditorError('model-nodelist-offset-out-of-bounds: Given offset cannot be found in the node list.', this, {\n          offset: offset,\n          nodeList: this\n        });\n      }\n\n      return this.length;\n    }\n    /**\n     * Inserts given nodes at given index.\n     *\n     * @protected\n     * @param {Number} index Index at which nodes should be inserted.\n     * @param {Iterable.<module:engine/model/node~Node>} nodes Nodes to be inserted.\n     */\n\n  }, {\n    key: \"_insertNodes\",\n    value: function _insertNodes(index, nodes) {\n      var _this$_nodes;\n\n      // Validation.\n      var _iterator2 = _createForOfIteratorHelper(nodes),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var node = _step2.value;\n\n          if (!(node instanceof Node)) {\n            /**\n             * Trying to insert an object which is not a Node instance.\n             *\n             * @error nodelist-insertNodes-not-node\n             */\n            throw new CKEditorError('model-nodelist-insertNodes-not-node: Trying to insert an object which is not a Node instance.', this);\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      (_this$_nodes = this._nodes).splice.apply(_this$_nodes, [index, 0].concat(_toConsumableArray(nodes)));\n    }\n    /**\n     * Removes one or more nodes starting at the given index.\n     *\n     * @protected\n     * @param {Number} indexStart Index of the first node to remove.\n     * @param {Number} [howMany=1] Number of nodes to remove.\n     * @returns {Array.<module:engine/model/node~Node>} Array containing removed nodes.\n     */\n\n  }, {\n    key: \"_removeNodes\",\n    value: function _removeNodes(indexStart) {\n      var howMany = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n      return this._nodes.splice(indexStart, howMany);\n    }\n    /**\n     * Converts `NodeList` instance to an array containing nodes that were inserted in the node list. Nodes\n     * are also converted to their plain object representation.\n     *\n     * @returns {Array.<module:engine/model/node~Node>} `NodeList` instance converted to `Array`.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return this._nodes.map(function (node) {\n        return node.toJSON();\n      });\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._nodes.length;\n    }\n    /**\n     * Sum of {@link module:engine/model/node~Node#offsetSize offset sizes} of all nodes contained inside this node list.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"maxOffset\",\n    get: function get() {\n      return this._nodes.reduce(function (sum, node) {\n        return sum + node.offsetSize;\n      }, 0);\n    }\n  }]);\n\n  return NodeList;\n}();\n\nexport { NodeList as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/attributeoperation\n */\nimport Operation from \"./operation\";\nimport Range from \"../range\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport { _setAttribute } from \"./utils\";\nimport { isEqual } from 'lodash-es';\n/**\n * Operation to change nodes' attribute.\n *\n * Using this class you can add, remove or change value of the attribute.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar AttributeOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(AttributeOperation, _Operation);\n\n  var _super = _createSuper(AttributeOperation);\n\n  /**\n   * Creates an operation that changes, removes or adds attributes.\n   *\n   * If only `newValue` is set, attribute will be added on a node. Note that all nodes in operation's range must not\n   * have an attribute with the same key as the added attribute.\n   *\n   * If only `oldValue` is set, then attribute with given key will be removed. Note that all nodes in operation's range\n   * must have an attribute with that key added.\n   *\n   * If both `newValue` and `oldValue` are set, then the operation will change the attribute value. Note that all nodes in\n   * operation's ranges must already have an attribute with given key and `oldValue` as value\n   *\n   * @param {module:engine/model/range~Range} range Range on which the operation should be applied. Must be a flat range.\n   * @param {String} key Key of an attribute to change or remove.\n   * @param {*} oldValue Old value of the attribute with given key or `null`, if attribute was not set before.\n   * @param {*} newValue New value of the attribute with given key or `null`, if operation should remove attribute.\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function AttributeOperation(range, key, oldValue, newValue, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, AttributeOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Range on which operation should be applied.\n     *\n     * @readonly\n     * @member {module:engine/model/range~Range}\n     */\n\n    _this.range = range.clone();\n    /**\n     * Key of an attribute to change or remove.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    _this.key = key;\n    /**\n     * Old value of the attribute with given key or `null`, if attribute was not set before.\n     *\n     * @readonly\n     * @member {*}\n     */\n\n    _this.oldValue = oldValue === undefined ? null : oldValue;\n    /**\n     * New value of the attribute with given key or `null`, if operation should remove attribute.\n     *\n     * @readonly\n     * @member {*}\n     */\n\n    _this.newValue = newValue === undefined ? null : newValue;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(AttributeOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/attributeoperation~AttributeOperation} Clone of this operation.\n     */\n    value: function clone() {\n      return new AttributeOperation(this.range, this.key, this.oldValue, this.newValue, this.baseVersion);\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/attributeoperation~AttributeOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      return new AttributeOperation(this.range, this.key, this.newValue, this.oldValue, this.baseVersion + 1);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(AttributeOperation.prototype), \"toJSON\", this).call(this);\n\n      json.range = this.range.toJSON();\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      if (!this.range.isFlat) {\n        /**\n         * The range to change is not flat.\n         *\n         * @error attribute-operation-range-not-flat\n         */\n        throw new CKEditorError('attribute-operation-range-not-flat: The range to change is not flat.', this);\n      }\n\n      var _iterator = _createForOfIteratorHelper(this.range.getItems({\n        shallow: true\n      })),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var item = _step.value;\n\n          if (this.oldValue !== null && !isEqual(item.getAttribute(this.key), this.oldValue)) {\n            /**\n             * Changed node has different attribute value than operation's old attribute value.\n             *\n             * @error attribute-operation-wrong-old-value\n             * @param {module:engine/model/item~Item} item\n             * @param {String} key\n             * @param {*} value\n             */\n            throw new CKEditorError('attribute-operation-wrong-old-value: Changed node has different attribute value than operation\\'s ' + 'old attribute value.', this, {\n              item: item,\n              key: this.key,\n              value: this.oldValue\n            });\n          }\n\n          if (this.oldValue === null && this.newValue !== null && item.hasAttribute(this.key)) {\n            /**\n             * The attribute with given key already exists for the given node.\n             *\n             * @error attribute-operation-attribute-exists\n             * @param {module:engine/model/node~Node} node\n             * @param {String} key\n             */\n            throw new CKEditorError('attribute-operation-attribute-exists: The attribute with given key already exists.', this, {\n              node: item,\n              key: this.key\n            });\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      // If value to set is same as old value, don't do anything.\n      if (!isEqual(this.oldValue, this.newValue)) {\n        // Execution.\n        _setAttribute(this.range, this.key, this.newValue);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      if (this.oldValue === null) {\n        return 'addAttribute';\n      } else if (this.newValue === null) {\n        return 'removeAttribute';\n      } else {\n        return 'changeAttribute';\n      }\n    }\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates `AttributeOperation` object from deserilized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/attributeoperation~AttributeOperation}\n     */\n    value: function fromJSON(json, document) {\n      return new AttributeOperation(Range.fromJSON(json.range, document), json.key, json.oldValue, json.newValue, json.baseVersion);\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'AttributeOperation';\n    }\n  }]);\n\n  return AttributeOperation;\n}(Operation);\n\nexport { AttributeOperation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/detachoperation\n */\nimport Operation from \"./operation\";\nimport Range from \"../range\";\nimport { _remove } from \"./utils\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Operation to permanently remove node from detached root.\n * Note this operation is only a local operation and won't be send to the other clients.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar DetachOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(DetachOperation, _Operation);\n\n  var _super = _createSuper(DetachOperation);\n\n  /**\n   * Creates an insert operation.\n   *\n   * @param {module:engine/model/position~Position} sourcePosition\n   * Position before the first {@link module:engine/model/item~Item model item} to move.\n   * @param {Number} howMany Offset size of moved range. Moved range will start from `sourcePosition` and end at\n   * `sourcePosition` with offset shifted by `howMany`.\n   */\n  function DetachOperation(sourcePosition, howMany) {\n    var _this;\n\n    _classCallCheck(this, DetachOperation);\n\n    _this = _super.call(this, null);\n    /**\n     * Position before the first {@link module:engine/model/item~Item model item} to detach.\n     *\n     * @member {module:engine/model/position~Position} #sourcePosition\n     */\n\n    _this.sourcePosition = sourcePosition.clone();\n    /**\n     * Offset size of moved range.\n     *\n     * @member {Number} #howMany\n     */\n\n    _this.howMany = howMany;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(DetachOperation, [{\n    key: \"toJSON\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(DetachOperation.prototype), \"toJSON\", this).call(this);\n\n      json.sourcePosition = this.sourcePosition.toJSON();\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      if (this.sourcePosition.root.document) {\n        /**\n         * Cannot detach document node.\n         *\n         * @error detach-operation-on-document-node\n         */\n        throw new CKEditorError('detach-operation-on-document-node: Cannot detach document node.', this);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      _remove(Range._createFromPositionAndShift(this.sourcePosition, this.howMany));\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      return 'detach';\n    }\n  }], [{\n    key: \"className\",\n    get: function get() {\n      return 'DetachOperation';\n    }\n  }]);\n\n  return DetachOperation;\n}(Operation);\n\nexport { DetachOperation as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/insertoperation\n */\nimport Operation from \"./operation\";\nimport Position from \"../position\";\nimport NodeList from \"../nodelist\";\nimport MoveOperation from \"./moveoperation\";\nimport { _insert, _normalizeNodes } from \"./utils\";\nimport Text from \"../text\";\nimport Element from \"../element\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Operation to insert one or more nodes at given position in the model.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar InsertOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(InsertOperation, _Operation);\n\n  var _super = _createSuper(InsertOperation);\n\n  /**\n   * Creates an insert operation.\n   *\n   * @param {module:engine/model/position~Position} position Position of insertion.\n   * @param {module:engine/model/node~NodeSet} nodes The list of nodes to be inserted.\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function InsertOperation(position, nodes, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, InsertOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Position of insertion.\n     *\n     * @readonly\n     * @member {module:engine/model/position~Position} module:engine/model/operation/insertoperation~InsertOperation#position\n     */\n\n    _this.position = position.clone();\n    _this.position.stickiness = 'toNone';\n    /**\n     * List of nodes to insert.\n     *\n     * @readonly\n     * @member {module:engine/model/nodelist~NodeList} module:engine/model/operation/insertoperation~InsertOperation#nodeList\n     */\n\n    _this.nodes = new NodeList(_normalizeNodes(nodes));\n    /**\n     * Flag deciding how the operation should be transformed. If set to `true`, nodes might get additional attributes\n     * during operational transformation. This happens when the operation insertion position is inside of a range\n     * where attributes have changed.\n     *\n     * @member {Boolean} module:engine/model/operation/insertoperation~InsertOperation#shouldReceiveAttributes\n     */\n\n    _this.shouldReceiveAttributes = false;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(InsertOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/insertoperation~InsertOperation} Clone of this operation.\n     */\n    value: function clone() {\n      var nodes = new NodeList(_toConsumableArray(this.nodes).map(function (node) {\n        return node._clone(true);\n      }));\n      var insert = new InsertOperation(this.position, nodes, this.baseVersion);\n      insert.shouldReceiveAttributes = this.shouldReceiveAttributes;\n      return insert;\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/moveoperation~MoveOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      var graveyard = this.position.root.document.graveyard;\n      var gyPosition = new Position(graveyard, [0]);\n      return new MoveOperation(this.position, this.nodes.maxOffset, gyPosition, this.baseVersion + 1);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      var targetElement = this.position.parent;\n\n      if (!targetElement || targetElement.maxOffset < this.position.offset) {\n        /**\n         * Insertion position is invalid.\n         *\n         * @error insert-operation-position-invalid\n         */\n        throw new CKEditorError('insert-operation-position-invalid: Insertion position is invalid.', this);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      // What happens here is that we want original nodes be passed to writer because we want original nodes\n      // to be inserted to the model. But in InsertOperation, we want to keep those nodes as they were added\n      // to the operation, not modified. For example, text nodes can get merged or cropped while Elements can\n      // get children. It is important that InsertOperation has the copy of original nodes in intact state.\n      var originalNodes = this.nodes;\n      this.nodes = new NodeList(_toConsumableArray(originalNodes).map(function (node) {\n        return node._clone(true);\n      }));\n\n      _insert(this.position, originalNodes);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(InsertOperation.prototype), \"toJSON\", this).call(this);\n\n      json.position = this.position.toJSON();\n      json.nodes = this.nodes.toJSON();\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      return 'insert';\n    }\n    /**\n     * Total offset size of inserted nodes.\n     *\n     * @returns {Number}\n     */\n\n  }, {\n    key: \"howMany\",\n    get: function get() {\n      return this.nodes.maxOffset;\n    }\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates `InsertOperation` object from deserilized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/insertoperation~InsertOperation}\n     */\n    value: function fromJSON(json, document) {\n      var children = [];\n\n      var _iterator = _createForOfIteratorHelper(json.nodes),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var child = _step.value;\n\n          if (child.name) {\n            // If child has name property, it is an Element.\n            children.push(Element.fromJSON(child));\n          } else {\n            // Otherwise, it is a Text node.\n            children.push(Text.fromJSON(child));\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      var insert = new InsertOperation(Position.fromJSON(json.position, document), children, json.baseVersion);\n      insert.shouldReceiveAttributes = json.shouldReceiveAttributes;\n      return insert;\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'InsertOperation';\n    }\n  }]);\n\n  return InsertOperation;\n}(Operation);\n\nexport { InsertOperation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/markeroperation\n */\nimport Operation from \"./operation\";\nimport Range from \"../range\";\n/**\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar MarkerOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(MarkerOperation, _Operation);\n\n  var _super = _createSuper(MarkerOperation);\n\n  /**\n   * @param {String} name Marker name.\n   * @param {module:engine/model/range~Range} oldRange Marker range before the change.\n   * @param {module:engine/model/range~Range} newRange Marker range after the change.\n   * @param {module:engine/model/markercollection~MarkerCollection} markers Marker collection on which change should be executed.\n   * @param {Boolean} affectsData Specifies whether the marker operation affects the data produced by the data pipeline\n   * (is persisted in the editor's data).\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function MarkerOperation(name, oldRange, newRange, markers, affectsData, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, MarkerOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Marker name.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    _this.name = name;\n    /**\n     * Marker range before the change.\n     *\n     * @readonly\n     * @member {module:engine/model/range~Range}\n     */\n\n    _this.oldRange = oldRange ? oldRange.clone() : null;\n    /**\n     * Marker range after the change.\n     *\n     * @readonly\n     * @member {module:engine/model/range~Range}\n     */\n\n    _this.newRange = newRange ? newRange.clone() : null;\n    /**\n     * Specifies whether the marker operation affects the data produced by the data pipeline\n     * (is persisted in the editor's data).\n     *\n     * @readonly\n     * @member {Boolean}\n     */\n\n    _this.affectsData = affectsData;\n    /**\n     * Marker collection on which change should be executed.\n     *\n     * @private\n     * @member {module:engine/model/markercollection~MarkerCollection}\n     */\n\n    _this._markers = markers;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(MarkerOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/markeroperation~MarkerOperation} Clone of this operation.\n     */\n    value: function clone() {\n      return new MarkerOperation(this.name, this.oldRange, this.newRange, this._markers, this.affectsData, this.baseVersion);\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/markeroperation~MarkerOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      return new MarkerOperation(this.name, this.newRange, this.oldRange, this._markers, this.affectsData, this.baseVersion + 1);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      var type = this.newRange ? '_set' : '_remove';\n\n      this._markers[type](this.name, this.newRange, true, this.affectsData);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(MarkerOperation.prototype), \"toJSON\", this).call(this);\n\n      if (this.oldRange) {\n        json.oldRange = this.oldRange.toJSON();\n      }\n\n      if (this.newRange) {\n        json.newRange = this.newRange.toJSON();\n      }\n\n      delete json._markers;\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      return 'marker';\n    }\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates `MarkerOperation` object from deserialized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/markeroperation~MarkerOperation}\n     */\n    value: function fromJSON(json, document) {\n      return new MarkerOperation(json.name, json.oldRange ? Range.fromJSON(json.oldRange, document) : null, json.newRange ? Range.fromJSON(json.newRange, document) : null, document.model.markers, json.affectsData, json.baseVersion);\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'MarkerOperation';\n    }\n  }]);\n\n  return MarkerOperation;\n}(Operation);\n\nexport { MarkerOperation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.number.constructor\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/mergeoperation\n */\nimport Operation from \"./operation\";\nimport SplitOperation from \"./splitoperation\";\nimport Position from \"../position\";\nimport Range from \"../range\";\nimport { _move } from \"./utils\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Operation to merge two {@link module:engine/model/element~Element elements}.\n *\n * The merged element is the parent of {@link ~MergeOperation#sourcePosition} and it is merged into the parent of\n * {@link ~MergeOperation#targetPosition}. All nodes from the merged element are moved to {@link ~MergeOperation#targetPosition}.\n *\n * The merged element is moved to the graveyard at {@link ~MergeOperation#graveyardPosition}.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar MergeOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(MergeOperation, _Operation);\n\n  var _super = _createSuper(MergeOperation);\n\n  /**\n   * Creates a merge operation.\n   *\n   * @param {module:engine/model/position~Position} sourcePosition Position inside the merged element. All nodes from that\n   * element after that position will be moved to {@link ~#targetPosition}.\n   * @param {Number} howMany Summary offset size of nodes which will be moved from the merged element to the new parent.\n   * @param {module:engine/model/position~Position} targetPosition Position which the nodes from the merged elements will be moved to.\n   * @param {module:engine/model/position~Position} graveyardPosition Position in graveyard to which the merged element will be moved.\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function MergeOperation(sourcePosition, howMany, targetPosition, graveyardPosition, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, MergeOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Position inside the merged element. All nodes from that element after that position will be moved to {@link ~#targetPosition}.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/mergeoperation~MergeOperation#sourcePosition\n     */\n\n    _this.sourcePosition = sourcePosition.clone(); // This is, and should always remain, the first position in its parent.\n\n    _this.sourcePosition.stickiness = 'toPrevious';\n    /**\n     * Summary offset size of nodes which will be moved from the merged element to the new parent.\n     *\n     * @member {Number} module:engine/model/operation/mergeoperation~MergeOperation#howMany\n     */\n\n    _this.howMany = howMany;\n    /**\n     * Position which the nodes from the merged elements will be moved to.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/mergeoperation~MergeOperation#targetPosition\n     */\n\n    _this.targetPosition = targetPosition.clone(); // Except of a rare scenario in `MergeOperation` x `MergeOperation` transformation,\n    // this is, and should always remain, the last position in its parent.\n\n    _this.targetPosition.stickiness = 'toNext';\n    /**\n     * Position in graveyard to which the merged element will be moved.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/mergeoperation~MergeOperation#graveyardPosition\n     */\n\n    _this.graveyardPosition = graveyardPosition.clone();\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(MergeOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/mergeoperation~MergeOperation} Clone of this operation.\n     */\n    value: function clone() {\n      return new this.constructor(this.sourcePosition, this.howMany, this.targetPosition, this.graveyardPosition, this.baseVersion);\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/splitoperation~SplitOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      // Positions in this method are transformed by this merge operation because the split operation bases on\n      // the context after this merge operation happened (because split operation reverses it).\n      // So we need to acknowledge that the merge operation happened and those positions changed a little.\n      var targetPosition = this.targetPosition._getTransformedByMergeOperation(this);\n\n      var path = this.sourcePosition.path.slice(0, -1);\n\n      var insertionPosition = new Position(this.sourcePosition.root, path)._getTransformedByMergeOperation(this);\n\n      var split = new SplitOperation(targetPosition, this.howMany, this.graveyardPosition, this.baseVersion + 1);\n      split.insertionPosition = insertionPosition;\n      return split;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      var sourceElement = this.sourcePosition.parent;\n      var targetElement = this.targetPosition.parent; // Validate whether merge operation has correct parameters.\n\n      if (!sourceElement.parent) {\n        /**\n         * Merge source position is invalid. The element to be merged must have a parent node.\n         *\n         * @error merge-operation-source-position-invalid\n         */\n        throw new CKEditorError('merge-operation-source-position-invalid: Merge source position is invalid.', this);\n      } else if (!targetElement.parent) {\n        /**\n         * Merge target position is invalid. The element to be merged must have a parent node.\n         *\n         * @error merge-operation-target-position-invalid\n         */\n        throw new CKEditorError('merge-operation-target-position-invalid: Merge target position is invalid.', this);\n      } else if (this.howMany != sourceElement.maxOffset) {\n        /**\n         * Merge operation specifies wrong number of nodes to move.\n         *\n         * @error merge-operation-how-many-invalid\n         */\n        throw new CKEditorError('merge-operation-how-many-invalid: Merge operation specifies wrong number of nodes to move.', this);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      var mergedElement = this.sourcePosition.parent;\n\n      var sourceRange = Range._createIn(mergedElement);\n\n      _move(sourceRange, this.targetPosition);\n\n      _move(Range._createOn(mergedElement), this.graveyardPosition);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(MergeOperation.prototype), \"toJSON\", this).call(this);\n\n      json.sourcePosition = json.sourcePosition.toJSON();\n      json.targetPosition = json.targetPosition.toJSON();\n      json.graveyardPosition = json.graveyardPosition.toJSON();\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      return 'merge';\n    }\n    /**\n     * Position before the merged element (which will be deleted).\n     *\n     * @readonly\n     * @type {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"deletionPosition\",\n    get: function get() {\n      return new Position(this.sourcePosition.root, this.sourcePosition.path.slice(0, -1));\n    }\n    /**\n     * Artificial range that contains all the nodes from the merged element that will be moved to {@link ~MergeOperation#sourcePosition}.\n     * The range starts at {@link ~MergeOperation#sourcePosition} and ends in the same parent, at `POSITIVE_INFINITY` offset.\n     *\n     * @readonly\n     * @type {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"movedRange\",\n    get: function get() {\n      var end = this.sourcePosition.getShiftedBy(Number.POSITIVE_INFINITY);\n      return new Range(this.sourcePosition, end);\n    }\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates `MergeOperation` object from deserilized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/mergeoperation~MergeOperation}\n     */\n    value: function fromJSON(json, document) {\n      var sourcePosition = Position.fromJSON(json.sourcePosition, document);\n      var targetPosition = Position.fromJSON(json.targetPosition, document);\n      var graveyardPosition = Position.fromJSON(json.graveyardPosition, document);\n      return new this(sourcePosition, json.howMany, targetPosition, graveyardPosition, json.baseVersion);\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'MergeOperation';\n    }\n  }]);\n\n  return MergeOperation;\n}(Operation);\n\nexport { MergeOperation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/moveoperation\n */\nimport Operation from \"./operation\";\nimport Position from \"../position\";\nimport Range from \"../range\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nimport { _move } from \"./utils\";\n/**\n * Operation to move a range of {@link module:engine/model/item~Item model items}\n * to given {@link module:engine/model/position~Position target position}.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar MoveOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(MoveOperation, _Operation);\n\n  var _super = _createSuper(MoveOperation);\n\n  /**\n   * Creates a move operation.\n   *\n   * @param {module:engine/model/position~Position} sourcePosition\n   * Position before the first {@link module:engine/model/item~Item model item} to move.\n   * @param {Number} howMany Offset size of moved range. Moved range will start from `sourcePosition` and end at\n   * `sourcePosition` with offset shifted by `howMany`.\n   * @param {module:engine/model/position~Position} targetPosition Position at which moved nodes will be inserted.\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function MoveOperation(sourcePosition, howMany, targetPosition, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, MoveOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Position before the first {@link module:engine/model/item~Item model item} to move.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/moveoperation~MoveOperation#sourcePosition\n     */\n\n    _this.sourcePosition = sourcePosition.clone(); // `'toNext'` because `sourcePosition` is a bit like a start of the moved range.\n\n    _this.sourcePosition.stickiness = 'toNext';\n    /**\n     * Offset size of moved range.\n     *\n     * @member {Number} module:engine/model/operation/moveoperation~MoveOperation#howMany\n     */\n\n    _this.howMany = howMany;\n    /**\n     * Position at which moved nodes will be inserted.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/moveoperation~MoveOperation#targetPosition\n     */\n\n    _this.targetPosition = targetPosition.clone();\n    _this.targetPosition.stickiness = 'toNone';\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(MoveOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/moveoperation~MoveOperation} Clone of this operation.\n     */\n    value: function clone() {\n      return new this.constructor(this.sourcePosition, this.howMany, this.targetPosition, this.baseVersion);\n    }\n    /**\n     * Returns the start position of the moved range after it got moved. This may be different than\n     * {@link module:engine/model/operation/moveoperation~MoveOperation#targetPosition} in some cases, i.e. when a range is moved\n     * inside the same parent but {@link module:engine/model/operation/moveoperation~MoveOperation#targetPosition targetPosition}\n     * is after {@link module:engine/model/operation/moveoperation~MoveOperation#sourcePosition sourcePosition}.\n     *\n     *\t\t vv              vv\n     *\t\tabcdefg ===> adefbcg\n     *\t\t     ^          ^\n     *\t\t     targetPos\tmovedRangeStart\n     *\t\t     offset 6\toffset 4\n     *\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"getMovedRangeStart\",\n    value: function getMovedRangeStart() {\n      return this.targetPosition._getTransformedByDeletion(this.sourcePosition, this.howMany);\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/moveoperation~MoveOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      var newTargetPosition = this.sourcePosition._getTransformedByInsertion(this.targetPosition, this.howMany);\n\n      return new this.constructor(this.getMovedRangeStart(), this.howMany, newTargetPosition, this.baseVersion + 1);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      var sourceElement = this.sourcePosition.parent;\n      var targetElement = this.targetPosition.parent;\n      var sourceOffset = this.sourcePosition.offset;\n      var targetOffset = this.targetPosition.offset; // Validate whether move operation has correct parameters.\n      // Validation is pretty complex but move operation is one of the core ways to manipulate the document state.\n      // We expect that many errors might be connected with one of scenarios described below.\n\n      if (sourceOffset + this.howMany > sourceElement.maxOffset) {\n        /**\n         * The nodes which should be moved do not exist.\n         *\n         * @error move-operation-nodes-do-not-exist\n         */\n        throw new CKEditorError('move-operation-nodes-do-not-exist: The nodes which should be moved do not exist.', this);\n      } else if (sourceElement === targetElement && sourceOffset < targetOffset && targetOffset < sourceOffset + this.howMany) {\n        /**\n         * Trying to move a range of nodes into the middle of that range.\n         *\n         * @error move-operation-range-into-itself\n         */\n        throw new CKEditorError('move-operation-range-into-itself: Trying to move a range of nodes to the inside of that range.', this);\n      } else if (this.sourcePosition.root == this.targetPosition.root) {\n        if (compareArrays(this.sourcePosition.getParentPath(), this.targetPosition.getParentPath()) == 'prefix') {\n          var i = this.sourcePosition.path.length - 1;\n\n          if (this.targetPosition.path[i] >= sourceOffset && this.targetPosition.path[i] < sourceOffset + this.howMany) {\n            /**\n             * Trying to move a range of nodes into one of nodes from that range.\n             *\n             * @error move-operation-node-into-itself\n             */\n            throw new CKEditorError('move-operation-node-into-itself: Trying to move a range of nodes into one of nodes from that range.', this);\n          }\n        }\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      _move(Range._createFromPositionAndShift(this.sourcePosition, this.howMany), this.targetPosition);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(MoveOperation.prototype), \"toJSON\", this).call(this);\n\n      json.sourcePosition = this.sourcePosition.toJSON();\n      json.targetPosition = this.targetPosition.toJSON();\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      if (this.targetPosition.root.rootName == '$graveyard') {\n        return 'remove';\n      } else if (this.sourcePosition.root.rootName == '$graveyard') {\n        return 'reinsert';\n      }\n\n      return 'move';\n    }\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates `MoveOperation` object from deserilized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/moveoperation~MoveOperation}\n     */\n    value: function fromJSON(json, document) {\n      var sourcePosition = Position.fromJSON(json.sourcePosition, document);\n      var targetPosition = Position.fromJSON(json.targetPosition, document);\n      return new this(sourcePosition, json.howMany, targetPosition, json.baseVersion);\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'MoveOperation';\n    }\n  }]);\n\n  return MoveOperation;\n}(Operation);\n\nexport { MoveOperation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/nooperation\n */\nimport Operation from \"./operation\";\n/**\n * Operation which is doing nothing (\"empty operation\", \"do-nothing operation\", \"noop\"). This is an operation,\n * which when executed does not change the tree model. It still has some parameters defined for transformation purposes.\n *\n * In most cases this operation is a result of transforming operations. When transformation returns\n * {@link module:engine/model/operation/nooperation~NoOperation} it means that changes done by the transformed operation\n * have already been applied.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar NoOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(NoOperation, _Operation);\n\n  var _super = _createSuper(NoOperation);\n\n  function NoOperation() {\n    _classCallCheck(this, NoOperation);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(NoOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/nooperation~NoOperation} Clone of this operation.\n     */\n    value: function clone() {\n      return new NoOperation(this.baseVersion);\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/nooperation~NoOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      return new NoOperation(this.baseVersion + 1);\n    }\n  }, {\n    key: \"_execute\",\n    value: function _execute() {}\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      return 'noop';\n    }\n  }], [{\n    key: \"className\",\n    get: function get() {\n      return 'NoOperation';\n    }\n  }]);\n\n  return NoOperation;\n}(Operation);\n\nexport { NoOperation as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/operation\n */\n\n/**\n * Abstract base operation class.\n *\n * @abstract\n */\nvar Operation = /*#__PURE__*/function () {\n  /**\n   * Base operation constructor.\n   *\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function Operation(baseVersion) {\n    _classCallCheck(this, Operation);\n\n    /**\n     * {@link module:engine/model/document~Document#version} on which operation can be applied. If you try to\n     * {@link module:engine/model/model~Model#applyOperation apply} operation with different base version than the\n     * {@link module:engine/model/document~Document#version document version} the\n     * {@link module:utils/ckeditorerror~CKEditorError model-document-applyOperation-wrong-version} error is thrown.\n     *\n     * @member {Number}\n     */\n    this.baseVersion = baseVersion;\n    /**\n     * Defines whether operation is executed on attached or detached {@link module:engine/model/item~Item items}.\n     *\n     * @readonly\n     * @member {Boolean} #isDocumentOperation\n     */\n\n    this.isDocumentOperation = this.baseVersion !== null;\n    /**\n     * {@link module:engine/model/batch~Batch Batch} to which the operation is added or `null` if the operation is not\n     * added to any batch yet.\n     *\n     * @member {module:engine/model/batch~Batch|null} #batch\n     */\n\n    this.batch = null;\n    /**\n     * Operation type.\n     *\n     * @readonly\n     * @member {String} #type\n     */\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @method #clone\n     * @returns {module:engine/model/operation/operation~Operation} Clone of this operation.\n     */\n\n    /**\n     * Creates and returns a reverse operation. Reverse operation when executed right after\n     * the original operation will bring back tree model state to the point before the original\n     * operation execution. In other words, it reverses changes done by the original operation.\n     *\n     * Keep in mind that tree model state may change since executing the original operation,\n     * so reverse operation will be \"outdated\". In that case you will need to transform it by\n     * all operations that were executed after the original operation.\n     *\n     * @method #getReversed\n     * @returns {module:engine/model/operation/operation~Operation} Reversed operation.\n     */\n\n    /**\n     * Executes the operation - modifications described by the operation properties will be applied to the model tree.\n     *\n     * @protected\n     * @method #_execute\n     */\n  }\n  /**\n   * Checks whether the operation's parameters are correct and the operation can be correctly executed. Throws\n   * an error if operation is not valid.\n   *\n   * @protected\n   * @method #_validate\n   */\n\n\n  _createClass(Operation, [{\n    key: \"_validate\",\n    value: function _validate() {}\n    /**\n     * Custom toJSON method to solve child-parent circular dependencies.\n     *\n     * @method #toJSON\n     * @returns {Object} Clone of this object with the operation property replaced with string.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      // This method creates only a shallow copy, all nested objects should be defined separately.\n      // See https://github.com/ckeditor/ckeditor5-engine/issues/1477.\n      var json = Object.assign({}, this);\n      json.__className = this.constructor.className; // Remove reference to the parent `Batch` to avoid circular dependencies.\n\n      delete json.batch; // Only document operations are shared with other clients so it is not necessary to keep this information.\n\n      delete json.isDocumentOperation;\n      return json;\n    }\n    /**\n     * Name of the operation class used for serialization.\n     *\n     * @type {String}\n     */\n\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates Operation object from deserilized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} doc Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/operation~Operation}\n     */\n    value: function fromJSON(json) {\n      return new this(json.baseVersion);\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'Operation';\n    }\n  }]);\n\n  return Operation;\n}();\n\nexport { Operation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/renameoperation\n */\nimport Operation from \"./operation\";\nimport Element from \"../element\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Position from \"../position\";\n/**\n * Operation to change element's name.\n *\n * Using this class you can change element's name.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar RenameOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(RenameOperation, _Operation);\n\n  var _super = _createSuper(RenameOperation);\n\n  /**\n   * Creates an operation that changes element's name.\n   *\n   * @param {module:engine/model/position~Position} position Position before an element to change.\n   * @param {String} oldName Current name of the element.\n   * @param {String} newName New name for the element.\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function RenameOperation(position, oldName, newName, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, RenameOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Position before an element to change.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/renameoperation~RenameOperation#position\n     */\n\n    _this.position = position; // This position sticks to the next node because it is a position before the node that we want to change.\n\n    _this.position.stickiness = 'toNext';\n    /**\n     * Current name of the element.\n     *\n     * @member {String} module:engine/model/operation/renameoperation~RenameOperation#oldName\n     */\n\n    _this.oldName = oldName;\n    /**\n     * New name for the element.\n     *\n     * @member {String} module:engine/model/operation/renameoperation~RenameOperation#newName\n     */\n\n    _this.newName = newName;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(RenameOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/renameoperation~RenameOperation} Clone of this operation.\n     */\n    value: function clone() {\n      return new RenameOperation(this.position.clone(), this.oldName, this.newName, this.baseVersion);\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/renameoperation~RenameOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      return new RenameOperation(this.position.clone(), this.newName, this.oldName, this.baseVersion + 1);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      var element = this.position.nodeAfter;\n\n      if (!(element instanceof Element)) {\n        /**\n         * Given position is invalid or node after it is not instance of Element.\n         *\n         * @error rename-operation-wrong-position\n         */\n        throw new CKEditorError('rename-operation-wrong-position: Given position is invalid or node after it is not an instance of Element.', this);\n      } else if (element.name !== this.oldName) {\n        /**\n         * Element to change has different name than operation's old name.\n         *\n         * @error rename-operation-wrong-name\n         */\n        throw new CKEditorError('rename-operation-wrong-name: Element to change has different name than operation\\'s old name.', this);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      var element = this.position.nodeAfter;\n      element.name = this.newName;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(RenameOperation.prototype), \"toJSON\", this).call(this);\n\n      json.position = this.position.toJSON();\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      return 'rename';\n    }\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates `RenameOperation` object from deserialized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/attributeoperation~AttributeOperation}\n     */\n    value: function fromJSON(json, document) {\n      return new RenameOperation(Position.fromJSON(json.position, document), json.oldName, json.newName, json.baseVersion);\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'RenameOperation';\n    }\n  }]);\n\n  return RenameOperation;\n}(Operation);\n\nexport { RenameOperation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/rootattributeoperation\n */\nimport Operation from \"./operation\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Operation to change root element's attribute. Using this class you can add, remove or change value of the attribute.\n *\n * This operation is needed, because root elements can't be changed through\n * @link module:engine/model/operation/attributeoperation~AttributeOperation}.\n * It is because {@link module:engine/model/operation/attributeoperation~AttributeOperation}\n * requires a range to change and root element can't\n * be a part of range because every {@link module:engine/model/position~Position} has to be inside a root.\n * {@link module:engine/model/position~Position} can't be created before a root element.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar RootAttributeOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(RootAttributeOperation, _Operation);\n\n  var _super = _createSuper(RootAttributeOperation);\n\n  /**\n   * Creates an operation that changes, removes or adds attributes on root element.\n   *\n   * @see module:engine/model/operation/attributeoperation~AttributeOperation\n   * @param {module:engine/model/rootelement~RootElement} root Root element to change.\n   * @param {String} key Key of an attribute to change or remove.\n   * @param {*} oldValue Old value of the attribute with given key or `null` if adding a new attribute.\n   * @param {*} newValue New value to set for the attribute. If `null`, then the operation just removes the attribute.\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function RootAttributeOperation(root, key, oldValue, newValue, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, RootAttributeOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Root element to change.\n     *\n     * @readonly\n     * @member {module:engine/model/rootelement~RootElement}\n     */\n\n    _this.root = root;\n    /**\n     * Key of an attribute to change or remove.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    _this.key = key;\n    /**\n     * Old value of the attribute with given key or `null` if adding a new attribute.\n     *\n     * @readonly\n     * @member {*}\n     */\n\n    _this.oldValue = oldValue;\n    /**\n     * New value to set for the attribute. If `null`, then the operation just removes the attribute.\n     *\n     * @readonly\n     * @member {*}\n     */\n\n    _this.newValue = newValue;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(RootAttributeOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/rootattributeoperation~RootAttributeOperation} Clone of this operation.\n     */\n    value: function clone() {\n      return new RootAttributeOperation(this.root, this.key, this.oldValue, this.newValue, this.baseVersion);\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/rootattributeoperation~RootAttributeOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      return new RootAttributeOperation(this.root, this.key, this.newValue, this.oldValue, this.baseVersion + 1);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      if (this.root != this.root.root || this.root.is('documentFragment')) {\n        /**\n         * The element to change is not a root element.\n         *\n         * @error rootattribute-operation-not-a-root\n         * @param {module:engine/model/rootelement~RootElement} root\n         * @param {String} key\n         * @param {*} value\n         */\n        throw new CKEditorError('rootattribute-operation-not-a-root: The element to change is not a root element.', this, {\n          root: this.root,\n          key: this.key\n        });\n      }\n\n      if (this.oldValue !== null && this.root.getAttribute(this.key) !== this.oldValue) {\n        /**\n         * The attribute which should be removed does not exists for the given node.\n         *\n         * @error rootattribute-operation-wrong-old-value\n         * @param {module:engine/model/rootelement~RootElement} root\n         * @param {String} key\n         * @param {*} value\n         */\n        throw new CKEditorError('rootattribute-operation-wrong-old-value: Changed node has different attribute value than operation\\'s ' + 'old attribute value.', this, {\n          root: this.root,\n          key: this.key\n        });\n      }\n\n      if (this.oldValue === null && this.newValue !== null && this.root.hasAttribute(this.key)) {\n        /**\n         * The attribute with given key already exists for the given node.\n         *\n         * @error rootattribute-operation-attribute-exists\n         * @param {module:engine/model/rootelement~RootElement} root\n         * @param {String} key\n         */\n        throw new CKEditorError('rootattribute-operation-attribute-exists: The attribute with given key already exists.', this, {\n          root: this.root,\n          key: this.key\n        });\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      if (this.newValue !== null) {\n        this.root._setAttribute(this.key, this.newValue);\n      } else {\n        this.root._removeAttribute(this.key);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(RootAttributeOperation.prototype), \"toJSON\", this).call(this);\n\n      json.root = this.root.toJSON();\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      if (this.oldValue === null) {\n        return 'addRootAttribute';\n      } else if (this.newValue === null) {\n        return 'removeRootAttribute';\n      } else {\n        return 'changeRootAttribute';\n      }\n    }\n  }], [{\n    key: \"fromJSON\",\n\n    /**\n     * Creates RootAttributeOperation object from deserilized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/rootattributeoperation~RootAttributeOperation}\n     */\n    value: function fromJSON(json, document) {\n      if (!document.getRoot(json.root)) {\n        /**\n         * Cannot create RootAttributeOperation for document. Root with specified name does not exist.\n         *\n         * @error rootattributeoperation-fromjson-no-root\n         * @param {String} rootName\n         */\n        throw new CKEditorError('rootattribute-operation-fromjson-no-root: Cannot create RootAttributeOperation. Root with specified name does not exist.', this, {\n          rootName: json.root\n        });\n      }\n\n      return new RootAttributeOperation(document.getRoot(json.root), json.key, json.oldValue, json.newValue, json.baseVersion);\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'RootAttributeOperation';\n    }\n  }]);\n\n  return RootAttributeOperation;\n}(Operation);\n\nexport { RootAttributeOperation as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.number.constructor\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/splitoperation\n */\nimport Operation from \"./operation\";\nimport MergeOperation from \"./mergeoperation\";\nimport Position from \"../position\";\nimport Range from \"../range\";\nimport { _insert, _move } from \"./utils\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Operation to split {@link module:engine/model/element~Element an element} at given\n * {@link module:engine/model/operation/splitoperation~SplitOperation#splitPosition split position} into two elements,\n * both containing a part of the element's original content.\n *\n * @extends module:engine/model/operation/operation~Operation\n */\n\nvar SplitOperation = /*#__PURE__*/function (_Operation) {\n  _inherits(SplitOperation, _Operation);\n\n  var _super = _createSuper(SplitOperation);\n\n  /**\n   * Creates a split operation.\n   *\n   * @param {module:engine/model/position~Position} splitPosition Position at which an element should be split.\n   * @param {Number} howMany Total offset size of elements that are in the split element after `position`.\n   * @param {module:engine/model/position~Position|null} graveyardPosition Position in the graveyard root before the element which\n   * should be used as a parent of the nodes after `position`. If it is not set, a copy of the the `position` parent will be used.\n   * @param {Number|null} baseVersion Document {@link module:engine/model/document~Document#version} on which operation\n   * can be applied or `null` if the operation operates on detached (non-document) tree.\n   */\n  function SplitOperation(splitPosition, howMany, graveyardPosition, baseVersion) {\n    var _this;\n\n    _classCallCheck(this, SplitOperation);\n\n    _this = _super.call(this, baseVersion);\n    /**\n     * Position at which an element should be split.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/splitoperation~SplitOperation#splitPosition\n     */\n\n    _this.splitPosition = splitPosition.clone(); // Keep position sticking to the next node. This way any new content added at the place where the element is split\n    // will be left in the original element.\n\n    _this.splitPosition.stickiness = 'toNext';\n    /**\n     * Total offset size of elements that are in the split element after `position`.\n     *\n     * @member {Number} module:engine/model/operation/splitoperation~SplitOperation#howMany\n     */\n\n    _this.howMany = howMany;\n    /**\n     * Position at which the clone of split element (or element from graveyard) will be inserted.\n     *\n     * @member {module:engine/model/position~Position} module:engine/model/operation/splitoperation~SplitOperation#insertionPosition\n     */\n\n    _this.insertionPosition = SplitOperation.getInsertionPosition(splitPosition);\n    _this.insertionPosition.stickiness = 'toNone';\n    /**\n     * Position in the graveyard root before the element which should be used as a parent of the nodes after `position`.\n     * If it is not set, a copy of the the `position` parent will be used.\n     *\n     * The default behavior is to clone the split element. Element from graveyard is used during undo.\n     *\n     * @member {module:engine/model/position~Position|null} #graveyardPosition\n     */\n\n    _this.graveyardPosition = graveyardPosition ? graveyardPosition.clone() : null;\n\n    if (_this.graveyardPosition) {\n      _this.graveyardPosition.stickiness = 'toNext';\n    }\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(SplitOperation, [{\n    key: \"clone\",\n\n    /**\n     * Creates and returns an operation that has the same parameters as this operation.\n     *\n     * @returns {module:engine/model/operation/splitoperation~SplitOperation} Clone of this operation.\n     */\n    value: function clone() {\n      var split = new this.constructor(this.splitPosition, this.howMany, this.graveyardPosition, this.baseVersion);\n      split.insertionPosition = this.insertionPosition;\n      return split;\n    }\n    /**\n     * See {@link module:engine/model/operation/operation~Operation#getReversed `Operation#getReversed()`}.\n     *\n     * @returns {module:engine/model/operation/mergeoperation~MergeOperation}\n     */\n\n  }, {\n    key: \"getReversed\",\n    value: function getReversed() {\n      var graveyard = this.splitPosition.root.document.graveyard;\n      var graveyardPosition = new Position(graveyard, [0]);\n      return new MergeOperation(this.moveTargetPosition, this.howMany, this.splitPosition, graveyardPosition, this.baseVersion + 1);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_validate\",\n    value: function _validate() {\n      var element = this.splitPosition.parent;\n      var offset = this.splitPosition.offset; // Validate whether split operation has correct parameters.\n\n      if (!element || element.maxOffset < offset) {\n        /**\n         * Split position is invalid.\n         *\n         * @error split-operation-position-invalid\n         */\n        throw new CKEditorError('split-operation-position-invalid: Split position is invalid.', this);\n      } else if (!element.parent) {\n        /**\n         * Cannot split root element.\n         *\n         * @error split-operation-split-in-root\n         */\n        throw new CKEditorError('split-operation-split-in-root: Cannot split root element.', this);\n      } else if (this.howMany != element.maxOffset - this.splitPosition.offset) {\n        /**\n         * Split operation specifies wrong number of nodes to move.\n         *\n         * @error split-operation-how-many-invalid\n         */\n        throw new CKEditorError('split-operation-how-many-invalid: Split operation specifies wrong number of nodes to move.', this);\n      } else if (this.graveyardPosition && !this.graveyardPosition.nodeAfter) {\n        /**\n         * Graveyard position invalid.\n         *\n         * @error split-operation-graveyard-position-invalid\n         */\n        throw new CKEditorError('split-operation-graveyard-position-invalid: Graveyard position invalid.', this);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_execute\",\n    value: function _execute() {\n      var splitElement = this.splitPosition.parent;\n\n      if (this.graveyardPosition) {\n        _move(Range._createFromPositionAndShift(this.graveyardPosition, 1), this.insertionPosition);\n      } else {\n        var newElement = splitElement._clone();\n\n        _insert(this.insertionPosition, newElement);\n      }\n\n      var sourceRange = new Range(Position._createAt(splitElement, this.splitPosition.offset), Position._createAt(splitElement, splitElement.maxOffset));\n\n      _move(sourceRange, this.moveTargetPosition);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(SplitOperation.prototype), \"toJSON\", this).call(this);\n\n      json.splitPosition = this.splitPosition.toJSON();\n      json.insertionPosition = this.insertionPosition.toJSON();\n\n      if (this.graveyardPosition) {\n        json.graveyardPosition = this.graveyardPosition.toJSON();\n      }\n\n      return json;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"type\",\n    get: function get() {\n      return 'split';\n    }\n    /**\n     * Position inside the new clone of a split element.\n     *\n     * This is a position where nodes that are after the split position will be moved to.\n     *\n     * @readonly\n     * @type {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"moveTargetPosition\",\n    get: function get() {\n      var path = this.insertionPosition.path.slice();\n      path.push(0);\n      return new Position(this.insertionPosition.root, path);\n    }\n    /**\n     * Artificial range that contains all the nodes from the split element that will be moved to the new element.\n     * The range starts at {@link ~#splitPosition} and ends in the same parent, at `POSITIVE_INFINITY` offset.\n     *\n     * @readonly\n     * @type {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"movedRange\",\n    get: function get() {\n      var end = this.splitPosition.getShiftedBy(Number.POSITIVE_INFINITY);\n      return new Range(this.splitPosition, end);\n    }\n  }], [{\n    key: \"getInsertionPosition\",\n\n    /**\n     * Helper function that returns a default insertion position basing on given `splitPosition`. The default insertion\n     * position is after the split element.\n     *\n     * @param {module:engine/model/position~Position} splitPosition\n     * @returns {module:engine/model/position~Position}\n     */\n    value: function getInsertionPosition(splitPosition) {\n      var path = splitPosition.path.slice(0, -1);\n      path[path.length - 1]++;\n      return new Position(splitPosition.root, path);\n    }\n    /**\n     * Creates `SplitOperation` object from deserilized object, i.e. from parsed JSON string.\n     *\n     * @param {Object} json Deserialized JSON object.\n     * @param {module:engine/model/document~Document} document Document on which this operation will be applied.\n     * @returns {module:engine/model/operation/splitoperation~SplitOperation}\n     */\n\n  }, {\n    key: \"fromJSON\",\n    value: function fromJSON(json, document) {\n      var splitPosition = Position.fromJSON(json.splitPosition, document);\n      var insertionPosition = Position.fromJSON(json.insertionPosition, document);\n      var graveyardPosition = json.graveyardPosition ? Position.fromJSON(json.graveyardPosition, document) : null;\n      var split = new this(splitPosition, json.howMany, graveyardPosition, json.baseVersion);\n      split.insertionPosition = insertionPosition;\n      return split;\n    }\n  }, {\n    key: \"className\",\n    get: function get() {\n      return 'SplitOperation';\n    }\n  }]);\n\n  return SplitOperation;\n}(Operation);\n\nexport { SplitOperation as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es6.weak-map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport InsertOperation from \"./insertoperation\";\nimport AttributeOperation from \"./attributeoperation\";\nimport RenameOperation from \"./renameoperation\";\nimport MarkerOperation from \"./markeroperation\";\nimport MoveOperation from \"./moveoperation\";\nimport RootAttributeOperation from \"./rootattributeoperation\";\nimport MergeOperation from \"./mergeoperation\";\nimport SplitOperation from \"./splitoperation\";\nimport NoOperation from \"./nooperation\";\nimport Range from \"../range\";\nimport Position from \"../position\";\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nvar transformations = new Map();\n/**\n * @module engine/model/operation/transform\n */\n\n/**\n * Sets a transformation function to be be used to transform instances of class `OperationA` by instances of class `OperationB`.\n *\n * The `transformationFunction` is passed three parameters:\n *\n * * `a` - operation to be transformed, an instance of `OperationA`,\n * * `b` - operation to be transformed by, an instance of `OperationB`,\n * * {@link module:engine/model/operation/transform~TransformationContext `context`} - object with additional information about\n * transformation context.\n *\n * The `transformationFunction` should return transformation result, which is an array with one or multiple\n * {@link module:engine/model/operation/operation~Operation operation} instances.\n *\n * @protected\n * @param {Function} OperationA\n * @param {Function} OperationB\n * @param {Function} transformationFunction Function to use for transforming.\n */\n\nfunction setTransformation(OperationA, OperationB, transformationFunction) {\n  var aGroup = transformations.get(OperationA);\n\n  if (!aGroup) {\n    aGroup = new Map();\n    transformations.set(OperationA, aGroup);\n  }\n\n  aGroup.set(OperationB, transformationFunction);\n}\n/**\n * Returns a previously set transformation function for transforming an instance of `OperationA` by an instance of `OperationB`.\n *\n * If no transformation was set for given pair of operations, {@link module:engine/model/operation/transform~noUpdateTransformation}\n * is returned. This means that if no transformation was set, the `OperationA` instance will not change when transformed\n * by the `OperationB` instance.\n *\n * @private\n * @param {Function} OperationA\n * @param {Function} OperationB\n * @returns {Function} Function set to transform an instance of `OperationA` by an instance of `OperationB`.\n */\n\n\nfunction getTransformation(OperationA, OperationB) {\n  var aGroup = transformations.get(OperationA);\n\n  if (aGroup && aGroup.has(OperationB)) {\n    return aGroup.get(OperationB);\n  }\n\n  return noUpdateTransformation;\n}\n/**\n * A transformation function that only clones operation to transform, without changing it.\n *\n * @private\n * @param {module:engine/model/operation/operation~Operation} a Operation to transform.\n * @returns {Array.<module:engine/model/operation/operation~Operation>}\n */\n\n\nfunction noUpdateTransformation(a) {\n  return [a];\n}\n/**\n * Transforms operation `a` by operation `b`.\n *\n * @param {module:engine/model/operation/operation~Operation} a Operation to be transformed.\n * @param {module:engine/model/operation/operation~Operation} b Operation to transform by.\n * @param {module:engine/model/operation/transform~TransformationContext} context Transformation context for this transformation.\n * @returns {Array.<module:engine/model/operation/operation~Operation>} Transformation result.\n */\n\n\nexport function transform(a, b) {\n  var context = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var transformationFunction = getTransformation(a.constructor, b.constructor);\n\n  try {\n    a = a.clone();\n    return transformationFunction(a, b, context);\n  } catch (e) {\n    // @if CK_DEBUG // console.warn( 'Error during operation transformation!', e.message );\n    // @if CK_DEBUG // console.warn( 'Transformed operation', a );\n    // @if CK_DEBUG // console.warn( 'Operation transformed by', b );\n    // @if CK_DEBUG // console.warn( 'context.aIsStrong', context.aIsStrong );\n    // @if CK_DEBUG // console.warn( 'context.aWasUndone', context.aWasUndone );\n    // @if CK_DEBUG // console.warn( 'context.bWasUndone', context.bWasUndone );\n    // @if CK_DEBUG // console.warn( 'context.abRelation', context.abRelation );\n    // @if CK_DEBUG // console.warn( 'context.baRelation', context.baRelation );\n    throw e;\n  }\n}\n/**\n * Performs a transformation of two sets of operations - `operationsA` and `operationsB`. The transformation is two-way -\n * both transformed `operationsA` and transformed `operationsB` are returned.\n *\n * Note, that the first operation in each set should base on the same document state (\n * {@link module:engine/model/document~Document#version document version}).\n *\n * It is assumed that `operationsA` are \"more important\" during conflict resolution between two operations.\n *\n * New copies of both passed arrays and operations inside them are returned. Passed arguments are not altered.\n *\n * Base versions of the transformed operations sets are updated accordingly. For example, assume that base versions are `4`\n * and there are `3` operations in `operationsA` and `5` operations in `operationsB`. Then:\n *\n * * transformed `operationsA` will start from base version `9` (`4` base version + `5` operations B),\n * * transformed `operationsB` will start from base version `7` (`4` base version + `3` operations A).\n *\n * If no operation was broken into two during transformation, then both sets will end up with an operation that bases on version `11`:\n *\n * * transformed `operationsA` start from `9` and there are `3` of them, so the last will have `baseVersion` equal to `11`,\n * * transformed `operationsB` start from `7` and there are `5` of them, so the last will have `baseVersion` equal to `11`.\n *\n * @param {Array.<module:engine/model/operation/operation~Operation>} operationsA\n * @param {Array.<module:engine/model/operation/operation~Operation>} operationsB\n * @param {Object} options Additional transformation options.\n * @param {module:engine/model/document~Document|null} options.document Document which the operations change.\n * @param {Boolean} [options.useRelations=false] Whether during transformation relations should be used (used during undo for\n * better conflict resolution).\n * @param {Boolean} [options.padWithNoOps=false] Whether additional {@link module:engine/model/operation/nooperation~NoOperation}s\n * should be added to the transformation results to force the same last base version for both transformed sets (in case\n * if some operations got broken into multiple operations during transformation).\n * @returns {Object} Transformation result.\n * @returns {Array.<module:engine/model/operation/operation~Operation>} return.operationsA Transformed `operationsA`.\n * @returns {Array.<module:engine/model/operation/operation~Operation>} return.operationsB Transformed `operationsB`.\n * @returns {Map} return.originalOperations A map that links transformed operations to original operations. The keys are the transformed\n * operations and the values are the original operations from the input (`operationsA` and `operationsB`).\n */\n\nexport function transformSets(operationsA, operationsB, options) {\n  // Create new arrays so the originally passed arguments are not changed.\n  // No need to clone operations, they are cloned as they are transformed.\n  operationsA = operationsA.slice();\n  operationsB = operationsB.slice();\n  var contextFactory = new ContextFactory(options.document, options.useRelations, options.forceWeakRemove);\n  contextFactory.setOriginalOperations(operationsA);\n  contextFactory.setOriginalOperations(operationsB);\n  var originalOperations = contextFactory.originalOperations; // If one of sets is empty there is simply nothing to transform, so return sets as they are.\n\n  if (operationsA.length == 0 || operationsB.length == 0) {\n    return {\n      operationsA: operationsA,\n      operationsB: operationsB,\n      originalOperations: originalOperations\n    };\n  } //\n  // Following is a description of transformation process:\n  //\n  // There are `operationsA` and `operationsB` to be transformed, both by both.\n  //\n  // So, suppose we have sets of two operations each: `operationsA` = `[ a1, a2 ]`, `operationsB` = `[ b1, b2 ]`.\n  //\n  // Remember, that we can only transform operations that base on the same context. We assert that `a1` and `b1` base on\n  // the same context and we transform them. Then, we get `a1'` and `b1'`. `a2` bases on a context with `a1` -- `a2`\n  // is an operation that followed `a1`. Similarly, `b2` bases on a context with `b1`.\n  //\n  // However, since `a1'` is a result of transformation by `b1`, `a1'` now also has a context with `b1`. This means that\n  // we can safely transform `a1'` by `b2`. As we finish transforming `a1`, we also transformed all `operationsB`.\n  // All `operationsB` also have context including `a1`. Now, we can properly transform `a2` by those operations.\n  //\n  // The transformation process can be visualized on a transformation diagram (\"diamond diagram\"):\n  //\n  //          [the initial state]\n  //         [common for a1 and b1]\n  //\n  //                   *\n  //                  / \\\n  //                 /   \\\n  //               b1     a1\n  //               /       \\\n  //              /         \\\n  //             *           *\n  //            / \\         / \\\n  //           /   \\       /   \\\n  //         b2    a1'   b1'    a2\n  //         /       \\   /       \\\n  //        /         \\ /         \\\n  //       *           *           *\n  //        \\         / \\         /\n  //         \\       /   \\       /\n  //        a1''   b2'   a2'   b1''\n  //           \\   /       \\   /\n  //            \\ /         \\ /\n  //             *           *\n  //              \\         /\n  //               \\       /\n  //              a2''   b2''\n  //                 \\   /\n  //                  \\ /\n  //                   *\n  //\n  //           [the final state]\n  //\n  // The final state can be reached from the initial state by applying `a1`, `a2`, `b1''` and `b2''`, as well as by\n  // applying `b1`, `b2`, `a1''`, `a2''`. Note how the operations get to a proper common state before each pair is\n  // transformed.\n  //\n  // Another thing to consider is that an operation during transformation can be broken into multiple operations.\n  // Suppose that `a1` * `b1` = `[ a11', a12' ]` (instead of `a1'` that we considered previously).\n  //\n  // In that case, we leave `a12'` for later and we continue transforming `a11'` until it is transformed by all `operationsB`\n  // (in our case it is just `b2`). At this point, `b1` is transformed by \"whole\" `a1`, while `b2` is only transformed\n  // by `a11'`. Similarly, `a12'` is only transformed by `b1`. This leads to a conclusion that we need to start transforming `a12'`\n  // from the moment just after it was broken. So, `a12'` is transformed by `b2`. Now, \"the whole\" `a1` is transformed\n  // by `operationsB`, while all `operationsB` are transformed by \"the whole\" `a1`. This means that we can continue with\n  // following `operationsA` (in our case it is just `a2`).\n  //\n  // Of course, also `operationsB` can be broken. However, since we focus on transforming operation `a` to the end,\n  // the only thing to do is to store both pieces of operation `b`, so that the next transformed operation `a` will\n  // be transformed by both of them.\n  //\n  //                       *\n  //                      / \\\n  //                     /   \\\n  //                    /     \\\n  //                  b1       a1\n  //                  /         \\\n  //                 /           \\\n  //                /             \\\n  //               *               *\n  //              / \\             / \\\n  //             /  a11'         /   \\\n  //            /     \\         /     \\\n  //          b2       *      b1'      a2\n  //          /       / \\     /         \\\n  //         /       /  a12' /           \\\n  //        /       /     \\ /             \\\n  //       *       b2'     *               *\n  //        \\     /       / \\             /\n  //       a11'' /     b21'' \\           /\n  //          \\ /       /     \\         /\n  //           *       *      a2'     b1''\n  //            \\     / \\       \\     /\n  //          a12'' b22''\\       \\   /\n  //              \\ /     \\       \\ /\n  //               *      a2''     *\n  //                \\       \\     /\n  //                 \\       \\  b21'''\n  //                  \\       \\ /\n  //                a2'''      *\n  //                    \\     /\n  //                     \\  b22'''\n  //                      \\ /\n  //                       *\n  //\n  // Note, how `a1` is broken and transformed into `a11'` and `a12'`, while `b2'` got broken and transformed into `b21''` and `b22''`.\n  //\n  // Having all that on mind, here is an outline for the transformation process algorithm:\n  //\n  // 1. We have `operationsA` and `operationsB` array, which we dynamically update as the transformation process goes.\n  //\n  // 2. We take next (or first) operation from `operationsA` and check from which operation `b` we need to start transforming it.\n  // All original `operationsA` are set to be transformed starting from the first operation `b`.\n  //\n  // 3. We take operations from `operationsB`, one by one, starting from the correct one, and transform operation `a`\n  // by operation `b` (and vice versa). We update `operationsA` and `operationsB` by replacing the original operations\n  // with the transformation results.\n  //\n  // 4. If operation is broken into multiple operations, we save all the new operations in the place of the\n  // original operation.\n  //\n  // 5. Additionally, if operation `a` was broken, for the \"new\" operation, we remember from which operation `b` it should\n  // be transformed by.\n  //\n  // 6. We continue transforming \"current\" operation `a` until it is transformed by all `operationsB`. Then, go to 2.\n  // unless the last operation `a` was transformed.\n  //\n  // The actual implementation of the above algorithm is slightly different, as only one loop (while) is used.\n  // The difference is that we have \"current\" `a` operation to transform and we store the index of the next `b` operation\n  // to transform by. Each loop operates on two indexes then: index pointing to currently processed `a` operation and\n  // index pointing to next `b` operation. Each loop is just one `a * b` + `b * a` transformation. After each loop\n  // operation `b` index is updated. If all `b` operations were visited for the current `a` operation, we change\n  // current `a` operation index to the next one.\n  //\n  // For each operation `a`, keeps information what is the index in `operationsB` from which the transformation should start.\n\n\n  var nextTransformIndex = new WeakMap(); // For all the original `operationsA`, set that they should be transformed starting from the first of `operationsB`.\n\n  var _iterator = _createForOfIteratorHelper(operationsA),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var op = _step.value;\n      nextTransformIndex.set(op, 0);\n    } // Additional data that is used for some postprocessing after the main transformation process is done.\n\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  var data = {\n    nextBaseVersionA: operationsA[operationsA.length - 1].baseVersion + 1,\n    nextBaseVersionB: operationsB[operationsB.length - 1].baseVersion + 1,\n    originalOperationsACount: operationsA.length,\n    originalOperationsBCount: operationsB.length\n  }; // Index of currently transformed operation `a`.\n\n  var i = 0; // While not all `operationsA` are transformed...\n\n  while (i < operationsA.length) {\n    var _operationsA, _operationsB;\n\n    // Get \"current\" operation `a`.\n    var opA = operationsA[i]; // For the \"current\" operation `a`, get the index of the next operation `b` to transform by.\n\n    var indexB = nextTransformIndex.get(opA); // If operation `a` was already transformed by every operation `b`, change \"current\" operation `a` to the next one.\n\n    if (indexB == operationsB.length) {\n      i++;\n      continue;\n    }\n\n    var opB = operationsB[indexB]; // Transform `a` by `b` and `b` by `a`.\n\n    var newOpsA = transform(opA, opB, contextFactory.getContext(opA, opB, true));\n    var newOpsB = transform(opB, opA, contextFactory.getContext(opB, opA, false)); // As a result we get one or more `newOpsA` and one or more `newOpsB` operations.\n    // Update contextual information about operations.\n\n    contextFactory.updateRelation(opA, opB);\n    contextFactory.setOriginalOperations(newOpsA, opA);\n    contextFactory.setOriginalOperations(newOpsB, opB); // For new `a` operations, update their index of the next operation `b` to transform them by.\n    //\n    // This is needed even if there was only one result (`a` was not broken) because that information is used\n    // at the beginning of this loop every time.\n\n    var _iterator2 = _createForOfIteratorHelper(newOpsA),\n        _step2;\n\n    try {\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var newOpA = _step2.value;\n        // Acknowledge, that operation `b` also might be broken into multiple operations.\n        //\n        // This is why we raise `indexB` not just by 1. If `newOpsB` are multiple operations, they will be\n        // spliced in the place of `opB`. So we need to change `transformBy` accordingly, so that an operation won't\n        // be transformed by the same operation (part of it) again.\n        nextTransformIndex.set(newOpA, indexB + newOpsB.length);\n      } // Update `operationsA` and `operationsB` with the transformed versions.\n\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n\n    (_operationsA = operationsA).splice.apply(_operationsA, [i, 1].concat(_toConsumableArray(newOpsA)));\n\n    (_operationsB = operationsB).splice.apply(_operationsB, [indexB, 1].concat(_toConsumableArray(newOpsB)));\n  }\n\n  if (options.padWithNoOps) {\n    // If no-operations padding is enabled, count how many extra `a` and `b` operations were generated.\n    var brokenOperationsACount = operationsA.length - data.originalOperationsACount;\n    var brokenOperationsBCount = operationsB.length - data.originalOperationsBCount; // Then, if that number is not the same, pad `operationsA` or `operationsB` with correct number of no-ops so\n    // that the base versions are equalled.\n    //\n    // Note that only one array will be updated, as only one of those subtractions can be greater than zero.\n\n    padWithNoOps(operationsA, brokenOperationsBCount - brokenOperationsACount);\n    padWithNoOps(operationsB, brokenOperationsACount - brokenOperationsBCount);\n  } // Finally, update base versions of transformed operations.\n\n\n  updateBaseVersions(operationsA, data.nextBaseVersionB);\n  updateBaseVersions(operationsB, data.nextBaseVersionA);\n  return {\n    operationsA: operationsA,\n    operationsB: operationsB,\n    originalOperations: originalOperations\n  };\n} // Gathers additional data about operations processed during transformation. Can be used to obtain contextual information\n// about two operations that are about to be transformed. This contextual information can be used for better conflict resolution.\n\nvar ContextFactory = /*#__PURE__*/function () {\n  // Creates `ContextFactory` instance.\n  //\n  // @param {module:engine/model/document~Document} document Document which the operations change.\n  // @param {Boolean} useRelations Whether during transformation relations should be used (used during undo for\n  // better conflict resolution).\n  // @param {Boolean} [forceWeakRemove=false] If set to `false`, remove operation will be always stronger than move operation,\n  // so the removed nodes won't end up back in the document root. When set to `true`, context data will be used.\n  function ContextFactory(document, useRelations) {\n    var forceWeakRemove = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n    _classCallCheck(this, ContextFactory);\n\n    // For each operation that is created during transformation process, we keep a reference to the original operation\n    // which it comes from. The original operation works as a kind of \"identifier\". Every contextual information\n    // gathered during transformation that we want to save for given operation, is actually saved for the original operation.\n    // This way no matter if operation `a` is cloned, then transformed, even breaks, we still have access to the previously\n    // gathered data through original operation reference.\n    this.originalOperations = new Map(); // `model.History` instance which information about undone operations will be taken from.\n\n    this._history = document.history; // Whether additional context should be used.\n\n    this._useRelations = useRelations;\n    this._forceWeakRemove = !!forceWeakRemove; // Relations is a double-map structure (maps in map) where for two operations we store how those operations were related\n    // to each other. Those relations are evaluated during transformation process. For every transformated pair of operations\n    // we keep relations between them.\n\n    this._relations = new Map();\n  } // Sets \"original operation\" for given operations.\n  //\n  // During transformation process, operations are cloned, then changed, then processed again, sometimes broken into two\n  // or multiple operations. When gathering additional data it is important that all operations can be somehow linked\n  // so a cloned and transformed \"version\" still kept track of the data assigned earlier to it.\n  //\n  // The original operation object will be used as such an universal linking id. Throughout the transformation process\n  // all cloned operations will refer to \"the original operation\" when storing and reading additional data.\n  //\n  // If `takeFrom` is not set, each operation from `operations` array will be assigned itself as \"the original operation\".\n  // This should be used as an initialization step.\n  //\n  // If `takeFrom` is set, each operation from `operations` will be assigned the same original operation as assigned\n  // for `takeFrom` operation. This should be used to update original operations. It should be used in a way that\n  // `operations` are the result of `takeFrom` transformation to ensure proper \"original operation propagation\".\n  //\n  // @param {Array.<module:engine/model/operation/operation~Operation>} operations\n  // @param {module:engine/model/operation/operation~Operation|null} [takeFrom=null]\n\n\n  _createClass(ContextFactory, [{\n    key: \"setOriginalOperations\",\n    value: function setOriginalOperations(operations) {\n      var takeFrom = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var originalOperation = takeFrom ? this.originalOperations.get(takeFrom) : null;\n\n      var _iterator3 = _createForOfIteratorHelper(operations),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var operation = _step3.value;\n          this.originalOperations.set(operation, originalOperation || operation);\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n    } // Saves a relation between operations `opA` and `opB`.\n    //\n    // Relations are then later used to help solve conflicts when operations are transformed.\n    //\n    // @param {module:engine/model/operation/operation~Operation} opA\n    // @param {module:engine/model/operation/operation~Operation} opB\n\n  }, {\n    key: \"updateRelation\",\n    value: function updateRelation(opA, opB) {\n      // The use of relations is described in a bigger detail in transformation functions.\n      //\n      // In brief, this function, for specified pairs of operation types, checks how positions defined in those operations relate.\n      // Then those relations are saved. For example, for two move operations, it is saved if one of those operations target\n      // position is before the other operation source position. This kind of information gives contextual information when\n      // transformation is used during undo. Similar checks are done for other pairs of operations.\n      //\n      switch (opA.constructor) {\n        case MoveOperation:\n          {\n            switch (opB.constructor) {\n              case MergeOperation:\n                {\n                  if (opA.targetPosition.isEqual(opB.sourcePosition) || opB.movedRange.containsPosition(opA.targetPosition)) {\n                    this._setRelation(opA, opB, 'insertAtSource');\n                  } else if (opA.targetPosition.isEqual(opB.deletionPosition)) {\n                    this._setRelation(opA, opB, 'insertBetween');\n                  } else if (opA.targetPosition.isAfter(opB.sourcePosition)) {\n                    this._setRelation(opA, opB, 'moveTargetAfter');\n                  }\n\n                  break;\n                }\n\n              case MoveOperation:\n                {\n                  if (opA.targetPosition.isEqual(opB.sourcePosition) || opA.targetPosition.isBefore(opB.sourcePosition)) {\n                    this._setRelation(opA, opB, 'insertBefore');\n                  } else {\n                    this._setRelation(opA, opB, 'insertAfter');\n                  }\n\n                  break;\n                }\n            }\n\n            break;\n          }\n\n        case SplitOperation:\n          {\n            switch (opB.constructor) {\n              case MergeOperation:\n                {\n                  if (opA.splitPosition.isBefore(opB.sourcePosition)) {\n                    this._setRelation(opA, opB, 'splitBefore');\n                  }\n\n                  break;\n                }\n\n              case MoveOperation:\n                {\n                  if (opA.splitPosition.isEqual(opB.sourcePosition) || opA.splitPosition.isBefore(opB.sourcePosition)) {\n                    this._setRelation(opA, opB, 'splitBefore');\n                  }\n\n                  break;\n                }\n            }\n\n            break;\n          }\n\n        case MergeOperation:\n          {\n            switch (opB.constructor) {\n              case MergeOperation:\n                {\n                  if (!opA.targetPosition.isEqual(opB.sourcePosition)) {\n                    this._setRelation(opA, opB, 'mergeTargetNotMoved');\n                  }\n\n                  if (opA.sourcePosition.isEqual(opB.targetPosition)) {\n                    this._setRelation(opA, opB, 'mergeSourceNotMoved');\n                  }\n\n                  if (opA.sourcePosition.isEqual(opB.sourcePosition)) {\n                    this._setRelation(opA, opB, 'mergeSameElement');\n                  }\n\n                  break;\n                }\n\n              case SplitOperation:\n                {\n                  if (opA.sourcePosition.isEqual(opB.splitPosition)) {\n                    this._setRelation(opA, opB, 'splitAtSource');\n                  }\n                }\n            }\n\n            break;\n          }\n\n        case MarkerOperation:\n          {\n            var markerRange = opA.newRange;\n\n            if (!markerRange) {\n              return;\n            }\n\n            switch (opB.constructor) {\n              case MoveOperation:\n                {\n                  var movedRange = Range._createFromPositionAndShift(opB.sourcePosition, opB.howMany);\n\n                  var affectedLeft = movedRange.containsPosition(markerRange.start) || movedRange.start.isEqual(markerRange.start);\n                  var affectedRight = movedRange.containsPosition(markerRange.end) || movedRange.end.isEqual(markerRange.end);\n\n                  if ((affectedLeft || affectedRight) && !movedRange.containsRange(markerRange)) {\n                    this._setRelation(opA, opB, {\n                      side: affectedLeft ? 'left' : 'right',\n                      path: affectedLeft ? markerRange.start.path.slice() : markerRange.end.path.slice()\n                    });\n                  }\n\n                  break;\n                }\n\n              case MergeOperation:\n                {\n                  var wasInLeftElement = markerRange.start.isEqual(opB.targetPosition);\n                  var wasStartBeforeMergedElement = markerRange.start.isEqual(opB.deletionPosition);\n                  var wasEndBeforeMergedElement = markerRange.end.isEqual(opB.deletionPosition);\n                  var wasInRightElement = markerRange.end.isEqual(opB.sourcePosition);\n\n                  if (wasInLeftElement || wasStartBeforeMergedElement || wasEndBeforeMergedElement || wasInRightElement) {\n                    this._setRelation(opA, opB, {\n                      wasInLeftElement: wasInLeftElement,\n                      wasStartBeforeMergedElement: wasStartBeforeMergedElement,\n                      wasEndBeforeMergedElement: wasEndBeforeMergedElement,\n                      wasInRightElement: wasInRightElement\n                    });\n                  }\n\n                  break;\n                }\n            }\n\n            break;\n          }\n      }\n    } // Evaluates and returns contextual information about two given operations `opA` and `opB` which are about to be transformed.\n    //\n    // @param {module:engine/model/operation/operation~Operation} opA\n    // @param {module:engine/model/operation/operation~Operation} opB\n    // @returns {module:engine/model/operation/transform~TransformationContext}\n\n  }, {\n    key: \"getContext\",\n    value: function getContext(opA, opB, aIsStrong) {\n      return {\n        aIsStrong: aIsStrong,\n        aWasUndone: this._wasUndone(opA),\n        bWasUndone: this._wasUndone(opB),\n        abRelation: this._useRelations ? this._getRelation(opA, opB) : null,\n        baRelation: this._useRelations ? this._getRelation(opB, opA) : null,\n        forceWeakRemove: this._forceWeakRemove\n      };\n    } // Returns whether given operation `op` has already been undone.\n    //\n    // Information whether an operation was undone gives more context when making a decision when two operations are in conflict.\n    //\n    // @param {module:engine/model/operation/operation~Operation} op\n    // @returns {Boolean}\n\n  }, {\n    key: \"_wasUndone\",\n    value: function _wasUndone(op) {\n      // For `op`, get its original operation. After all, if `op` is a clone (or even transformed clone) of another\n      // operation, literally `op` couldn't be undone. It was just generated. If anything, it was the operation it origins\n      // from which was undone. So get that original operation.\n      var originalOp = this.originalOperations.get(op); // And check with the document if the original operation was undone.\n\n      return originalOp.wasUndone || this._history.isUndoneOperation(originalOp);\n    } // Returns a relation between `opA` and an operation which is undone by `opB`. This can be `String` value if a relation\n    // was set earlier or `null` if there was no relation between those operations.\n    //\n    // This is a little tricky to understand, so let's compare it to `ContextFactory#_wasUndone`.\n    //\n    // When `wasUndone( opB )` is used, we check if the `opB` has already been undone. It is obvious, that the\n    // undoing operation must happen after the undone operation. So, essentially, we have `opB`, we take document history,\n    // we look forward in the future and ask if in that future `opB` was undone.\n    //\n    // Relations is a backward process to `wasUndone()`.\n    //\n    // Long story short - using relations is asking what happened in the past. Looking back. This time we have an undoing\n    // operation `opB` which has undone some other operation. When there is a transformation `opA` x `opB` and there is\n    // a conflict to solve and `opB` is an undoing operation, we can look back in the history and see what was a relation\n    // between `opA` and the operation which `opB` undone. Basing on that relation from the past, we can now make\n    // a better decision when resolving a conflict between two operations, because we know more about the context of\n    // those two operations.\n    //\n    // This is why this function does not return a relation directly between `opA` and `opB` because we need to look\n    // back to search for a meaningful contextual information.\n    //\n    // @param {module:engine/model/operation/operation~Operation} opA\n    // @param {module:engine/model/operation/operation~Operation} opB\n    // @returns {String|null}\n\n  }, {\n    key: \"_getRelation\",\n    value: function _getRelation(opA, opB) {\n      // Get the original operation. Similarly as in `wasUndone()` it is used as an universal identifier for stored data.\n      var origB = this.originalOperations.get(opB);\n\n      var undoneB = this._history.getUndoneOperation(origB); // If `opB` is not undoing any operation, there is no relation.\n\n\n      if (!undoneB) {\n        return null;\n      }\n\n      var origA = this.originalOperations.get(opA);\n\n      var relationsA = this._relations.get(origA); // Get all relations for `opA`, and check if there is a relation with `opB`-undone-counterpart. If so, return it.\n\n\n      if (relationsA) {\n        return relationsA.get(undoneB) || null;\n      }\n\n      return null;\n    } // Helper function for `ContextFactory#updateRelations`.\n    //\n    // @private\n    // @param {module:engine/model/operation/operation~Operation} opA\n    // @param {module:engine/model/operation/operation~Operation} opB\n    // @param {String} relation\n\n  }, {\n    key: \"_setRelation\",\n    value: function _setRelation(opA, opB, relation) {\n      // As always, setting is for original operations, not the clones/transformed operations.\n      var origA = this.originalOperations.get(opA);\n      var origB = this.originalOperations.get(opB);\n\n      var relationsA = this._relations.get(origA);\n\n      if (!relationsA) {\n        relationsA = new Map();\n\n        this._relations.set(origA, relationsA);\n      }\n\n      relationsA.set(origB, relation);\n    }\n  }]);\n\n  return ContextFactory;\n}();\n/**\n * Holds additional contextual information about a transformed pair of operations (`a` and `b`). Those information\n * can be used for better conflict resolving.\n *\n * @typedef {Object} module:engine/model/operation/transform~TransformationContext\n *\n * @property {Boolean} aIsStrong Whether `a` is strong operation in this transformation, or weak.\n * @property {Boolean} aWasUndone Whether `a` operation was undone.\n * @property {Boolean} bWasUndone Whether `b` operation was undone.\n * @property {String|null} abRelation The relation between `a` operation and an operation undone by `b` operation.\n * @property {String|null} baRelation The relation between `b` operation and an operation undone by `a` operation.\n */\n\n/**\n * An utility function that updates {@link module:engine/model/operation/operation~Operation#baseVersion base versions}\n * of passed operations.\n *\n * The function simply sets `baseVersion` as a base version of the first passed operation and then increments it for\n * each following operation in `operations`.\n *\n * @private\n * @param {Array.<module:engine/model/operation/operation~Operation>} operations Operations to update.\n * @param {Number} baseVersion Base version to set for the first operation in `operations`.\n */\n\n\nfunction updateBaseVersions(operations, baseVersion) {\n  var _iterator4 = _createForOfIteratorHelper(operations),\n      _step4;\n\n  try {\n    for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n      var operation = _step4.value;\n      operation.baseVersion = baseVersion++;\n    }\n  } catch (err) {\n    _iterator4.e(err);\n  } finally {\n    _iterator4.f();\n  }\n}\n/**\n * Adds `howMany` instances of {@link module:engine/model/operation/nooperation~NoOperation} to `operations` set.\n *\n * @private\n * @param {Array.<module:engine/model/operation/operation~Operation>} operations\n * @param {Number} howMany\n */\n\n\nfunction padWithNoOps(operations, howMany) {\n  for (var i = 0; i < howMany; i++) {\n    operations.push(new NoOperation(0));\n  }\n} // -----------------------\n\n\nsetTransformation(AttributeOperation, AttributeOperation, function (a, b, context) {\n  if (a.key === b.key) {\n    // If operations attributes are in conflict, check if their ranges intersect and manage them properly.\n    // First, we want to apply change to the part of a range that has not been changed by the other operation.\n    var operations = a.range.getDifference(b.range).map(function (range) {\n      return new AttributeOperation(range, a.key, a.oldValue, a.newValue, 0);\n    }); // Then we take care of the common part of ranges.\n\n    var common = a.range.getIntersection(b.range);\n\n    if (common) {\n      // If this operation is more important, we also want to apply change to the part of the\n      // original range that has already been changed by the other operation. Since that range\n      // got changed we also have to update `oldValue`.\n      if (context.aIsStrong) {\n        operations.push(new AttributeOperation(common, b.key, b.newValue, a.newValue, 0));\n      }\n    }\n\n    if (operations.length == 0) {\n      return [new NoOperation(0)];\n    }\n\n    return operations;\n  } else {\n    // If operations don't conflict, simply return an array containing just a clone of this operation.\n    return [a];\n  }\n});\nsetTransformation(AttributeOperation, InsertOperation, function (a, b) {\n  // Case 1:\n  //\n  // The attribute operation range includes the position where nodes were inserted.\n  // There are two possible scenarios: the inserted nodes were text and they should receive attributes or\n  // the inserted nodes were elements and they should not receive attributes.\n  //\n  if (a.range.start.hasSameParentAs(b.position) && a.range.containsPosition(b.position)) {\n    // If new nodes should not receive attributes, two separated ranges will be returned.\n    // Otherwise, one expanded range will be returned.\n    var range = a.range._getTransformedByInsertion(b.position, b.howMany, !b.shouldReceiveAttributes);\n\n    var result = range.map(function (r) {\n      return new AttributeOperation(r, a.key, a.oldValue, a.newValue, a.baseVersion);\n    });\n\n    if (b.shouldReceiveAttributes) {\n      // `AttributeOperation#range` includes some newly inserted text.\n      // The operation should also change the attribute of that text. An example:\n      //\n      // Bold should be applied on the following range:\n      // <p>Fo[zb]ar</p>\n      //\n      // In meantime, new text is typed:\n      // <p>Fozxxbar</p>\n      //\n      // Bold should be applied also on the new text:\n      // <p>Fo[zxxb]ar</p>\n      // <p>Fo<$text bold=\"true\">zxxb</$text>ar</p>\n      //\n      // There is a special case to consider here to consider.\n      //\n      // Consider setting an attribute with multiple possible values, for example `highlight`. The inserted text might\n      // have already an attribute value applied and the `oldValue` property of the attribute operation might be wrong:\n      //\n      // Attribute `highlight=\"yellow\"` should be applied on the following range:\n      // <p>Fo[zb]ar<p>\n      //\n      // In meantime, character `x` with `highlight=\"red\"` is typed:\n      // <p>Fo[z<$text highlight=\"red\">x</$text>b]ar</p>\n      //\n      // In this case we cannot simply apply operation changing the attribute value from `null` to `\"yellow\"` for the whole range\n      // because that would lead to an exception (`oldValue` is incorrect for `x`).\n      //\n      // We also cannot break the original range as this would mess up a scenario when there are multiple following\n      // insert operations, because then only the first inserted character is included in those ranges:\n      // <p>Fo[z][x][b]ar</p>   -->   <p>Fo[z][x]x[b]ar</p>   -->   <p>Fo[z][x]xx[b]ar</p>\n      //\n      // So, the attribute range needs be expanded, no matter what attributes are set on the inserted nodes:\n      //\n      // <p>Fo[z<$text highlight=\"red\">x</$text>b]ar</p>      <--- Change from `null` to `yellow`, throwing an exception.\n      //\n      // But before that operation would be applied, we will add an additional attribute operation that will change\n      // attributes on the inserted nodes in a way which would make the original operation correct:\n      //\n      // <p>Fo[z{<$text highlight=\"red\">}x</$text>b]ar</p>    <--- Change range `{}` from `red` to `null`.\n      // <p>Fo[zxb]ar</p>                                     <--- Now change from `null` to `yellow` is completely fine.\n      //\n      // Generate complementary attribute operation. Be sure to add it before the original operation.\n      var op = _getComplementaryAttributeOperations(b, a.key, a.oldValue);\n\n      if (op) {\n        result.unshift(op);\n      }\n    } // If nodes should not receive new attribute, we are done here.\n\n\n    return result;\n  } // If insert operation is not expanding the attribute operation range, simply transform the range.\n\n\n  a.range = a.range._getTransformedByInsertion(b.position, b.howMany, false)[0];\n  return [a];\n});\n/**\n * Helper function for `AttributeOperation` x `InsertOperation` (and reverse) transformation.\n *\n * For given `insertOperation` it checks the inserted node if it has an attribute `key` set to a value different\n * than `newValue`. If so, it generates an `AttributeOperation` which changes the value of `key` attribute to `newValue`.\n *\n * @private\n * @param {module:engine/model/operation/insertoperation~InsertOperation} insertOperation\n * @param {String} key\n * @param {*} newValue\n * @returns {module:engine/model/operation/attributeoperation~AttributeOperation|null}\n */\n\nfunction _getComplementaryAttributeOperations(insertOperation, key, newValue) {\n  var nodes = insertOperation.nodes; // At the beginning we store the attribute value from the first node.\n\n  var insertValue = nodes.getNode(0).getAttribute(key);\n\n  if (insertValue == newValue) {\n    return null;\n  }\n\n  var range = new Range(insertOperation.position, insertOperation.position.getShiftedBy(insertOperation.howMany));\n  return new AttributeOperation(range, key, insertValue, newValue, 0);\n}\n\nsetTransformation(AttributeOperation, MergeOperation, function (a, b) {\n  var ranges = []; // Case 1:\n  //\n  // Attribute change on the merged element. In this case, the merged element was moved to the graveyard.\n  // An additional attribute operation that will change the (re)moved element needs to be generated.\n  //\n\n  if (a.range.start.hasSameParentAs(b.deletionPosition)) {\n    if (a.range.containsPosition(b.deletionPosition) || a.range.start.isEqual(b.deletionPosition)) {\n      ranges.push(Range._createFromPositionAndShift(b.graveyardPosition, 1));\n    }\n  }\n\n  var range = a.range._getTransformedByMergeOperation(b); // Do not add empty (collapsed) ranges to the result. `range` may be collapsed if it contained only the merged element.\n\n\n  if (!range.isCollapsed) {\n    ranges.push(range);\n  } // Create `AttributeOperation`s out of the ranges.\n\n\n  return ranges.map(function (range) {\n    return new AttributeOperation(range, a.key, a.oldValue, a.newValue, a.baseVersion);\n  });\n});\nsetTransformation(AttributeOperation, MoveOperation, function (a, b) {\n  var ranges = _breakRangeByMoveOperation(a.range, b); // Create `AttributeOperation`s out of the ranges.\n\n\n  return ranges.map(function (range) {\n    return new AttributeOperation(range, a.key, a.oldValue, a.newValue, a.baseVersion);\n  });\n}); // Helper function for `AttributeOperation` x `MoveOperation` transformation.\n//\n// Takes the passed `range` and transforms it by move operation `moveOp` in a specific way. Only top-level nodes of `range`\n// are considered to be in the range. If move operation moves nodes deep from inside of the range, those nodes won't\n// be included in the result. In other words, top-level nodes of the ranges from the result are exactly the same as\n// top-level nodes of the original `range`.\n//\n// This is important for `AttributeOperation` because, for its range, it changes only the top-level nodes. So we need to\n// track only how those nodes have been affected by `MoveOperation`.\n//\n// @private\n// @param {module:engine/model/range~Range} range\n// @param {module:engine/model/operation/moveoperation~MoveOperation} moveOp\n// @returns {Array.<module:engine/model/range~Range>}\n\nfunction _breakRangeByMoveOperation(range, moveOp) {\n  var moveRange = Range._createFromPositionAndShift(moveOp.sourcePosition, moveOp.howMany); // We are transforming `range` (original range) by `moveRange` (range moved by move operation). As usual when it comes to\n  // transforming a ranges, we may have a common part of the ranges and we may have a difference part (zero to two ranges).\n\n\n  var common = null;\n  var difference = []; // Let's compare the ranges.\n\n  if (moveRange.containsRange(range, true)) {\n    // If the whole original range is moved, treat it whole as a common part. There's also no difference part.\n    common = range;\n  } else if (range.start.hasSameParentAs(moveRange.start)) {\n    // If the ranges are \"on the same level\" (in the same parent) then move operation may move exactly those nodes\n    // that are changed by the attribute operation. In this case we get common part and difference part in the usual way.\n    difference = range.getDifference(moveRange);\n    common = range.getIntersection(moveRange);\n  } else {\n    // In any other situation we assume that original range is different than move range, that is that move operation\n    // moves other nodes that attribute operation change. Even if the moved range is deep inside in the original range.\n    //\n    // Note that this is different than in `.getIntersection` (we would get a common part in that case) and different\n    // than `.getDifference` (we would get two ranges).\n    difference = [range];\n  }\n\n  var result = []; // The default behaviour of `_getTransformedByMove` might get wrong results for difference part, though, so\n  // we do it by hand.\n\n  var _iterator5 = _createForOfIteratorHelper(difference),\n      _step5;\n\n  try {\n    for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n      var diff = _step5.value;\n      // First, transform the range by removing moved nodes. Since this is a difference, this is safe, `null` won't be returned\n      // as the range is different than the moved range.\n      diff = diff._getTransformedByDeletion(moveOp.sourcePosition, moveOp.howMany); // Transform also `targetPosition`.\n\n      var targetPosition = moveOp.getMovedRangeStart(); // Spread the range only if moved nodes are inserted only between the top-level nodes of the `diff` range.\n\n      var spread = diff.start.hasSameParentAs(targetPosition); // Transform by insertion of moved nodes.\n\n      diff = diff._getTransformedByInsertion(targetPosition, moveOp.howMany, spread);\n      result.push.apply(result, _toConsumableArray(diff));\n    } // Common part can be simply transformed by the move operation. This is because move operation will not target to\n    // that common part (the operation would have to target inside its own moved range).\n\n  } catch (err) {\n    _iterator5.e(err);\n  } finally {\n    _iterator5.f();\n  }\n\n  if (common) {\n    result.push(common._getTransformedByMove(moveOp.sourcePosition, moveOp.targetPosition, moveOp.howMany, false)[0]);\n  }\n\n  return result;\n}\n\nsetTransformation(AttributeOperation, SplitOperation, function (a, b) {\n  // Case 1:\n  //\n  // Split node is the last node in `AttributeOperation#range`.\n  // `AttributeOperation#range` needs to be expanded to include the new (split) node.\n  //\n  // Attribute `type` to be changed to `numbered` but the `listItem` is split.\n  // <listItem type=\"bulleted\">foobar</listItem>\n  //\n  // After split:\n  // <listItem type=\"bulleted\">foo</listItem><listItem type=\"bulleted\">bar</listItem>\n  //\n  // After attribute change:\n  // <listItem type=\"numbered\">foo</listItem><listItem type=\"numbered\">foo</listItem>\n  //\n  if (a.range.end.isEqual(b.insertionPosition)) {\n    if (!b.graveyardPosition) {\n      a.range.end.offset++;\n    }\n\n    return [a];\n  } // Case 2:\n  //\n  // Split position is inside `AttributeOperation#range`, at the same level, so the nodes to change are\n  // not going to make a flat range.\n  //\n  // Content with range-to-change and split position:\n  // <p>Fo[zb^a]r</p>\n  //\n  // After split:\n  // <p>Fozb</p><p>ar</p>\n  //\n  // Make two separate ranges containing all nodes to change:\n  // <p>Fo[zb]</p><p>[a]r</p>\n  //\n\n\n  if (a.range.start.hasSameParentAs(b.splitPosition) && a.range.containsPosition(b.splitPosition)) {\n    var secondPart = a.clone();\n    secondPart.range = new Range(b.moveTargetPosition.clone(), a.range.end._getCombined(b.splitPosition, b.moveTargetPosition));\n    a.range.end = b.splitPosition.clone();\n    a.range.end.stickiness = 'toPrevious';\n    return [a, secondPart];\n  } // The default case.\n  //\n\n\n  a.range = a.range._getTransformedBySplitOperation(b);\n  return [a];\n});\nsetTransformation(InsertOperation, AttributeOperation, function (a, b) {\n  var result = [a]; // Case 1:\n  //\n  // The attribute operation range includes the position where nodes were inserted.\n  // There are two possible scenarios: the inserted nodes were text and they should receive attributes or\n  // the inserted nodes were elements and they should not receive attributes.\n  //\n  // This is a mirror scenario to the one described in `AttributeOperation` x `InsertOperation` transformation,\n  // although this case is a little less complicated. In this case we simply need to change attributes of the\n  // inserted nodes and that's it.\n  //\n\n  if (a.shouldReceiveAttributes && a.position.hasSameParentAs(b.range.start) && b.range.containsPosition(a.position)) {\n    var op = _getComplementaryAttributeOperations(a, b.key, b.newValue);\n\n    if (op) {\n      result.push(op);\n    }\n  } // The default case is: do nothing.\n  // `AttributeOperation` does not change the model tree structure so `InsertOperation` does not need to be changed.\n  //\n\n\n  return result;\n});\nsetTransformation(InsertOperation, InsertOperation, function (a, b, context) {\n  // Case 1:\n  //\n  // Two insert operations insert nodes at the same position. Since they are the same, it needs to be decided\n  // what will be the order of inserted nodes. However, there is no additional information to help in that\n  // decision. Also, when `b` will be transformed by `a`, the same order must be maintained.\n  //\n  // To achieve that, we will check if the operation is strong.\n  // If it is, it won't get transformed. If it is not, it will be moved.\n  //\n  if (a.position.isEqual(b.position) && context.aIsStrong) {\n    return [a];\n  } // The default case.\n  //\n\n\n  a.position = a.position._getTransformedByInsertOperation(b);\n  return [a];\n});\nsetTransformation(InsertOperation, MoveOperation, function (a, b) {\n  // The default case.\n  //\n  a.position = a.position._getTransformedByMoveOperation(b);\n  return [a];\n});\nsetTransformation(InsertOperation, SplitOperation, function (a, b) {\n  // The default case.\n  //\n  a.position = a.position._getTransformedBySplitOperation(b);\n  return [a];\n});\nsetTransformation(InsertOperation, MergeOperation, function (a, b) {\n  a.position = a.position._getTransformedByMergeOperation(b);\n  return [a];\n}); // -----------------------\n\nsetTransformation(MarkerOperation, InsertOperation, function (a, b) {\n  if (a.oldRange) {\n    a.oldRange = a.oldRange._getTransformedByInsertOperation(b)[0];\n  }\n\n  if (a.newRange) {\n    a.newRange = a.newRange._getTransformedByInsertOperation(b)[0];\n  }\n\n  return [a];\n});\nsetTransformation(MarkerOperation, MarkerOperation, function (a, b, context) {\n  if (a.name == b.name) {\n    if (context.aIsStrong) {\n      a.oldRange = b.newRange ? b.newRange.clone() : null;\n    } else {\n      return [new NoOperation(0)];\n    }\n  }\n\n  return [a];\n});\nsetTransformation(MarkerOperation, MergeOperation, function (a, b) {\n  if (a.oldRange) {\n    a.oldRange = a.oldRange._getTransformedByMergeOperation(b);\n  }\n\n  if (a.newRange) {\n    a.newRange = a.newRange._getTransformedByMergeOperation(b);\n  }\n\n  return [a];\n});\nsetTransformation(MarkerOperation, MoveOperation, function (a, b, context) {\n  if (a.oldRange) {\n    a.oldRange = Range._createFromRanges(a.oldRange._getTransformedByMoveOperation(b));\n  }\n\n  if (a.newRange) {\n    if (context.abRelation) {\n      var aNewRange = Range._createFromRanges(a.newRange._getTransformedByMoveOperation(b));\n\n      if (context.abRelation.side == 'left' && b.targetPosition.isEqual(a.newRange.start)) {\n        a.newRange.start.path = context.abRelation.path;\n        a.newRange.end = aNewRange.end;\n        return [a];\n      } else if (context.abRelation.side == 'right' && b.targetPosition.isEqual(a.newRange.end)) {\n        a.newRange.start = aNewRange.start;\n        a.newRange.end.path = context.abRelation.path;\n        return [a];\n      }\n    }\n\n    a.newRange = Range._createFromRanges(a.newRange._getTransformedByMoveOperation(b));\n  }\n\n  return [a];\n});\nsetTransformation(MarkerOperation, SplitOperation, function (a, b, context) {\n  if (a.oldRange) {\n    a.oldRange = a.oldRange._getTransformedBySplitOperation(b);\n  }\n\n  if (a.newRange) {\n    if (context.abRelation) {\n      var aNewRange = a.newRange._getTransformedBySplitOperation(b);\n\n      if (a.newRange.start.isEqual(b.splitPosition) && context.abRelation.wasStartBeforeMergedElement) {\n        a.newRange.start = Position._createAt(b.insertionPosition);\n      } else if (a.newRange.start.isEqual(b.splitPosition) && !context.abRelation.wasInLeftElement) {\n        a.newRange.start = Position._createAt(b.moveTargetPosition);\n      }\n\n      if (a.newRange.end.isEqual(b.splitPosition) && context.abRelation.wasInRightElement) {\n        a.newRange.end = Position._createAt(b.moveTargetPosition);\n      } else if (a.newRange.end.isEqual(b.splitPosition) && context.abRelation.wasEndBeforeMergedElement) {\n        a.newRange.end = Position._createAt(b.insertionPosition);\n      } else {\n        a.newRange.end = aNewRange.end;\n      }\n\n      return [a];\n    }\n\n    a.newRange = a.newRange._getTransformedBySplitOperation(b);\n  }\n\n  return [a];\n}); // -----------------------\n\nsetTransformation(MergeOperation, InsertOperation, function (a, b) {\n  if (a.sourcePosition.hasSameParentAs(b.position)) {\n    a.howMany += b.howMany;\n  }\n\n  a.sourcePosition = a.sourcePosition._getTransformedByInsertOperation(b);\n  a.targetPosition = a.targetPosition._getTransformedByInsertOperation(b);\n  return [a];\n});\nsetTransformation(MergeOperation, MergeOperation, function (a, b, context) {\n  // Case 1:\n  //\n  // Same merge operations.\n  //\n  // Both operations have same source and target positions. So the element already got merged and there is\n  // theoretically nothing to do.\n  //\n  if (a.sourcePosition.isEqual(b.sourcePosition) && a.targetPosition.isEqual(b.targetPosition)) {\n    // There are two ways that we can provide a do-nothing operation.\n    //\n    // First is simply a NoOperation instance. We will use it if `b` operation was not undone.\n    //\n    // Second is a merge operation that has the source operation in the merged element - in the graveyard -\n    // same target position and `howMany` equal to `0`. So it is basically merging an empty element from graveyard\n    // which is almost the same as NoOperation.\n    //\n    // This way the merge operation can be later transformed by split operation\n    // to provide correct undo. This will be used if `b` operation was undone (only then it is correct).\n    //\n    if (!context.bWasUndone) {\n      return [new NoOperation(0)];\n    } else {\n      var path = b.graveyardPosition.path.slice();\n      path.push(0);\n      a.sourcePosition = new Position(b.graveyardPosition.root, path);\n      a.howMany = 0;\n      return [a];\n    }\n  } // Case 2:\n  //\n  // Same merge source position but different target position.\n  //\n  // This can happen during collaboration. For example, if one client merged a paragraph to the previous paragraph\n  // and the other person removed that paragraph and merged the same paragraph to something before:\n  //\n  // Client A:\n  // <p>Foo</p><p>Bar</p><p>[]Xyz</p>\n  // <p>Foo</p><p>BarXyz</p>\n  //\n  // Client B:\n  // <p>Foo</p>[<p>Bar</p>]<p>Xyz</p>\n  // <p>Foo</p><p>[]Xyz</p>\n  // <p>FooXyz</p>\n  //\n  // In this case we need to decide where finally \"Xyz\" will land:\n  //\n  // <p>FooXyz</p>               graveyard: <p>Bar</p>\n  // <p>Foo</p>                  graveyard: <p>BarXyz</p>\n  //\n  // Let's move it in a way so that a merge operation that does not target to graveyard is more important so that\n  // nodes does not end up in the graveyard. It makes sense. Both for Client A and for Client B \"Xyz\" finally did not\n  // end up in the graveyard (see above).\n  //\n  // If neither or both operations point to graveyard, then let `aIsStrong` decide.\n  //\n\n\n  if (a.sourcePosition.isEqual(b.sourcePosition) && !a.targetPosition.isEqual(b.targetPosition) && !context.bWasUndone && context.abRelation != 'splitAtSource') {\n    var aToGraveyard = a.targetPosition.root.rootName == '$graveyard';\n    var bToGraveyard = b.targetPosition.root.rootName == '$graveyard'; // If `aIsWeak` it means that `a` points to graveyard while `b` doesn't. Don't move nodes then.\n\n    var aIsWeak = aToGraveyard && !bToGraveyard; // If `bIsWeak` it means that `b` points to graveyard while `a` doesn't. Force moving nodes then.\n\n    var bIsWeak = bToGraveyard && !aToGraveyard; // Force move if `b` is weak or neither operation is weak but `a` is stronger through `context.aIsStrong`.\n\n    var forceMove = bIsWeak || !aIsWeak && context.aIsStrong;\n\n    if (forceMove) {\n      var sourcePosition = b.targetPosition._getTransformedByMergeOperation(b);\n\n      var targetPosition = a.targetPosition._getTransformedByMergeOperation(b);\n\n      return [new MoveOperation(sourcePosition, a.howMany, targetPosition, 0)];\n    } else {\n      return [new NoOperation(0)];\n    }\n  } // The default case.\n  //\n\n\n  if (a.sourcePosition.hasSameParentAs(b.targetPosition)) {\n    a.howMany += b.howMany;\n  }\n\n  a.sourcePosition = a.sourcePosition._getTransformedByMergeOperation(b);\n  a.targetPosition = a.targetPosition._getTransformedByMergeOperation(b); // Handle positions in graveyard.\n  // If graveyard positions are same and `a` operation is strong - do not transform.\n\n  if (!a.graveyardPosition.isEqual(b.graveyardPosition) || !context.aIsStrong) {\n    a.graveyardPosition = a.graveyardPosition._getTransformedByMergeOperation(b);\n  }\n\n  return [a];\n});\nsetTransformation(MergeOperation, MoveOperation, function (a, b, context) {\n  // Case 1:\n  //\n  // The element to merge got removed.\n  //\n  // Merge operation does support merging elements which are not siblings. So it would not be a problem\n  // from technical point of view. However, if the element was removed, the intention of the user deleting it\n  // was to have it all deleted, together with its children. From user experience point of view, moving back the\n  // removed nodes might be unexpected. This means that in this scenario we will block the merging.\n  //\n  // The exception of this rule would be if the remove operation was later undone.\n  //\n  var removedRange = Range._createFromPositionAndShift(b.sourcePosition, b.howMany);\n\n  if (b.type == 'remove' && !context.bWasUndone && !context.forceWeakRemove) {\n    if (a.deletionPosition.hasSameParentAs(b.sourcePosition) && removedRange.containsPosition(a.sourcePosition)) {\n      return [new NoOperation(0)];\n    }\n  } // The default case.\n  //\n\n\n  if (a.sourcePosition.hasSameParentAs(b.targetPosition)) {\n    a.howMany += b.howMany;\n  }\n\n  if (a.sourcePosition.hasSameParentAs(b.sourcePosition)) {\n    a.howMany -= b.howMany;\n  }\n\n  a.sourcePosition = a.sourcePosition._getTransformedByMoveOperation(b);\n  a.targetPosition = a.targetPosition._getTransformedByMoveOperation(b); // `MergeOperation` graveyard position is like `MoveOperation` target position. It is a position where element(s) will\n  // be moved. Like in other similar cases, we need to consider the scenario when those positions are same.\n  // Here, we will treat `MergeOperation` like it is always strong (see `InsertOperation` x `InsertOperation` for comparison).\n  // This means that we won't transform graveyard position if it is equal to move operation target position.\n\n  if (!a.graveyardPosition.isEqual(b.targetPosition)) {\n    a.graveyardPosition = a.graveyardPosition._getTransformedByMoveOperation(b);\n  }\n\n  return [a];\n});\nsetTransformation(MergeOperation, SplitOperation, function (a, b, context) {\n  if (b.graveyardPosition) {\n    // If `b` operation defines graveyard position, a node from graveyard will be moved. This means that we need to\n    // transform `a.graveyardPosition` accordingly.\n    a.graveyardPosition = a.graveyardPosition._getTransformedByDeletion(b.graveyardPosition, 1); // This is a scenario foreseen in `MergeOperation` x `MergeOperation`, with two identical merge operations.\n    //\n    // So, there was `MergeOperation` x `MergeOperation` transformation earlier. Now, `a` is a merge operation which\n    // source position is in graveyard. Interestingly, split operation wants to use the node to be merged by `a`. This\n    // means that `b` is undoing that merge operation from earlier, which caused `a` to be in graveyard.\n    //\n    // If that's the case, at this point, we will only \"fix\" `a.howMany`. It was earlier set to `0` in\n    // `MergeOperation` x `MergeOperation` transformation. Later transformations in this function will change other\n    // properties.\n    //\n\n    if (a.deletionPosition.isEqual(b.graveyardPosition)) {\n      a.howMany = b.howMany;\n    }\n  } // Case 1:\n  //\n  // Merge operation moves nodes to the place where split happens.\n  // This is a classic situation when there are two paragraphs, and there is a split (enter) after the first\n  // paragraph and there is a merge (delete) at the beginning of the second paragraph:\n  //\n  // <p>Foo{}</p><p>[]Bar</p>.\n  //\n  // Split is after `Foo`, while merge is from `Bar` to the end of `Foo`.\n  //\n  // State after split:\n  // <p>Foo</p><p></p><p>Bar</p>\n  //\n  // Now, `Bar` should be merged to the new paragraph:\n  // <p>Foo</p><p>Bar</p>\n  //\n  // Instead of merging it to the original paragraph:\n  // <p>FooBar</p><p></p>\n  //\n  // This means that `targetPosition` needs to be transformed. This is the default case though.\n  // For example, if the split would be after `F`, `targetPosition` should also be transformed.\n  //\n  // There are three exceptions, though, when we want to keep `targetPosition` as it was.\n  //\n  // First exception is when the merge target position is inside an element (not at the end, as usual). This\n  // happens when the merge operation earlier was transformed by \"the same\" merge operation. If merge operation\n  // targets inside the element we want to keep the original target position (and not transform it) because\n  // we have additional context telling us that we want to merge to the original element. We can check if the\n  // merge operation points inside element by checking what is `SplitOperation#howMany`. Since merge target position\n  // is same as split position, if `howMany` is non-zero, it means that the merge target position is inside an element.\n  //\n  // Second exception is when the element to merge is in the graveyard and split operation uses it. In that case\n  // if target position would be transformed, the merge operation would target at the source position:\n  //\n  // root: <p>Foo</p>\t\t\t\tgraveyard: <p></p>\n  //\n  // SplitOperation: root [ 0, 3 ] using graveyard [ 0 ] (howMany = 0)\n  // MergeOperation: graveyard [ 0, 0 ] -> root [ 0, 3 ] (howMany = 0)\n  //\n  // Since split operation moves the graveyard node back to the root, the merge operation source position changes.\n  // We would like to merge from the empty <p> to the \"Foo\" <p>:\n  //\n  // root: <p>Foo</p><p></p>\t\t\tgraveyard:\n  //\n  // MergeOperation#sourcePosition = root [ 1, 0 ]\n  //\n  // If `targetPosition` is transformed, it would become root [ 1, 0 ] as well. It has to be kept as it was.\n  //\n  // Third exception is connected with relations. If this happens during undo and we have explicit information\n  // that target position has not been affected by the operation which is undone by this split then this split should\n  // not move the target position either.\n  //\n\n\n  if (a.targetPosition.isEqual(b.splitPosition)) {\n    var mergeInside = b.howMany != 0;\n    var mergeSplittingElement = b.graveyardPosition && a.deletionPosition.isEqual(b.graveyardPosition);\n\n    if (mergeInside || mergeSplittingElement || context.abRelation == 'mergeTargetNotMoved') {\n      a.sourcePosition = a.sourcePosition._getTransformedBySplitOperation(b);\n      return [a];\n    }\n  } // Case 2:\n  //\n  // Merge source is at the same position as split position. This sometimes happen, mostly during undo.\n  // The decision here is mostly to choose whether merge source position should stay where it is (so it will be at the end of the\n  // split element) or should be move to the beginning of the new element.\n  //\n\n\n  if (a.sourcePosition.isEqual(b.splitPosition)) {\n    // Use context to check if `SplitOperation` is not undoing a merge operation, that didn't change the `a` operation.\n    // This scenario happens the undone merge operation moved nodes at the source position of `a` operation.\n    // In that case `a` operation source position should stay where it is.\n    if (context.abRelation == 'mergeSourceNotMoved') {\n      a.howMany = 0;\n      a.targetPosition = a.targetPosition._getTransformedBySplitOperation(b);\n      return [a];\n    } // This merge operation might have been earlier transformed by a merge operation which both merged the same element.\n    // See that case in `MergeOperation` x `MergeOperation` transformation. In that scenario, if the merge operation has been undone,\n    // the special case is not applied.\n    //\n    // Now, the merge operation is transformed by the split which has undone that previous merge operation.\n    // So now we are fixing situation which was skipped in `MergeOperation` x `MergeOperation` case.\n    //\n\n\n    if (context.abRelation == 'mergeSameElement' || a.sourcePosition.offset > 0) {\n      a.sourcePosition = b.moveTargetPosition.clone();\n      a.targetPosition = a.targetPosition._getTransformedBySplitOperation(b);\n      return [a];\n    }\n  } // The default case.\n  //\n\n\n  if (a.sourcePosition.hasSameParentAs(b.splitPosition)) {\n    a.howMany = b.splitPosition.offset;\n  }\n\n  a.sourcePosition = a.sourcePosition._getTransformedBySplitOperation(b);\n  a.targetPosition = a.targetPosition._getTransformedBySplitOperation(b);\n  return [a];\n}); // -----------------------\n\nsetTransformation(MoveOperation, InsertOperation, function (a, b) {\n  var moveRange = Range._createFromPositionAndShift(a.sourcePosition, a.howMany);\n\n  var transformed = moveRange._getTransformedByInsertOperation(b, false)[0];\n\n  a.sourcePosition = transformed.start;\n  a.howMany = transformed.end.offset - transformed.start.offset; // See `InsertOperation` x `MoveOperation` transformation for details on this case.\n  //\n  // In summary, both operations point to the same place, so the order of nodes needs to be decided.\n  // `MoveOperation` is considered weaker, so it is always transformed, unless there was a certain relation\n  // between operations.\n  //\n\n  if (!a.targetPosition.isEqual(b.position)) {\n    a.targetPosition = a.targetPosition._getTransformedByInsertOperation(b);\n  }\n\n  return [a];\n});\nsetTransformation(MoveOperation, MoveOperation, function (a, b, context) {\n  //\n  // Setting and evaluating some variables that will be used in special cases and default algorithm.\n  //\n  // Create ranges from `MoveOperations` properties.\n  var rangeA = Range._createFromPositionAndShift(a.sourcePosition, a.howMany);\n\n  var rangeB = Range._createFromPositionAndShift(b.sourcePosition, b.howMany); // Assign `context.aIsStrong` to a different variable, because the value may change during execution of\n  // this algorithm and we do not want to override original `context.aIsStrong` that will be used in later transformations.\n\n\n  var aIsStrong = context.aIsStrong; // This will be used to decide the order of nodes if both operations target at the same position.\n  // By default, use strong/weak operation mechanism.\n\n  var insertBefore = !context.aIsStrong; // If the relation is set, then use it to decide nodes order.\n\n  if (context.abRelation == 'insertBefore' || context.baRelation == 'insertAfter') {\n    insertBefore = true;\n  } else if (context.abRelation == 'insertAfter' || context.baRelation == 'insertBefore') {\n    insertBefore = false;\n  } // `a.targetPosition` could be affected by the `b` operation. We will transform it.\n\n\n  var newTargetPosition;\n\n  if (a.targetPosition.isEqual(b.targetPosition) && insertBefore) {\n    newTargetPosition = a.targetPosition._getTransformedByDeletion(b.sourcePosition, b.howMany);\n  } else {\n    newTargetPosition = a.targetPosition._getTransformedByMove(b.sourcePosition, b.targetPosition, b.howMany);\n  } //\n  // Special case #1 + mirror.\n  //\n  // Special case when both move operations' target positions are inside nodes that are\n  // being moved by the other move operation. So in other words, we move ranges into inside of each other.\n  // This case can't be solved reasonably (on the other hand, it should not happen often).\n\n\n  if (_moveTargetIntoMovedRange(a, b) && _moveTargetIntoMovedRange(b, a)) {\n    // Instead of transforming operation, we return a reverse of the operation that we transform by.\n    // So when the results of this \"transformation\" will be applied, `b` MoveOperation will get reversed.\n    return [b.getReversed()];\n  } //\n  // End of special case #1.\n  //\n  //\n  // Special case #2.\n  //\n  // Check if `b` operation targets inside `rangeA`.\n\n\n  var bTargetsToA = rangeA.containsPosition(b.targetPosition); // If `b` targets to `rangeA` and `rangeA` contains `rangeB`, `b` operation has no influence on `a` operation.\n  // You might say that operation `b` is captured inside operation `a`.\n\n  if (bTargetsToA && rangeA.containsRange(rangeB, true)) {\n    // There is a mini-special case here, where `rangeB` is on other level than `rangeA`. That's why\n    // we need to transform `a` operation anyway.\n    rangeA.start = rangeA.start._getTransformedByMove(b.sourcePosition, b.targetPosition, b.howMany);\n    rangeA.end = rangeA.end._getTransformedByMove(b.sourcePosition, b.targetPosition, b.howMany);\n    return _makeMoveOperationsFromRanges([rangeA], newTargetPosition);\n  } //\n  // Special case #2 mirror.\n  //\n\n\n  var aTargetsToB = rangeB.containsPosition(a.targetPosition);\n\n  if (aTargetsToB && rangeB.containsRange(rangeA, true)) {\n    // `a` operation is \"moved together\" with `b` operation.\n    // Here, just move `rangeA` \"inside\" `rangeB`.\n    rangeA.start = rangeA.start._getCombined(b.sourcePosition, b.getMovedRangeStart());\n    rangeA.end = rangeA.end._getCombined(b.sourcePosition, b.getMovedRangeStart());\n    return _makeMoveOperationsFromRanges([rangeA], newTargetPosition);\n  } //\n  // End of special case #2.\n  //\n  //\n  // Special case #3 + mirror.\n  //\n  // `rangeA` has a node which is an ancestor of `rangeB`. In other words, `rangeB` is inside `rangeA`\n  // but not on the same tree level. In such case ranges have common part but we have to treat it\n  // differently, because in such case those ranges are not really conflicting and should be treated like\n  // two separate ranges. Also we have to discard two difference parts.\n\n\n  var aCompB = compareArrays(a.sourcePosition.getParentPath(), b.sourcePosition.getParentPath());\n\n  if (aCompB == 'prefix' || aCompB == 'extension') {\n    // Transform `rangeA` by `b` operation and make operation out of it, and that's all.\n    // Note that this is a simplified version of default case, but here we treat the common part (whole `rangeA`)\n    // like a one difference part.\n    rangeA.start = rangeA.start._getTransformedByMove(b.sourcePosition, b.targetPosition, b.howMany);\n    rangeA.end = rangeA.end._getTransformedByMove(b.sourcePosition, b.targetPosition, b.howMany);\n    return _makeMoveOperationsFromRanges([rangeA], newTargetPosition);\n  } //\n  // End of special case #3.\n  //\n  //\n  // Default case - ranges are on the same level or are not connected with each other.\n  //\n  // Modifier for default case.\n  // Modifies `aIsStrong` flag in certain conditions.\n  //\n  // If only one of operations is a remove operation, we force remove operation to be the \"stronger\" one\n  // to provide more expected results.\n\n\n  if (a.type == 'remove' && b.type != 'remove' && !context.aWasUndone && !context.forceWeakRemove) {\n    aIsStrong = true;\n  } else if (a.type != 'remove' && b.type == 'remove' && !context.bWasUndone && !context.forceWeakRemove) {\n    aIsStrong = false;\n  } // Handle operation's source ranges - check how `rangeA` is affected by `b` operation.\n  // This will aggregate transformed ranges.\n\n\n  var ranges = []; // Get the \"difference part\" of `a` operation source range.\n  // This is an array with one or two ranges. Two ranges if `rangeB` is inside `rangeA`.\n\n  var difference = rangeA.getDifference(rangeB);\n\n  var _iterator6 = _createForOfIteratorHelper(difference),\n      _step6;\n\n  try {\n    for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n      var range = _step6.value;\n      // Transform those ranges by `b` operation. For example if `b` moved range from before those ranges, fix those ranges.\n      range.start = range.start._getTransformedByDeletion(b.sourcePosition, b.howMany);\n      range.end = range.end._getTransformedByDeletion(b.sourcePosition, b.howMany); // If `b` operation targets into `rangeA` on the same level, spread `rangeA` into two ranges.\n\n      var shouldSpread = compareArrays(range.start.getParentPath(), b.getMovedRangeStart().getParentPath()) == 'same';\n\n      var newRanges = range._getTransformedByInsertion(b.getMovedRangeStart(), b.howMany, shouldSpread);\n\n      ranges.push.apply(ranges, _toConsumableArray(newRanges));\n    } // Then, we have to manage the \"common part\" of both move ranges.\n\n  } catch (err) {\n    _iterator6.e(err);\n  } finally {\n    _iterator6.f();\n  }\n\n  var common = rangeA.getIntersection(rangeB);\n\n  if (common !== null && aIsStrong) {\n    // Calculate the new position of that part of original range.\n    common.start = common.start._getCombined(b.sourcePosition, b.getMovedRangeStart());\n    common.end = common.end._getCombined(b.sourcePosition, b.getMovedRangeStart()); // Take care of proper range order.\n    //\n    // Put `common` at appropriate place. Keep in mind that we are interested in original order.\n    // Basically there are only three cases: there is zero, one or two difference ranges.\n    //\n    // If there is zero difference ranges, just push `common` in the array.\n\n    if (ranges.length === 0) {\n      ranges.push(common);\n    } // If there is one difference range, we need to check whether common part was before it or after it.\n    else if (ranges.length == 1) {\n        if (rangeB.start.isBefore(rangeA.start) || rangeB.start.isEqual(rangeA.start)) {\n          ranges.unshift(common);\n        } else {\n          ranges.push(common);\n        }\n      } // If there are more ranges (which means two), put common part between them. This is the only scenario\n      // where there could be two difference ranges so we don't have to make any comparisons.\n      else {\n          ranges.splice(1, 0, common);\n        }\n  }\n\n  if (ranges.length === 0) {\n    // If there are no \"source ranges\", nothing should be changed.\n    // Note that this can happen only if `aIsStrong == false` and `rangeA.isEqual( rangeB )`.\n    return [new NoOperation(a.baseVersion)];\n  }\n\n  return _makeMoveOperationsFromRanges(ranges, newTargetPosition);\n});\nsetTransformation(MoveOperation, SplitOperation, function (a, b, context) {\n  var newTargetPosition = a.targetPosition.clone(); // Do not transform if target position is same as split insertion position and this split comes from undo.\n  // This should be done on relations but it is too much work for now as it would require relations working in collaboration.\n  // We need to make a decision how we will resolve such conflict and this is less harmful way.\n\n  if (!a.targetPosition.isEqual(b.insertionPosition) || !b.graveyardPosition || context.abRelation == 'moveTargetAfter') {\n    newTargetPosition = a.targetPosition._getTransformedBySplitOperation(b);\n  } // Case 1:\n  //\n  // Last element in the moved range got split.\n  //\n  // In this case the default range transformation will not work correctly as the element created by\n  // split operation would be outside the range. The range to move needs to be fixed manually.\n  //\n\n\n  var moveRange = Range._createFromPositionAndShift(a.sourcePosition, a.howMany);\n\n  if (moveRange.end.isEqual(b.insertionPosition)) {\n    // Do it only if this is a \"natural\" split, not a one that comes from undo.\n    // If this is undo split, only `targetPosition` needs to be changed (if the move is a remove).\n    if (!b.graveyardPosition) {\n      a.howMany++;\n    }\n\n    a.targetPosition = newTargetPosition;\n    return [a];\n  } // Case 2:\n  //\n  // Split happened between the moved nodes. In this case two ranges to move need to be generated.\n  //\n  // Characters `ozba` are moved to the end of paragraph `Xyz` but split happened.\n  // <p>F[oz|ba]r</p><p>Xyz</p>\n  //\n  // After split:\n  // <p>F[oz</p><p>ba]r</p><p>Xyz</p>\n  //\n  // Correct ranges:\n  // <p>F[oz]</p><p>[ba]r</p><p>Xyz</p>\n  //\n  // After move:\n  // <p>F</p><p>r</p><p>Xyzozba</p>\n  //\n\n\n  if (moveRange.start.hasSameParentAs(b.splitPosition) && moveRange.containsPosition(b.splitPosition)) {\n    var rightRange = new Range(b.splitPosition, moveRange.end);\n    rightRange = rightRange._getTransformedBySplitOperation(b);\n    var _ranges = [new Range(moveRange.start, b.splitPosition), rightRange];\n    return _makeMoveOperationsFromRanges(_ranges, newTargetPosition);\n  } // Case 3:\n  //\n  // Move operation targets at the split position. We need to decide if the nodes should be inserted\n  // at the end of the split element or at the beginning of the new element.\n  //\n\n\n  if (a.targetPosition.isEqual(b.splitPosition) && context.abRelation == 'insertAtSource') {\n    newTargetPosition = b.moveTargetPosition;\n  } // Case 4:\n  //\n  // Move operation targets just after the split element. We need to decide if the nodes should be inserted\n  // between two parts of split element, or after the new element.\n  //\n  // Split at `|`, while move operation moves `<p>Xyz</p>` and targets at `^`:\n  // <p>Foo|bar</p>^<p>baz</p>\n  // <p>Foo</p>^<p>bar</p><p>baz</p> or <p>Foo</p><p>bar</p>^<p>baz</p>?\n  //\n  // If there is no contextual information between operations (for example, they come from collaborative\n  // editing), we don't want to put some unrelated content (move) between parts of related content (split parts).\n  // However, if the split is from undo, in the past, the moved content might be targeting between the\n  // split parts, meaning that was exactly user's intention:\n  //\n  // <p>Foo</p>^<p>bar</p>\t\t<--- original situation, in \"past\".\n  // <p>Foobar</p>^\t\t\t\t<--- after merge target position is transformed.\n  // <p>Foo|bar</p>^\t\t\t\t<--- then the merge is undone, and split happens, which leads us to current situation.\n  //\n  // In this case it is pretty clear that the intention was to put new paragraph between those nodes,\n  // so we need to transform accordingly. We can detect this scenario thanks to relations.\n  //\n\n\n  if (a.targetPosition.isEqual(b.insertionPosition) && context.abRelation == 'insertBetween') {\n    newTargetPosition = a.targetPosition;\n  } // The default case.\n  //\n\n\n  var transformed = moveRange._getTransformedBySplitOperation(b);\n\n  var ranges = [transformed]; // Case 5:\n  //\n  // Moved range contains graveyard element used by split operation. Add extra move operation to the result.\n  //\n\n  if (b.graveyardPosition) {\n    var movesGraveyardElement = moveRange.start.isEqual(b.graveyardPosition) || moveRange.containsPosition(b.graveyardPosition);\n\n    if (a.howMany > 1 && movesGraveyardElement && !context.aWasUndone) {\n      ranges.push(Range._createFromPositionAndShift(b.insertionPosition, 1));\n    }\n  }\n\n  return _makeMoveOperationsFromRanges(ranges, newTargetPosition);\n});\nsetTransformation(MoveOperation, MergeOperation, function (a, b, context) {\n  var movedRange = Range._createFromPositionAndShift(a.sourcePosition, a.howMany);\n\n  if (b.deletionPosition.hasSameParentAs(a.sourcePosition) && movedRange.containsPosition(b.sourcePosition)) {\n    if (a.type == 'remove' && !context.forceWeakRemove) {\n      // Case 1:\n      //\n      // The element to remove got merged.\n      //\n      // Merge operation does support merging elements which are not siblings. So it would not be a problem\n      // from technical point of view. However, if the element was removed, the intention of the user\n      // deleting it was to have it all deleted. From user experience point of view, moving back the\n      // removed nodes might be unexpected. This means that in this scenario we will reverse merging and remove the element.\n      //\n      if (!context.aWasUndone) {\n        var results = [];\n        var gyMoveSource = b.graveyardPosition.clone();\n\n        var splitNodesMoveSource = b.targetPosition._getTransformedByMergeOperation(b);\n\n        if (a.howMany > 1) {\n          results.push(new MoveOperation(a.sourcePosition, a.howMany - 1, a.targetPosition, 0));\n          gyMoveSource = gyMoveSource._getTransformedByMove(a.sourcePosition, a.targetPosition, a.howMany - 1);\n          splitNodesMoveSource = splitNodesMoveSource._getTransformedByMove(a.sourcePosition, a.targetPosition, a.howMany - 1);\n        }\n\n        var gyMoveTarget = b.deletionPosition._getCombined(a.sourcePosition, a.targetPosition);\n\n        var gyMove = new MoveOperation(gyMoveSource, 1, gyMoveTarget, 0);\n        var splitNodesMoveTargetPath = gyMove.getMovedRangeStart().path.slice();\n        splitNodesMoveTargetPath.push(0);\n        var splitNodesMoveTarget = new Position(gyMove.targetPosition.root, splitNodesMoveTargetPath);\n        splitNodesMoveSource = splitNodesMoveSource._getTransformedByMove(gyMoveSource, gyMoveTarget, 1);\n        var splitNodesMove = new MoveOperation(splitNodesMoveSource, b.howMany, splitNodesMoveTarget, 0);\n        results.push(gyMove);\n        results.push(splitNodesMove);\n        return results;\n      }\n    } else {\n      // Case 2:\n      //\n      // The element to move got merged and it was the only element to move.\n      // In this case just don't do anything, leave the node in the graveyard. Without special case\n      // it would be a move operation that moves 0 nodes, so maybe it is better just to return no-op.\n      //\n      if (a.howMany == 1) {\n        if (!context.bWasUndone) {\n          return [new NoOperation(0)];\n        } else {\n          a.sourcePosition = b.graveyardPosition.clone();\n          a.targetPosition = a.targetPosition._getTransformedByMergeOperation(b);\n          return [a];\n        }\n      }\n    }\n  } // The default case.\n  //\n\n\n  var moveRange = Range._createFromPositionAndShift(a.sourcePosition, a.howMany);\n\n  var transformed = moveRange._getTransformedByMergeOperation(b);\n\n  a.sourcePosition = transformed.start;\n  a.howMany = transformed.end.offset - transformed.start.offset;\n  a.targetPosition = a.targetPosition._getTransformedByMergeOperation(b);\n  return [a];\n}); // -----------------------\n\nsetTransformation(RenameOperation, InsertOperation, function (a, b) {\n  a.position = a.position._getTransformedByInsertOperation(b);\n  return [a];\n});\nsetTransformation(RenameOperation, MergeOperation, function (a, b) {\n  // Case 1:\n  //\n  // Element to rename got merged, so it was moved to `b.graveyardPosition`.\n  //\n  if (a.position.isEqual(b.deletionPosition)) {\n    a.position = b.graveyardPosition.clone();\n    a.position.stickiness = 'toNext';\n    return [a];\n  }\n\n  a.position = a.position._getTransformedByMergeOperation(b);\n  return [a];\n});\nsetTransformation(RenameOperation, MoveOperation, function (a, b) {\n  a.position = a.position._getTransformedByMoveOperation(b);\n  return [a];\n});\nsetTransformation(RenameOperation, RenameOperation, function (a, b, context) {\n  if (a.position.isEqual(b.position)) {\n    if (context.aIsStrong) {\n      a.oldName = b.newName;\n    } else {\n      return [new NoOperation(0)];\n    }\n  }\n\n  return [a];\n});\nsetTransformation(RenameOperation, SplitOperation, function (a, b) {\n  // Case 1:\n  //\n  // The element to rename has been split. In this case, the new element should be also renamed.\n  //\n  // User decides to change the paragraph to a list item:\n  // <paragraph>Foobar</paragraph>\n  //\n  // However, in meantime, split happens:\n  // <paragraph>Foo</paragraph><paragraph>bar</paragraph>\n  //\n  // As a result, rename both elements:\n  // <listItem>Foo</listItem><listItem>bar</listItem>\n  //\n  var renamePath = a.position.path;\n  var splitPath = b.splitPosition.getParentPath();\n\n  if (compareArrays(renamePath, splitPath) == 'same' && !b.graveyardPosition) {\n    var extraRename = new RenameOperation(a.position.getShiftedBy(1), a.oldName, a.newName, 0);\n    return [a, extraRename];\n  } // The default case.\n  //\n\n\n  a.position = a.position._getTransformedBySplitOperation(b);\n  return [a];\n}); // -----------------------\n\nsetTransformation(RootAttributeOperation, RootAttributeOperation, function (a, b, context) {\n  if (a.root === b.root && a.key === b.key) {\n    if (!context.aIsStrong || a.newValue === b.newValue) {\n      return [new NoOperation(0)];\n    } else {\n      a.oldValue = b.newValue;\n    }\n  }\n\n  return [a];\n}); // -----------------------\n\nsetTransformation(SplitOperation, InsertOperation, function (a, b) {\n  // The default case.\n  //\n  if (a.splitPosition.hasSameParentAs(b.position) && a.splitPosition.offset < b.position.offset) {\n    a.howMany += b.howMany;\n  }\n\n  a.splitPosition = a.splitPosition._getTransformedByInsertOperation(b);\n  a.insertionPosition = SplitOperation.getInsertionPosition(a.splitPosition);\n  return [a];\n});\nsetTransformation(SplitOperation, MergeOperation, function (a, b, context) {\n  // Case 1:\n  //\n  // Split element got merged. If two different elements were merged, clients will have different content.\n  //\n  // Example. Merge at `{}`, split at `[]`:\n  // <heading>Foo</heading>{}<paragraph>B[]ar</paragraph>\n  //\n  // On merge side it will look like this:\n  // <heading>FooB[]ar</heading>\n  // <heading>FooB</heading><heading>ar</heading>\n  //\n  // On split side it will look like this:\n  // <heading>Foo</heading>{}<paragraph>B</paragraph><paragraph>ar</paragraph>\n  // <heading>FooB</heading><paragraph>ar</paragraph>\n  //\n  // Clearly, the second element is different for both clients.\n  //\n  // We could use the removed merge element from graveyard as a split element but then clients would have a different\n  // model state (in graveyard), because the split side client would still have an element in graveyard (removed by merge).\n  //\n  // To overcome this, in `SplitOperation` x `MergeOperation` transformation we will add additional `SplitOperation`\n  // in the graveyard, which will actually clone the merged-and-deleted element. Then, that cloned element will be\n  // used for splitting. Example below.\n  //\n  // Original state:\n  // <heading>Foo</heading>{}<paragraph>B[]ar</paragraph>\n  //\n  // Merge side client:\n  //\n  // After merge:\n  // <heading>FooB[]ar</heading>                                 graveyard: <paragraph></paragraph>\n  //\n  // Extra split:\n  // <heading>FooB[]ar</heading>                                 graveyard: <paragraph></paragraph><paragraph></paragraph>\n  //\n  // Use the \"cloned\" element from graveyard:\n  // <heading>FooB</heading><paragraph>ar</paragraph>            graveyard: <paragraph></paragraph>\n  //\n  // Split side client:\n  //\n  // After split:\n  // <heading>Foo</heading>{}<paragraph>B</paragraph><paragraph>ar</paragraph>\n  //\n  // After merge:\n  // <heading>FooB</heading><paragraph>ar</paragraph>            graveyard: <paragraph></paragraph>\n  //\n  // This special case scenario only applies if the original split operation clones the split element.\n  // If the original split operation has `graveyardPosition` set, it all doesn't have sense because split operation\n  // knows exactly which element it should use. So there would be no original problem with different contents.\n  //\n  // Additionally, the special case applies only if the merge wasn't already undone.\n  //\n  if (!a.graveyardPosition && !context.bWasUndone && a.splitPosition.hasSameParentAs(b.sourcePosition)) {\n    var splitPath = b.graveyardPosition.path.slice();\n    splitPath.push(0);\n    var splitPosition = new Position(b.graveyardPosition.root, splitPath);\n    var insertionPosition = SplitOperation.getInsertionPosition(new Position(b.graveyardPosition.root, splitPath));\n    var additionalSplit = new SplitOperation(splitPosition, 0, null, 0);\n    additionalSplit.insertionPosition = insertionPosition;\n    a.splitPosition = a.splitPosition._getTransformedByMergeOperation(b);\n    a.insertionPosition = SplitOperation.getInsertionPosition(a.splitPosition);\n    a.graveyardPosition = additionalSplit.insertionPosition.clone();\n    a.graveyardPosition.stickiness = 'toNext';\n    return [additionalSplit, a];\n  } // The default case.\n  //\n\n\n  if (a.splitPosition.hasSameParentAs(b.deletionPosition) && !a.splitPosition.isAfter(b.deletionPosition)) {\n    a.howMany--;\n  }\n\n  if (a.splitPosition.hasSameParentAs(b.targetPosition)) {\n    a.howMany += b.howMany;\n  }\n\n  a.splitPosition = a.splitPosition._getTransformedByMergeOperation(b);\n  a.insertionPosition = SplitOperation.getInsertionPosition(a.splitPosition);\n\n  if (a.graveyardPosition) {\n    a.graveyardPosition = a.graveyardPosition._getTransformedByMergeOperation(b);\n  }\n\n  return [a];\n});\nsetTransformation(SplitOperation, MoveOperation, function (a, b, context) {\n  var rangeToMove = Range._createFromPositionAndShift(b.sourcePosition, b.howMany);\n\n  if (a.graveyardPosition) {\n    // Case 1:\n    //\n    // Split operation graveyard node was moved. In this case move operation is stronger. Since graveyard element\n    // is already moved to the correct position, we need to only move the nodes after the split position.\n    // This will be done by `MoveOperation` instead of `SplitOperation`.\n    //\n    var gyElementMoved = rangeToMove.start.isEqual(a.graveyardPosition) || rangeToMove.containsPosition(a.graveyardPosition);\n\n    if (!context.bWasUndone && gyElementMoved) {\n      var sourcePosition = a.splitPosition._getTransformedByMoveOperation(b);\n\n      var newParentPosition = a.graveyardPosition._getTransformedByMoveOperation(b);\n\n      var newTargetPath = newParentPosition.path.slice();\n      newTargetPath.push(0);\n      var newTargetPosition = new Position(newParentPosition.root, newTargetPath);\n      var moveOp = new MoveOperation(sourcePosition, a.howMany, newTargetPosition, 0);\n      return [moveOp];\n    }\n\n    a.graveyardPosition = a.graveyardPosition._getTransformedByMoveOperation(b);\n  } // Case 2:\n  //\n  // If the split position is inside the moved range, we need to shift the split position to a proper place.\n  // The position cannot be moved together with moved range because that would result in splitting of an incorrect element.\n  //\n  // Characters `bc` should be moved to the second paragraph while split position is between them:\n  // <paragraph>A[b|c]d</paragraph><paragraph>Xyz</paragraph>\n  //\n  // After move, new split position is incorrect:\n  // <paragraph>Ad</paragraph><paragraph>Xb|cyz</paragraph>\n  //\n  // Correct split position:\n  // <paragraph>A|d</paragraph><paragraph>Xbcyz</paragraph>\n  //\n  // After split:\n  // <paragraph>A</paragraph><paragraph>d</paragraph><paragraph>Xbcyz</paragraph>\n  //\n\n\n  if (a.splitPosition.hasSameParentAs(b.sourcePosition) && rangeToMove.containsPosition(a.splitPosition)) {\n    var howManyRemoved = b.howMany - (a.splitPosition.offset - b.sourcePosition.offset);\n    a.howMany -= howManyRemoved;\n\n    if (a.splitPosition.hasSameParentAs(b.targetPosition) && a.splitPosition.offset < b.targetPosition.offset) {\n      a.howMany += b.howMany;\n    }\n\n    a.splitPosition = b.sourcePosition.clone();\n    a.insertionPosition = SplitOperation.getInsertionPosition(a.splitPosition);\n    return [a];\n  } // Case 3:\n  //\n  // Split is at a position where nodes were moved.\n  //\n  // This is a scenario described in `MoveOperation` x `SplitOperation` transformation but from the\n  // \"split operation point of view\".\n  //\n\n\n  var splitAtTarget = a.splitPosition.isEqual(b.targetPosition);\n\n  if (splitAtTarget && (context.baRelation == 'insertAtSource' || context.abRelation == 'splitBefore')) {\n    a.howMany += b.howMany;\n    a.splitPosition = a.splitPosition._getTransformedByDeletion(b.sourcePosition, b.howMany);\n    a.insertionPosition = SplitOperation.getInsertionPosition(a.splitPosition);\n    return [a];\n  } // The default case.\n  // Don't change `howMany` if move operation does not really move anything.\n  //\n\n\n  if (!b.sourcePosition.isEqual(b.targetPosition)) {\n    if (a.splitPosition.hasSameParentAs(b.sourcePosition) && a.splitPosition.offset <= b.sourcePosition.offset) {\n      a.howMany -= b.howMany;\n    }\n\n    if (a.splitPosition.hasSameParentAs(b.targetPosition) && a.splitPosition.offset < b.targetPosition.offset) {\n      a.howMany += b.howMany;\n    }\n  } // Change position stickiness to force a correct transformation.\n\n\n  a.splitPosition.stickiness = 'toNone';\n  a.splitPosition = a.splitPosition._getTransformedByMoveOperation(b);\n  a.splitPosition.stickiness = 'toNext';\n\n  if (a.graveyardPosition) {\n    a.insertionPosition = a.insertionPosition._getTransformedByMoveOperation(b);\n  } else {\n    a.insertionPosition = SplitOperation.getInsertionPosition(a.splitPosition);\n  }\n\n  return [a];\n});\nsetTransformation(SplitOperation, SplitOperation, function (a, b, context) {\n  // Case 1:\n  //\n  // Split at the same position.\n  //\n  // If there already was a split at the same position as in `a` operation, it means that the intention\n  // conveyed by `a` operation has already been fulfilled and `a` should not do anything (to avoid double split).\n  //\n  // However, there is a difference if these are new splits or splits created by undo. These have different\n  // intentions. Also splits moving back different elements from graveyard have different intentions. They\n  // are just different operations.\n  //\n  // So we cancel split operation only if it was really identical.\n  //\n  // Also, there is additional case, where split operations aren't identical and should not be cancelled, however the\n  // default transformation is incorrect too.\n  //\n  if (a.splitPosition.isEqual(b.splitPosition)) {\n    if (!a.graveyardPosition && !b.graveyardPosition) {\n      return [new NoOperation(0)];\n    }\n\n    if (a.graveyardPosition && b.graveyardPosition && a.graveyardPosition.isEqual(b.graveyardPosition)) {\n      return [new NoOperation(0)];\n    } // Use context to know that the `a.splitPosition` should stay where it is.\n    // This happens during undo when first a merge operation moved nodes to `a.splitPosition` and now `b` operation undoes that merge.\n\n\n    if (context.abRelation == 'splitBefore') {\n      // Since split is at the same position, there are no nodes left to split.\n      a.howMany = 0; // Note: there was `if ( a.graveyardPosition )` here but it was uncovered in tests and I couldn't find any scenarios for now.\n      // That would have to be a `SplitOperation` that didn't come from undo but is transformed by operations that were undone.\n      // It could happen if `context` is enabled in collaboration.\n\n      a.graveyardPosition = a.graveyardPosition._getTransformedBySplitOperation(b);\n      return [a];\n    }\n  } // Case 2:\n  //\n  // Same node is using to split different elements. This happens in undo when previously same element was merged to\n  // two different elements. This is described in `MergeOperation` x `MergeOperation` transformation.\n  //\n  // In this case we will follow the same logic. We will assume that `insertionPosition` is same for both\n  // split operations. This might not always be true but in the real cases that were experienced it was. After all,\n  // if these splits are reverses of merge operations that were merging the same element, then the `insertionPosition`\n  // should be same for both of those splits.\n  //\n  // Again, we will decide which operation is stronger by checking if split happens in graveyard or in non-graveyard root.\n  //\n\n\n  if (a.graveyardPosition && b.graveyardPosition && a.graveyardPosition.isEqual(b.graveyardPosition)) {\n    var aInGraveyard = a.splitPosition.root.rootName == '$graveyard';\n    var bInGraveyard = b.splitPosition.root.rootName == '$graveyard'; // If `aIsWeak` it means that `a` points to graveyard while `b` doesn't. Don't move nodes then.\n\n    var aIsWeak = aInGraveyard && !bInGraveyard; // If `bIsWeak` it means that `b` points to graveyard while `a` doesn't. Force moving nodes then.\n\n    var bIsWeak = bInGraveyard && !aInGraveyard; // Force move if `b` is weak or neither operation is weak but `a` is stronger through `context.aIsStrong`.\n\n    var forceMove = bIsWeak || !aIsWeak && context.aIsStrong;\n\n    if (forceMove) {\n      var result = []; // First we need to move any nodes split by `b` back to where they were.\n      // Do it only if `b` actually moved something.\n\n      if (b.howMany) {\n        result.push(new MoveOperation(b.moveTargetPosition, b.howMany, b.splitPosition, 0));\n      } // Then we need to move nodes from `a` split position to their new element.\n      // Do it only if `a` actually should move something.\n\n\n      if (a.howMany) {\n        result.push(new MoveOperation(a.splitPosition, a.howMany, a.moveTargetPosition, 0));\n      }\n\n      return result;\n    } else {\n      return [new NoOperation(0)];\n    }\n  }\n\n  if (a.graveyardPosition) {\n    a.graveyardPosition = a.graveyardPosition._getTransformedBySplitOperation(b);\n  } // Case 3:\n  //\n  // Position where operation `b` inserted a new node after split is the same as the operation `a` split position.\n  // As in similar cases, there is ambiguity if the split should be before the new node (created by `b`) or after.\n  //\n\n\n  if (a.splitPosition.isEqual(b.insertionPosition) && context.abRelation == 'splitBefore') {\n    a.howMany++;\n    return [a];\n  } // Case 4:\n  //\n  // This is a mirror to the case 2. above.\n  //\n\n\n  if (b.splitPosition.isEqual(a.insertionPosition) && context.baRelation == 'splitBefore') {\n    var newPositionPath = b.insertionPosition.path.slice();\n    newPositionPath.push(0);\n    var newPosition = new Position(b.insertionPosition.root, newPositionPath);\n    var moveOp = new MoveOperation(a.insertionPosition, 1, newPosition, 0);\n    return [a, moveOp];\n  } // The default case.\n  //\n\n\n  if (a.splitPosition.hasSameParentAs(b.splitPosition) && a.splitPosition.offset < b.splitPosition.offset) {\n    a.howMany -= b.howMany;\n  }\n\n  a.splitPosition = a.splitPosition._getTransformedBySplitOperation(b);\n  a.insertionPosition = SplitOperation.getInsertionPosition(a.splitPosition);\n  return [a];\n}); // Checks whether `MoveOperation` `targetPosition` is inside a node from the moved range of the other `MoveOperation`.\n//\n// @private\n// @param {module:engine/model/operation/moveoperation~MoveOperation} a\n// @param {module:engine/model/operation/moveoperation~MoveOperation} b\n// @returns {Boolean}\n\nfunction _moveTargetIntoMovedRange(a, b) {\n  return a.targetPosition._getTransformedByDeletion(b.sourcePosition, b.howMany) === null;\n} // Helper function for `MoveOperation` x `MoveOperation` transformation. Converts given ranges and target position to\n// move operations and returns them.\n//\n// Ranges and target position will be transformed on-the-fly when generating operations.\n//\n// Given `ranges` should be in the order of how they were in the original transformed operation.\n//\n// Given `targetPosition` is the target position of the first range from `ranges`.\n//\n// @private\n// @param {Array.<module:engine/model/range~Range>} ranges\n// @param {module:engine/model/position~Position} targetPosition\n// @returns {Array.<module:engine/model/operation/moveoperation~MoveOperation>}\n\n\nfunction _makeMoveOperationsFromRanges(ranges, targetPosition) {\n  // At this moment we have some ranges and a target position, to which those ranges should be moved.\n  // Order in `ranges` array is the go-to order of after transformation.\n  //\n  // We are almost done. We have `ranges` and `targetPosition` to make operations from.\n  // Unfortunately, those operations may affect each other. Precisely, first operation after move\n  // may affect source range and target position of second and third operation. Same with second\n  // operation affecting third.\n  //\n  // We need to fix those source ranges and target positions once again, before converting `ranges` to operations.\n  var operations = []; // Keep in mind that nothing will be transformed if there is just one range in `ranges`.\n\n  for (var i = 0; i < ranges.length; i++) {\n    // Create new operation out of a range and target position.\n    var range = ranges[i];\n    var op = new MoveOperation(range.start, range.end.offset - range.start.offset, targetPosition, 0);\n    operations.push(op); // Transform other ranges by the generated operation.\n\n    for (var j = i + 1; j < ranges.length; j++) {\n      // All ranges in `ranges` array should be:\n      //\n      // * non-intersecting (these are part of original operation source range), and\n      // * `targetPosition` does not target into them (opposite would mean that transformed operation targets \"inside itself\").\n      //\n      // This means that the transformation will be \"clean\" and always return one result.\n      ranges[j] = ranges[j]._getTransformedByMove(op.sourcePosition, op.targetPosition, op.howMany)[0];\n    }\n\n    targetPosition = targetPosition._getTransformedByMove(op.sourcePosition, op.targetPosition, op.howMany);\n  }\n\n  return operations;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/operation/utils\n */\nimport Node from \"../node\";\nimport Text from \"../text\";\nimport TextProxy from \"../textproxy\";\nimport Range from \"../range\";\nimport DocumentFragment from \"../documentfragment\";\nimport NodeList from \"../nodelist\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Contains functions used for composing model tree by {@link module:engine/model/operation/operation~Operation operations}.\n * Those functions are built on top of {@link module:engine/model/node~Node node}, and it's child classes', APIs.\n *\n * @protected\n * @namespace utils\n */\n\n/**\n * Inserts given nodes at given position.\n *\n * @protected\n * @function module:engine/model/operation/utils~utils.insert\n * @param {module:engine/model/position~Position} position Position at which nodes should be inserted.\n * @param {module:engine/model/node~NodeSet} nodes Nodes to insert.\n * @returns {module:engine/model/range~Range} Range spanning over inserted elements.\n */\n\nexport function _insert(position, nodes) {\n  nodes = _normalizeNodes(nodes); // We have to count offset before inserting nodes because they can get merged and we would get wrong offsets.\n\n  var offset = nodes.reduce(function (sum, node) {\n    return sum + node.offsetSize;\n  }, 0);\n  var parent = position.parent; // Insertion might be in a text node, we should split it if that's the case.\n\n  _splitNodeAtPosition(position);\n\n  var index = position.index; // Insert nodes at given index. After splitting we have a proper index and insertion is between nodes,\n  // using basic `Element` API.\n\n  parent._insertChild(index, nodes); // Merge text nodes, if possible. Merging is needed only at points where inserted nodes \"touch\" \"old\" nodes.\n\n\n  _mergeNodesAtIndex(parent, index + nodes.length);\n\n  _mergeNodesAtIndex(parent, index);\n\n  return new Range(position, position.getShiftedBy(offset));\n}\n/**\n * Removed nodes in given range. Only {@link module:engine/model/range~Range#isFlat flat} ranges are accepted.\n *\n * @protected\n * @function module:engine/model/operation/utils~utils._remove\n * @param {module:engine/model/range~Range} range Range containing nodes to remove.\n * @returns {Array.<module:engine/model/node~Node>}\n */\n\nexport function _remove(range) {\n  if (!range.isFlat) {\n    /**\n     * Trying to remove a range which starts and ends in different element.\n     *\n     * @error operation-utils-remove-range-not-flat\n     */\n    throw new CKEditorError('operation-utils-remove-range-not-flat: ' + 'Trying to remove a range which starts and ends in different element.', this);\n  }\n\n  var parent = range.start.parent; // Range may be inside text nodes, we have to split them if that's the case.\n\n  _splitNodeAtPosition(range.start);\n\n  _splitNodeAtPosition(range.end); // Remove the text nodes using basic `Element` API.\n\n\n  var removed = parent._removeChildren(range.start.index, range.end.index - range.start.index); // Merge text nodes, if possible. After some nodes were removed, node before and after removed range will be\n  // touching at the position equal to the removed range beginning. We check merging possibility there.\n\n\n  _mergeNodesAtIndex(parent, range.start.index);\n\n  return removed;\n}\n/**\n * Moves nodes in given range to given target position. Only {@link module:engine/model/range~Range#isFlat flat} ranges are accepted.\n *\n * @protected\n * @function module:engine/model/operation/utils~utils.move\n * @param {module:engine/model/range~Range} sourceRange Range containing nodes to move.\n * @param {module:engine/model/position~Position} targetPosition Position to which nodes should be moved.\n * @returns {module:engine/model/range~Range} Range containing moved nodes.\n */\n\nexport function _move(sourceRange, targetPosition) {\n  if (!sourceRange.isFlat) {\n    /**\n     * Trying to move a range which starts and ends in different element.\n     *\n     * @error operation-utils-move-range-not-flat\n     */\n    throw new CKEditorError('operation-utils-move-range-not-flat: ' + 'Trying to move a range which starts and ends in different element.', this);\n  }\n\n  var nodes = _remove(sourceRange); // We have to fix `targetPosition` because model changed after nodes from `sourceRange` got removed and\n  // that change might have an impact on `targetPosition`.\n\n\n  targetPosition = targetPosition._getTransformedByDeletion(sourceRange.start, sourceRange.end.offset - sourceRange.start.offset);\n  return _insert(targetPosition, nodes);\n}\n/**\n * Sets given attribute on nodes in given range. The attributes are only set on top-level nodes of the range, not on its children.\n *\n * @protected\n * @function module:engine/model/operation/utils~utils._setAttribute\n * @param {module:engine/model/range~Range} range Range containing nodes that should have the attribute set. Must be a flat range.\n * @param {String} key Key of attribute to set.\n * @param {*} value Attribute value.\n */\n\nexport function _setAttribute(range, key, value) {\n  // Range might start or end in text nodes, so we have to split them.\n  _splitNodeAtPosition(range.start);\n\n  _splitNodeAtPosition(range.end); // Iterate over all items in the range.\n\n\n  var _iterator = _createForOfIteratorHelper(range.getItems({\n    shallow: true\n  })),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var item = _step.value;\n      // Iterator will return `TextProxy` instances but we know that those text proxies will\n      // always represent full text nodes (this is guaranteed thanks to splitting we did before).\n      // So, we can operate on those text proxies' text nodes.\n      var node = item.is('textProxy') ? item.textNode : item;\n\n      if (value !== null) {\n        node._setAttribute(key, value);\n      } else {\n        node._removeAttribute(key);\n      } // After attributes changing it may happen that some text nodes can be merged. Try to merge with previous node.\n\n\n      _mergeNodesAtIndex(node.parent, node.index);\n    } // Try to merge last changed node with it's previous sibling (not covered by the loop above).\n\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  _mergeNodesAtIndex(range.end.parent, range.end.index);\n}\n/**\n * Normalizes given object or an array of objects to an array of {@link module:engine/model/node~Node nodes}. See\n * {@link module:engine/model/node~NodeSet NodeSet} for details on how normalization is performed.\n *\n * @protected\n * @function module:engine/model/operation/utils~utils.normalizeNodes\n * @param {module:engine/model/node~NodeSet} nodes Objects to normalize.\n * @returns {Array.<module:engine/model/node~Node>} Normalized nodes.\n */\n\nexport function _normalizeNodes(nodes) {\n  var normalized = [];\n\n  if (!(nodes instanceof Array)) {\n    nodes = [nodes];\n  } // Convert instances of classes other than Node.\n\n\n  for (var i = 0; i < nodes.length; i++) {\n    if (typeof nodes[i] == 'string') {\n      normalized.push(new Text(nodes[i]));\n    } else if (nodes[i] instanceof TextProxy) {\n      normalized.push(new Text(nodes[i].data, nodes[i].getAttributes()));\n    } else if (nodes[i] instanceof DocumentFragment || nodes[i] instanceof NodeList) {\n      var _iterator2 = _createForOfIteratorHelper(nodes[i]),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var child = _step2.value;\n          normalized.push(child);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    } else if (nodes[i] instanceof Node) {\n      normalized.push(nodes[i]);\n    } // Skip unrecognized type.\n\n  } // Merge text nodes.\n\n\n  for (var _i = 1; _i < normalized.length; _i++) {\n    var node = normalized[_i];\n    var prev = normalized[_i - 1];\n\n    if (node instanceof Text && prev instanceof Text && _haveSameAttributes(node, prev)) {\n      // Doing this instead changing `prev.data` because `data` is readonly.\n      normalized.splice(_i - 1, 2, new Text(prev.data + node.data, prev.getAttributes()));\n      _i--;\n    }\n  }\n\n  return normalized;\n} // Checks if nodes before and after given index in given element are {@link module:engine/model/text~Text text nodes} and\n// merges them into one node if they have same attributes.\n//\n// Merging is done by removing two text nodes and inserting a new text node containing data from both merged text nodes.\n//\n// @private\n// @param {module:engine/model/element~Element} element Parent element of nodes to merge.\n// @param {Number} index Index between nodes to merge.\n\nfunction _mergeNodesAtIndex(element, index) {\n  var nodeBefore = element.getChild(index - 1);\n  var nodeAfter = element.getChild(index); // Check if both of those nodes are text objects with same attributes.\n\n  if (nodeBefore && nodeAfter && nodeBefore.is('text') && nodeAfter.is('text') && _haveSameAttributes(nodeBefore, nodeAfter)) {\n    // Append text of text node after index to the before one.\n    var mergedNode = new Text(nodeBefore.data + nodeAfter.data, nodeBefore.getAttributes()); // Remove separate text nodes.\n\n    element._removeChildren(index - 1, 2); // Insert merged text node.\n\n\n    element._insertChild(index - 1, mergedNode);\n  }\n} // Checks if given position is in a text node, and if so, splits the text node in two text nodes, each of them\n// containing a part of original text node.\n//\n// @private\n// @param {module:engine/model/position~Position} position Position at which node should be split.\n\n\nfunction _splitNodeAtPosition(position) {\n  var textNode = position.textNode;\n  var element = position.parent;\n\n  if (textNode) {\n    var offsetDiff = position.offset - textNode.startOffset;\n    var index = textNode.index;\n\n    element._removeChildren(index, 1);\n\n    var firstPart = new Text(textNode.data.substr(0, offsetDiff), textNode.getAttributes());\n    var secondPart = new Text(textNode.data.substr(offsetDiff), textNode.getAttributes());\n\n    element._insertChild(index, [firstPart, secondPart]);\n  }\n} // Checks whether two given nodes have same attributes.\n//\n// @private\n// @param {module:engine/model/node~Node} nodeA Node to check.\n// @param {module:engine/model/node~Node} nodeB Node to check.\n// @returns {Boolean} `true` if nodes have same attributes, `false` otherwise.\n\n\nfunction _haveSameAttributes(nodeA, nodeB) {\n  var iteratorA = nodeA.getAttributes();\n  var iteratorB = nodeB.getAttributes();\n\n  var _iterator3 = _createForOfIteratorHelper(iteratorA),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var attr = _step3.value;\n\n      if (attr[1] !== nodeB.getAttribute(attr[0])) {\n        return false;\n      }\n\n      iteratorB.next();\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  return iteratorB.next().done;\n}\n/**\n * Value that can be normalized to an array of {@link module:engine/model/node~Node nodes}.\n *\n * Non-arrays are normalized as follows:\n * * {@link module:engine/model/node~Node Node} is left as is,\n * * {@link module:engine/model/textproxy~TextProxy TextProxy} and `String` are normalized to {@link module:engine/model/text~Text Text},\n * * {@link module:engine/model/nodelist~NodeList NodeList} is normalized to an array containing all nodes that are in that node list,\n * * {@link module:engine/model/documentfragment~DocumentFragment DocumentFragment} is normalized to an array containing all of it's\n * * children.\n *\n * Arrays are processed item by item like non-array values and flattened to one array. Normalization always results in\n * a flat array of {@link module:engine/model/node~Node nodes}. Consecutive text nodes (or items normalized to text nodes) will be\n * merged if they have same attributes.\n *\n * @typedef {module:engine/model/node~Node|module:engine/model/textproxy~TextProxy|String|\n * module:engine/model/nodelist~NodeList|module:engine/model/documentfragment~DocumentFragment|Iterable}\n * module:engine/model/node~NodeSet\n */","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/position\n */\nimport TreeWalker from \"./treewalker\";\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Text from \"./text\";\nimport { last } from 'lodash-es'; // To check if component is loaded more than once.\n\nimport '@ckeditor/ckeditor5-utils/src/version';\n/**\n * Represents a position in the model tree.\n *\n * A position is represented by its {@link module:engine/model/position~Position#root} and\n * a {@link module:engine/model/position~Position#path} in that root.\n *\n * You can create position instances via its constructor or the `createPosition*()` factory methods of\n * {@link module:engine/model/model~Model} and {@link module:engine/model/writer~Writer}.\n *\n * **Note:** Position is based on offsets, not indexes. This means that a position between two text nodes\n * `foo` and `bar` has offset `3`, not `1`. See {@link module:engine/model/position~Position#path} for more information.\n *\n * Since a position in the model is represented by a {@link module:engine/model/position~Position#root position root} and\n * {@link module:engine/model/position~Position#path position path} it is possible to create positions placed in non-existing places.\n * This requirement is important for operational transformation algorithms.\n *\n * Also, {@link module:engine/model/operation/operation~Operation operations}\n * kept in the {@link module:engine/model/document~Document#history document history}\n * are storing positions (and ranges) which were correct when those operations were applied, but may not be correct\n * after the document has changed.\n *\n * When changes are applied to the model, it may also happen that {@link module:engine/model/position~Position#parent position parent}\n * will change even if position path has not changed. Keep in mind, that if a position leads to non-existing element,\n * {@link module:engine/model/position~Position#parent} and some other properties and methods will throw errors.\n *\n * In most cases, position with wrong path is caused by an error in code, but it is sometimes needed, as described above.\n */\n\nvar Position = /*#__PURE__*/function () {\n  /**\n   * Creates a position.\n   *\n   * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} root Root of the position.\n   * @param {Array.<Number>} path Position path. See {@link module:engine/model/position~Position#path}.\n   * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone'] Position stickiness.\n   * See {@link module:engine/model/position~PositionStickiness}.\n   */\n  function Position(root, path) {\n    var stickiness = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'toNone';\n\n    _classCallCheck(this, Position);\n\n    if (!root.is('element') && !root.is('documentFragment')) {\n      /**\n       * Position root is invalid.\n       *\n       * Positions can only be anchored in elements or document fragments.\n       *\n       * @error model-position-root-invalid\n       */\n      throw new CKEditorError('model-position-root-invalid: Position root invalid.', root);\n    }\n\n    if (!(path instanceof Array) || path.length === 0) {\n      /**\n       * Position path must be an array with at least one item.\n       *\n       * @error model-position-path-incorrect-format\n       * @param path\n       */\n      throw new CKEditorError('model-position-path-incorrect-format: Position path must be an array with at least one item.', root, {\n        path: path\n      });\n    } // Normalize the root and path (if element was passed).\n\n\n    path = root.getPath().concat(path);\n    root = root.root;\n    /**\n     * Root of the position path.\n     *\n     * @readonly\n     * @member {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment}\n     * module:engine/model/position~Position#root\n     */\n\n    this.root = root;\n    /**\n     * Position of the node in the tree. **Path contains offsets, not indexes.**\n     *\n     * Position can be placed before, after or in a {@link module:engine/model/node~Node node} if that node has\n     * {@link module:engine/model/node~Node#offsetSize} greater than `1`. Items in position path are\n     * {@link module:engine/model/node~Node#startOffset starting offsets} of position ancestors, starting from direct root children,\n     * down to the position offset in it's parent.\n     *\n     *\t\t ROOT\n     *\t\t  |- P            before: [ 0 ]         after: [ 1 ]\n     *\t\t  |- UL           before: [ 1 ]         after: [ 2 ]\n     *\t\t     |- LI        before: [ 1, 0 ]      after: [ 1, 1 ]\n     *\t\t     |  |- foo    before: [ 1, 0, 0 ]   after: [ 1, 0, 3 ]\n     *\t\t     |- LI        before: [ 1, 1 ]      after: [ 1, 2 ]\n     *\t\t        |- bar    before: [ 1, 1, 0 ]   after: [ 1, 1, 3 ]\n     *\n     * `foo` and `bar` are representing {@link module:engine/model/text~Text text nodes}. Since text nodes has offset size\n     * greater than `1` you can place position offset between their start and end:\n     *\n     *\t\t ROOT\n     *\t\t  |- P\n     *\t\t  |- UL\n     *\t\t     |- LI\n     *\t\t     |  |- f^o|o  ^ has path: [ 1, 0, 1 ]   | has path: [ 1, 0, 2 ]\n     *\t\t     |- LI\n     *\t\t        |- b^a|r  ^ has path: [ 1, 1, 1 ]   | has path: [ 1, 1, 2 ]\n     *\n     * @readonly\n     * @member {Array.<Number>} module:engine/model/position~Position#path\n     */\n\n    this.path = path;\n    /**\n     * Position stickiness. See {@link module:engine/model/position~PositionStickiness}.\n     *\n     * @member {module:engine/model/position~PositionStickiness} module:engine/model/position~Position#stickiness\n     */\n\n    this.stickiness = stickiness;\n  }\n  /**\n   * Offset at which this position is located in its {@link module:engine/model/position~Position#parent parent}. It is equal\n   * to the last item in position {@link module:engine/model/position~Position#path path}.\n   *\n   * @type {Number}\n   */\n\n\n  _createClass(Position, [{\n    key: \"compareWith\",\n\n    /**\n     * Checks whether this position is before or after given position.\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n     * @returns {module:engine/model/position~PositionRelation}\n     */\n    value: function compareWith(otherPosition) {\n      if (this.root != otherPosition.root) {\n        return 'different';\n      }\n\n      var result = compareArrays(this.path, otherPosition.path);\n\n      switch (result) {\n        case 'same':\n          return 'same';\n\n        case 'prefix':\n          return 'before';\n\n        case 'extension':\n          return 'after';\n\n        default:\n          return this.path[result] < otherPosition.path[result] ? 'before' : 'after';\n      }\n    }\n    /**\n     * Gets the farthest position which matches the callback using\n     * {@link module:engine/model/treewalker~TreeWalker TreeWalker}.\n     *\n     * For example:\n     *\n     * \t\tgetLastMatchingPosition( value => value.type == 'text' );\n     * \t\t// <paragraph>[]foo</paragraph> -> <paragraph>foo[]</paragraph>\n     *\n     * \t\tgetLastMatchingPosition( value => value.type == 'text', { direction: 'backward' } );\n     * \t\t// <paragraph>foo[]</paragraph> -> <paragraph>[]foo</paragraph>\n     *\n     * \t\tgetLastMatchingPosition( value => false );\n     * \t\t// Do not move the position.\n     *\n     * @param {Function} skip Callback function. Gets {@link module:engine/model/treewalker~TreeWalkerValue} and should\n     * return `true` if the value should be skipped or `false` if not.\n     * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n     *\n     * @returns {module:engine/model/position~Position} The position after the last item which matches the `skip` callback test.\n     */\n\n  }, {\n    key: \"getLastMatchingPosition\",\n    value: function getLastMatchingPosition(skip) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      options.startPosition = this;\n      var treeWalker = new TreeWalker(options);\n      treeWalker.skip(skip);\n      return treeWalker.position;\n    }\n    /**\n     * Returns a path to this position's parent. Parent path is equal to position {@link module:engine/model/position~Position#path path}\n     * but without the last item.\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @returns {Array.<Number>} Path to the parent.\n     */\n\n  }, {\n    key: \"getParentPath\",\n    value: function getParentPath() {\n      return this.path.slice(0, -1);\n    }\n    /**\n     * Returns ancestors array of this position, that is this position's parent and its ancestors.\n     *\n     * @returns {Array.<module:engine/model/item~Item>} Array with ancestors.\n     */\n\n  }, {\n    key: \"getAncestors\",\n    value: function getAncestors() {\n      if (this.parent.is('documentFragment')) {\n        return [this.parent];\n      } else {\n        return this.parent.getAncestors({\n          includeSelf: true\n        });\n      }\n    }\n    /**\n     * Returns the slice of two position {@link #path paths} which is identical. The {@link #root roots}\n     * of these two paths must be identical.\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @param {module:engine/model/position~Position} position The second position.\n     * @returns {Array.<Number>} The common path.\n     */\n\n  }, {\n    key: \"getCommonPath\",\n    value: function getCommonPath(position) {\n      if (this.root != position.root) {\n        return [];\n      } // We find on which tree-level start and end have the lowest common ancestor\n\n\n      var cmp = compareArrays(this.path, position.path); // If comparison returned string it means that arrays are same.\n\n      var diffAt = typeof cmp == 'string' ? Math.min(this.path.length, position.path.length) : cmp;\n      return this.path.slice(0, diffAt);\n    }\n    /**\n     * Returns an {@link module:engine/model/element~Element} or {@link module:engine/model/documentfragment~DocumentFragment}\n     * which is a common ancestor of both positions. The {@link #root roots} of these two positions must be identical.\n     *\n     * @param {module:engine/model/position~Position} position The second position.\n     * @returns {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"getCommonAncestor\",\n    value: function getCommonAncestor(position) {\n      var ancestorsA = this.getAncestors();\n      var ancestorsB = position.getAncestors();\n      var i = 0;\n\n      while (ancestorsA[i] == ancestorsB[i] && ancestorsA[i]) {\n        i++;\n      }\n\n      return i === 0 ? null : ancestorsA[i - 1];\n    }\n    /**\n     * Returns a new instance of `Position`, that has same {@link #parent parent} but it's offset\n     * is shifted by `shift` value (can be a negative value).\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @param {Number} shift Offset shift. Can be a negative value.\n     * @returns {module:engine/model/position~Position} Shifted position.\n     */\n\n  }, {\n    key: \"getShiftedBy\",\n    value: function getShiftedBy(shift) {\n      var shifted = this.clone();\n      var offset = shifted.offset + shift;\n      shifted.offset = offset < 0 ? 0 : offset;\n      return shifted;\n    }\n    /**\n     * Checks whether this position is after given position.\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @see module:engine/model/position~Position#isBefore\n     * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n     * @returns {Boolean} True if this position is after given position.\n     */\n\n  }, {\n    key: \"isAfter\",\n    value: function isAfter(otherPosition) {\n      return this.compareWith(otherPosition) == 'after';\n    }\n    /**\n     * Checks whether this position is before given position.\n     *\n     * **Note:** watch out when using negation of the value returned by this method, because the negation will also\n     * be `true` if positions are in different roots and you might not expect this. You should probably use\n     * `a.isAfter( b ) || a.isEqual( b )` or `!a.isBefore( p ) && a.root == b.root` in most scenarios. If your\n     * condition uses multiple `isAfter` and `isBefore` checks, build them so they do not use negated values, i.e.:\n     *\n     *\t\tif ( a.isBefore( b ) && c.isAfter( d ) ) {\n     *\t\t\t// do A.\n     *\t\t} else {\n     *\t\t\t// do B.\n     *\t\t}\n     *\n     * or, if you have only one if-branch:\n     *\n     *\t\tif ( !( a.isBefore( b ) && c.isAfter( d ) ) {\n     *\t\t\t// do B.\n     *\t\t}\n     *\n     * rather than:\n     *\n     *\t\tif ( !a.isBefore( b ) || && !c.isAfter( d ) ) {\n     *\t\t\t// do B.\n     *\t\t} else {\n     *\t\t\t// do A.\n     *\t\t}\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n     * @returns {Boolean} True if this position is before given position.\n     */\n\n  }, {\n    key: \"isBefore\",\n    value: function isBefore(otherPosition) {\n      return this.compareWith(otherPosition) == 'before';\n    }\n    /**\n     * Checks whether this position is equal to given position.\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n     * @returns {Boolean} True if positions are same.\n     */\n\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(otherPosition) {\n      return this.compareWith(otherPosition) == 'same';\n    }\n    /**\n     * Checks whether this position is touching given position. Positions touch when there are no text nodes\n     * or empty nodes in a range between them. Technically, those positions are not equal but in many cases\n     * they are very similar or even indistinguishable.\n     *\n     * @param {module:engine/model/position~Position} otherPosition Position to compare with.\n     * @returns {Boolean} True if positions touch.\n     */\n\n  }, {\n    key: \"isTouching\",\n    value: function isTouching(otherPosition) {\n      var left = null;\n      var right = null;\n      var compare = this.compareWith(otherPosition);\n\n      switch (compare) {\n        case 'same':\n          return true;\n\n        case 'before':\n          left = Position._createAt(this);\n          right = Position._createAt(otherPosition);\n          break;\n\n        case 'after':\n          left = Position._createAt(otherPosition);\n          right = Position._createAt(this);\n          break;\n\n        default:\n          return false;\n      } // Cached for optimization purposes.\n\n\n      var leftParent = left.parent;\n\n      while (left.path.length + right.path.length) {\n        if (left.isEqual(right)) {\n          return true;\n        }\n\n        if (left.path.length > right.path.length) {\n          if (left.offset !== leftParent.maxOffset) {\n            return false;\n          }\n\n          left.path = left.path.slice(0, -1);\n          leftParent = leftParent.parent;\n          left.offset++;\n        } else {\n          if (right.offset !== 0) {\n            return false;\n          }\n\n          right.path = right.path.slice(0, -1);\n        }\n      }\n    }\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\tposition.is( 'position' ); // -> true\n     *\t\tposition.is( 'model:position' ); // -> true\n     *\n     *\t\tposition.is( 'view:position' ); // -> false\n     *\t\tposition.is( 'documentSelection' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'position' || type == 'model:position';\n    }\n    /**\n     * Checks if two positions are in the same parent.\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @param {module:engine/model/position~Position} position Position to compare with.\n     * @returns {Boolean} `true` if positions have the same parent, `false` otherwise.\n     */\n\n  }, {\n    key: \"hasSameParentAs\",\n    value: function hasSameParentAs(position) {\n      if (this.root !== position.root) {\n        return false;\n      }\n\n      var thisParentPath = this.getParentPath();\n      var posParentPath = position.getParentPath();\n      return compareArrays(thisParentPath, posParentPath) == 'same';\n    }\n    /**\n     * Returns a copy of this position that is transformed by given `operation`.\n     *\n     * The new position's parameters are updated accordingly to the effect of the `operation`.\n     *\n     * For example, if `n` nodes are inserted before the position, the returned position {@link ~Position#offset} will be\n     * increased by `n`. If the position was in a merged element, it will be accordingly moved to the new element, etc.\n     *\n     * This method is safe to use it on non-existing positions (for example during operational transformation).\n     *\n     * @param {module:engine/model/operation/operation~Operation} operation Operation to transform by.\n     * @returns {module:engine/model/position~Position} Transformed position.\n     */\n\n  }, {\n    key: \"getTransformedByOperation\",\n    value: function getTransformedByOperation(operation) {\n      var result;\n\n      switch (operation.type) {\n        case 'insert':\n          result = this._getTransformedByInsertOperation(operation);\n          break;\n\n        case 'move':\n        case 'remove':\n        case 'reinsert':\n          result = this._getTransformedByMoveOperation(operation);\n          break;\n\n        case 'split':\n          result = this._getTransformedBySplitOperation(operation);\n          break;\n\n        case 'merge':\n          result = this._getTransformedByMergeOperation(operation);\n          break;\n\n        default:\n          result = Position._createAt(this);\n          break;\n      }\n\n      return result;\n    }\n    /**\n     * Returns a copy of this position transformed by an insert operation.\n     *\n     * @protected\n     * @param {module:engine/model/operation/insertoperation~InsertOperation} operation\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"_getTransformedByInsertOperation\",\n    value: function _getTransformedByInsertOperation(operation) {\n      return this._getTransformedByInsertion(operation.position, operation.howMany);\n    }\n    /**\n     * Returns a copy of this position transformed by a move operation.\n     *\n     * @protected\n     * @param {module:engine/model/operation/moveoperation~MoveOperation} operation\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"_getTransformedByMoveOperation\",\n    value: function _getTransformedByMoveOperation(operation) {\n      return this._getTransformedByMove(operation.sourcePosition, operation.targetPosition, operation.howMany);\n    }\n    /**\n     * Returns a copy of this position transformed by a split operation.\n     *\n     * @protected\n     * @param {module:engine/model/operation/splitoperation~SplitOperation} operation\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"_getTransformedBySplitOperation\",\n    value: function _getTransformedBySplitOperation(operation) {\n      var movedRange = operation.movedRange;\n      var isContained = movedRange.containsPosition(this) || movedRange.start.isEqual(this) && this.stickiness == 'toNext';\n\n      if (isContained) {\n        return this._getCombined(operation.splitPosition, operation.moveTargetPosition);\n      } else {\n        if (operation.graveyardPosition) {\n          return this._getTransformedByMove(operation.graveyardPosition, operation.insertionPosition, 1);\n        } else {\n          return this._getTransformedByInsertion(operation.insertionPosition, 1);\n        }\n      }\n    }\n    /**\n     * Returns a copy of this position transformed by merge operation.\n     *\n     * @protected\n     * @param {module:engine/model/operation/mergeoperation~MergeOperation} operation\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"_getTransformedByMergeOperation\",\n    value: function _getTransformedByMergeOperation(operation) {\n      var movedRange = operation.movedRange;\n      var isContained = movedRange.containsPosition(this) || movedRange.start.isEqual(this);\n      var pos;\n\n      if (isContained) {\n        pos = this._getCombined(operation.sourcePosition, operation.targetPosition);\n\n        if (operation.sourcePosition.isBefore(operation.targetPosition)) {\n          // Above happens during OT when the merged element is moved before the merged-to element.\n          pos = pos._getTransformedByDeletion(operation.deletionPosition, 1);\n        }\n      } else if (this.isEqual(operation.deletionPosition)) {\n        pos = Position._createAt(operation.deletionPosition);\n      } else {\n        pos = this._getTransformedByMove(operation.deletionPosition, operation.graveyardPosition, 1);\n      }\n\n      return pos;\n    }\n    /**\n     * Returns a copy of this position that is updated by removing `howMany` nodes starting from `deletePosition`.\n     * It may happen that this position is in a removed node. If that is the case, `null` is returned instead.\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} deletePosition Position before the first removed node.\n     * @param {Number} howMany How many nodes are removed.\n     * @returns {module:engine/model/position~Position|null} Transformed position or `null`.\n     */\n\n  }, {\n    key: \"_getTransformedByDeletion\",\n    value: function _getTransformedByDeletion(deletePosition, howMany) {\n      var transformed = Position._createAt(this); // This position can't be affected if deletion was in a different root.\n\n\n      if (this.root != deletePosition.root) {\n        return transformed;\n      }\n\n      if (compareArrays(deletePosition.getParentPath(), this.getParentPath()) == 'same') {\n        // If nodes are removed from the node that is pointed by this position...\n        if (deletePosition.offset < this.offset) {\n          // And are removed from before an offset of that position...\n          if (deletePosition.offset + howMany > this.offset) {\n            // Position is in removed range, it's no longer in the tree.\n            return null;\n          } else {\n            // Decrement the offset accordingly.\n            transformed.offset -= howMany;\n          }\n        }\n      } else if (compareArrays(deletePosition.getParentPath(), this.getParentPath()) == 'prefix') {\n        // If nodes are removed from a node that is on a path to this position...\n        var i = deletePosition.path.length - 1;\n\n        if (deletePosition.offset <= this.path[i]) {\n          // And are removed from before next node of that path...\n          if (deletePosition.offset + howMany > this.path[i]) {\n            // If the next node of that path is removed return null\n            // because the node containing this position got removed.\n            return null;\n          } else {\n            // Otherwise, decrement index on that path.\n            transformed.path[i] -= howMany;\n          }\n        }\n      }\n\n      return transformed;\n    }\n    /**\n     * Returns a copy of this position that is updated by inserting `howMany` nodes at `insertPosition`.\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} insertPosition Position where nodes are inserted.\n     * @param {Number} howMany How many nodes are inserted.\n     * @returns {module:engine/model/position~Position} Transformed position.\n     */\n\n  }, {\n    key: \"_getTransformedByInsertion\",\n    value: function _getTransformedByInsertion(insertPosition, howMany) {\n      var transformed = Position._createAt(this); // This position can't be affected if insertion was in a different root.\n\n\n      if (this.root != insertPosition.root) {\n        return transformed;\n      }\n\n      if (compareArrays(insertPosition.getParentPath(), this.getParentPath()) == 'same') {\n        // If nodes are inserted in the node that is pointed by this position...\n        if (insertPosition.offset < this.offset || insertPosition.offset == this.offset && this.stickiness != 'toPrevious') {\n          // And are inserted before an offset of that position...\n          // \"Push\" this positions offset.\n          transformed.offset += howMany;\n        }\n      } else if (compareArrays(insertPosition.getParentPath(), this.getParentPath()) == 'prefix') {\n        // If nodes are inserted in a node that is on a path to this position...\n        var i = insertPosition.path.length - 1;\n\n        if (insertPosition.offset <= this.path[i]) {\n          // And are inserted before next node of that path...\n          // \"Push\" the index on that path.\n          transformed.path[i] += howMany;\n        }\n      }\n\n      return transformed;\n    }\n    /**\n     * Returns a copy of this position that is updated by moving `howMany` nodes from `sourcePosition` to `targetPosition`.\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} sourcePosition Position before the first element to move.\n     * @param {module:engine/model/position~Position} targetPosition Position where moved elements will be inserted.\n     * @param {Number} howMany How many consecutive nodes to move, starting from `sourcePosition`.\n     * @returns {module:engine/model/position~Position} Transformed position.\n     */\n\n  }, {\n    key: \"_getTransformedByMove\",\n    value: function _getTransformedByMove(sourcePosition, targetPosition, howMany) {\n      // Update target position, as it could be affected by nodes removal.\n      targetPosition = targetPosition._getTransformedByDeletion(sourcePosition, howMany);\n\n      if (sourcePosition.isEqual(targetPosition)) {\n        // If `targetPosition` is equal to `sourcePosition` this isn't really any move. Just return position as it is.\n        return Position._createAt(this);\n      } // Moving a range removes nodes from their original position. We acknowledge this by proper transformation.\n\n\n      var transformed = this._getTransformedByDeletion(sourcePosition, howMany);\n\n      var isMoved = transformed === null || sourcePosition.isEqual(this) && this.stickiness == 'toNext' || sourcePosition.getShiftedBy(howMany).isEqual(this) && this.stickiness == 'toPrevious';\n\n      if (isMoved) {\n        // This position is inside moved range (or sticks to it).\n        // In this case, we calculate a combination of this position, move source position and target position.\n        return this._getCombined(sourcePosition, targetPosition);\n      } else {\n        // This position is not inside a removed range.\n        //\n        // In next step, we simply reflect inserting `howMany` nodes, which might further affect the position.\n        return transformed._getTransformedByInsertion(targetPosition, howMany);\n      }\n    }\n    /**\n     * Returns a new position that is a combination of this position and given positions.\n     *\n     * The combined position is a copy of this position transformed by moving a range starting at `source` position\n     * to the `target` position. It is expected that this position is inside the moved range.\n     *\n     * Example:\n     *\n     *\t\tlet original = model.createPositionFromPath( root, [ 2, 3, 1 ] );\n     *\t\tlet source = model.createPositionFromPath( root, [ 2, 2 ] );\n     *\t\tlet target = model.createPositionFromPath( otherRoot, [ 1, 1, 3 ] );\n     *\t\toriginal._getCombined( source, target ); // path is [ 1, 1, 4, 1 ], root is `otherRoot`\n     *\n     * Explanation:\n     *\n     * We have a position `[ 2, 3, 1 ]` and move some nodes from `[ 2, 2 ]` to `[ 1, 1, 3 ]`. The original position\n     * was inside moved nodes and now should point to the new place. The moved nodes will be after\n     * positions `[ 1, 1, 3 ]`, `[ 1, 1, 4 ]`, `[ 1, 1, 5 ]`. Since our position was in the second moved node,\n     * the transformed position will be in a sub-tree of a node at `[ 1, 1, 4 ]`. Looking at original path, we\n     * took care of `[ 2, 3 ]` part of it. Now we have to add the rest of the original path to the transformed path.\n     * Finally, the transformed position will point to `[ 1, 1, 4, 1 ]`.\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} source Beginning of the moved range.\n     * @param {module:engine/model/position~Position} target Position where the range is moved.\n     * @returns {module:engine/model/position~Position} Combined position.\n     */\n\n  }, {\n    key: \"_getCombined\",\n    value: function _getCombined(source, target) {\n      var i = source.path.length - 1; // The first part of a path to combined position is a path to the place where nodes were moved.\n\n      var combined = Position._createAt(target);\n\n      combined.stickiness = this.stickiness; // Then we have to update the rest of the path.\n      // Fix the offset because this position might be after `from` position and we have to reflect that.\n\n      combined.offset = combined.offset + this.path[i] - source.offset; // Then, add the rest of the path.\n      // If this position is at the same level as `from` position nothing will get added.\n\n      combined.path = combined.path.concat(this.path.slice(i + 1));\n      return combined;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return {\n        root: this.root.toJSON(),\n        path: Array.from(this.path),\n        stickiness: this.stickiness\n      };\n    }\n    /**\n     * Returns a new position that is equal to current position.\n     *\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"clone\",\n    value: function clone() {\n      return new this.constructor(this.root, this.path, this.stickiness);\n    }\n    /**\n     * Creates position at the given location. The location can be specified as:\n     *\n     * * a {@link module:engine/model/position~Position position},\n     * * parent element and offset (offset defaults to `0`),\n     * * parent element and `'end'` (sets position at the end of that element),\n     * * {@link module:engine/model/item~Item model item} and `'before'` or `'after'` (sets position before or after given model item).\n     *\n     * This method is a shortcut to other factory methods such as:\n     *\n     * * {@link module:engine/model/position~Position._createBefore},\n     * * {@link module:engine/model/position~Position._createAfter}.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when the\n     * first parameter is a {@link module:engine/model/item~Item model item}.\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone'] Position stickiness. Used only when the\n     * first parameter is a {@link module:engine/model/item~Item model item}.\n     * @protected\n     */\n\n  }, {\n    key: \"offset\",\n    get: function get() {\n      return last(this.path);\n    }\n    /**\n     * @param {Number} newOffset\n     */\n    ,\n    set: function set(newOffset) {\n      this.path[this.path.length - 1] = newOffset;\n    }\n    /**\n     * Parent element of this position.\n     *\n     * Keep in mind that `parent` value is calculated when the property is accessed.\n     * If {@link module:engine/model/position~Position#path position path}\n     * leads to a non-existing element, `parent` property will throw error.\n     *\n     * Also it is a good idea to cache `parent` property if it is used frequently in an algorithm (i.e. in a long loop).\n     *\n     * @readonly\n     * @type {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"parent\",\n    get: function get() {\n      var parent = this.root;\n\n      for (var i = 0; i < this.path.length - 1; i++) {\n        parent = parent.getChild(parent.offsetToIndex(this.path[i]));\n\n        if (!parent) {\n          throw new CKEditorError('model-position-path-incorrect: The position\\'s path is incorrect.', this, {\n            position: this\n          });\n        }\n      }\n\n      if (parent.is('text')) {\n        /**\n         * The position's path is incorrect. This means that a position does not point to\n         * a correct place in the tree and hence, some of its methods and getters cannot work correctly.\n         *\n         * **Note**: Unlike DOM and view positions, in the model, the\n         * {@link module:engine/model/position~Position#parent position's parent} is always an element or a document fragment.\n         * The last offset in the {@link module:engine/model/position~Position#path position's path} is the point in this element where\n         * this position points.\n         *\n         * Read more about model positions and offsets in\n         * the {@glink framework/guides/architecture/editing-engine#indexes-and-offsets Editing engine architecture guide}.\n         *\n         * @error position-incorrect-path\n         * @param {module:engine/model/position~Position} position The incorrect position.\n         */\n        throw new CKEditorError('model-position-path-incorrect: The position\\'s path is incorrect.', this, {\n          position: this\n        });\n      }\n\n      return parent;\n    }\n    /**\n     * Position {@link module:engine/model/position~Position#offset offset} converted to an index in position's parent node. It is\n     * equal to the {@link module:engine/model/node~Node#index index} of a node after this position. If position is placed\n     * in text node, position index is equal to the index of that text node.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"index\",\n    get: function get() {\n      return this.parent.offsetToIndex(this.offset);\n    }\n    /**\n     * Returns {@link module:engine/model/text~Text text node} instance in which this position is placed or `null` if this\n     * position is not in a text node.\n     *\n     * @readonly\n     * @type {module:engine/model/text~Text|null}\n     */\n\n  }, {\n    key: \"textNode\",\n    get: function get() {\n      var node = this.parent.getChild(this.index);\n      return node instanceof Text && node.startOffset < this.offset ? node : null;\n    }\n    /**\n     * Node directly after this position or `null` if this position is in text node.\n     *\n     * @readonly\n     * @type {module:engine/model/node~Node|null}\n     */\n\n  }, {\n    key: \"nodeAfter\",\n    get: function get() {\n      return this.textNode === null ? this.parent.getChild(this.index) : null;\n    }\n    /**\n     * Node directly before this position or `null` if this position is in text node.\n     *\n     * @readonly\n     * @type {Node}\n     */\n\n  }, {\n    key: \"nodeBefore\",\n    get: function get() {\n      return this.textNode === null ? this.parent.getChild(this.index - 1) : null;\n    }\n    /**\n     * Is `true` if position is at the beginning of its {@link module:engine/model/position~Position#parent parent}, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isAtStart\",\n    get: function get() {\n      return this.offset === 0;\n    }\n    /**\n     * Is `true` if position is at the end of its {@link module:engine/model/position~Position#parent parent}, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isAtEnd\",\n    get: function get() {\n      return this.offset == this.parent.maxOffset;\n    }\n  }], [{\n    key: \"_createAt\",\n    value: function _createAt(itemOrPosition, offset) {\n      var stickiness = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'toNone';\n\n      if (itemOrPosition instanceof Position) {\n        return new Position(itemOrPosition.root, itemOrPosition.path, itemOrPosition.stickiness);\n      } else {\n        var node = itemOrPosition;\n\n        if (offset == 'end') {\n          offset = node.maxOffset;\n        } else if (offset == 'before') {\n          return this._createBefore(node, stickiness);\n        } else if (offset == 'after') {\n          return this._createAfter(node, stickiness);\n        } else if (offset !== 0 && !offset) {\n          /**\n           * {@link module:engine/model/model~Model#createPositionAt `Model#createPositionAt()`}\n           * requires the offset to be specified when the first parameter is a model item.\n           *\n           * @error model-createPositionAt-offset-required\n           */\n          throw new CKEditorError('model-createPositionAt-offset-required: ' + 'Model#createPositionAt() requires the offset when the first parameter is a model item.', [this, itemOrPosition]);\n        }\n\n        if (!node.is('element') && !node.is('documentFragment')) {\n          /**\n           * Position parent have to be a model element or model document fragment.\n           *\n           * @error model-position-parent-incorrect\n           */\n          throw new CKEditorError('model-position-parent-incorrect: Position parent have to be a element or document fragment.', [this, itemOrPosition]);\n        }\n\n        var path = node.getPath();\n        path.push(offset);\n        return new this(node.root, path, stickiness);\n      }\n    }\n    /**\n     * Creates a new position, after given {@link module:engine/model/item~Item model item}.\n     *\n     * @param {module:engine/model/item~Item} item Item after which the position should be placed.\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone'] Position stickiness.\n     * @returns {module:engine/model/position~Position}\n     * @protected\n     */\n\n  }, {\n    key: \"_createAfter\",\n    value: function _createAfter(item, stickiness) {\n      if (!item.parent) {\n        /**\n         * You can not make a position after a root element.\n         *\n         * @error model-position-after-root\n         * @param {module:engine/model/item~Item} root\n         */\n        throw new CKEditorError('model-position-after-root: You cannot make a position after root.', [this, item], {\n          root: item\n        });\n      }\n\n      return this._createAt(item.parent, item.endOffset, stickiness);\n    }\n    /**\n     * Creates a new position, before the given {@link module:engine/model/item~Item model item}.\n     *\n     * @param {module:engine/model/item~Item} item Item before which the position should be placed.\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone'] Position stickiness.\n     * @returns {module:engine/model/position~Position}\n     * @protected\n     */\n\n  }, {\n    key: \"_createBefore\",\n    value: function _createBefore(item, stickiness) {\n      if (!item.parent) {\n        /**\n         * You can not make a position before a root element.\n         *\n         * @error model-position-before-root\n         * @param {module:engine/model/item~Item} root\n         */\n        throw new CKEditorError('model-position-before-root: You cannot make a position before root.', item, {\n          root: item\n        });\n      }\n\n      return this._createAt(item.parent, item.startOffset, stickiness);\n    }\n    /**\n     * Creates a `Position` instance from given plain object (i.e. parsed JSON string).\n     *\n     * @param {Object} json Plain object to be converted to `Position`.\n     * @param {module:engine/model/document~Document} doc Document object that will be position owner.\n     * @returns {module:engine/model/position~Position} `Position` instance created using given plain object.\n     */\n\n  }, {\n    key: \"fromJSON\",\n    value: function fromJSON(json, doc) {\n      if (json.root === '$graveyard') {\n        var pos = new Position(doc.graveyard, json.path);\n        pos.stickiness = json.stickiness;\n        return pos;\n      }\n\n      if (!doc.getRoot(json.root)) {\n        /**\n         * Cannot create position for document. Root with specified name does not exist.\n         *\n         * @error model-position-fromjson-no-root\n         * @param {String} rootName\n         */\n        throw new CKEditorError('model-position-fromjson-no-root: Cannot create position for document. Root with specified name does not exist.', doc, {\n          rootName: json.root\n        });\n      }\n\n      return new Position(doc.getRoot(json.root), json.path, json.stickiness);\n    }\n  }]);\n\n  return Position;\n}();\n/**\n * A flag indicating whether this position is `'before'` or `'after'` or `'same'` as given position.\n * If positions are in different roots `'different'` flag is returned.\n *\n * @typedef {String} module:engine/model/position~PositionRelation\n */\n\n/**\n * Represents how position is \"sticking\" with neighbour nodes. Used to define how position should be transformed (moved)\n * in edge cases. Possible values: `'toNone'`, `'toNext'`, `'toPrevious'`.\n *\n * Examples:\n *\n *\t\tInsert. Position is at | and nodes are inserted at the same position, marked as ^:\n *\n *\t\t- sticks to none:           <p>f^|oo</p>  ->  <p>fbar|oo</p>\n *\t\t- sticks to next node:      <p>f^|oo</p>  ->  <p>fbar|oo</p>\n *\t\t- sticks to previous node:  <p>f|^oo</p>  ->  <p>f|baroo</p>\n *\n *\n *\t\tMove. Position is at | and range [oo] is moved to position ^:\n *\n *\t\t- sticks to none:           <p>f|[oo]</p><p>b^ar</p>  ->  <p>f|</p><p>booar</p>\n *\t\t- sticks to none:           <p>f[oo]|</p><p>b^ar</p>  ->  <p>f|</p><p>booar</p>\n *\n *\t\t- sticks to next node:      <p>f|[oo]</p><p>b^ar</p>  ->  <p>f</p><p>b|ooar</p>\n *\t\t- sticks to next node:      <p>f[oo]|</p><p>b^ar</p>  ->  <p>f|</p><p>booar</p>\n *\n *\t\t- sticks to previous node:  <p>f|[oo]</p><p>b^ar</p>  ->  <p>f|</p><p>booar</p>\n *\t\t- sticks to previous node:  <p>f[oo]|</p><p>b^ar</p>  ->  <p>f</p><p>boo|ar</p>\n *\n * @typedef {String} module:engine/model/position~PositionStickiness\n */\n\n\nexport { Position as default };","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.array.sort\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/range\n */\nimport Position from \"./position\";\nimport TreeWalker from \"./treewalker\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\n/**\n * Represents a range in the model tree.\n *\n * A range is defined by its {@link module:engine/model/range~Range#start} and {@link module:engine/model/range~Range#end}\n * positions.\n *\n * You can create range instances via its constructor or the `createRange*()` factory methods of\n * {@link module:engine/model/model~Model} and {@link module:engine/model/writer~Writer}.\n */\n\nvar Range = /*#__PURE__*/function () {\n  /**\n   * Creates a range spanning from `start` position to `end` position.\n   *\n   * @param {module:engine/model/position~Position} start Start position.\n   * @param {module:engine/model/position~Position} [end] End position. If not set, range will be collapsed at `start` position.\n   */\n  function Range(start) {\n    var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    _classCallCheck(this, Range);\n\n    /**\n     * Start position.\n     *\n     * @readonly\n     * @member {module:engine/model/position~Position}\n     */\n    this.start = Position._createAt(start);\n    /**\n     * End position.\n     *\n     * @readonly\n     * @member {module:engine/model/position~Position}\n     */\n\n    this.end = end ? Position._createAt(end) : Position._createAt(start); // If the range is collapsed, treat in a similar way as a position and set its boundaries stickiness to 'toNone'.\n    // In other case, make the boundaries stick to the \"inside\" of the range.\n\n    this.start.stickiness = this.isCollapsed ? 'toNone' : 'toNext';\n    this.end.stickiness = this.isCollapsed ? 'toNone' : 'toPrevious';\n  }\n  /**\n   * Iterable interface.\n   *\n   * Iterates over all {@link module:engine/model/item~Item items} that are in this range and returns\n   * them together with additional information like length or {@link module:engine/model/position~Position positions},\n   * grouped as {@link module:engine/model/treewalker~TreeWalkerValue}.\n   * It iterates over all {@link module:engine/model/textproxy~TextProxy text contents} that are inside the range\n   * and all the {@link module:engine/model/element~Element}s that are entered into when iterating over this range.\n   *\n   * This iterator uses {@link module:engine/model/treewalker~TreeWalker} with `boundaries` set to this range\n   * and `ignoreElementEnd` option set to `true`.\n   *\n   * @returns {Iterable.<module:engine/model/treewalker~TreeWalkerValue>}\n   */\n\n\n  _createClass(Range, [{\n    key: Symbol.iterator,\n    value: /*#__PURE__*/regeneratorRuntime.mark(function value() {\n      return regeneratorRuntime.wrap(function value$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              return _context.delegateYield(new TreeWalker({\n                boundaries: this,\n                ignoreElementEnd: true\n              }), \"t0\", 1);\n\n            case 1:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, value, this);\n    })\n    /**\n     * Returns whether the range is collapsed, that is if {@link #start} and\n     * {@link #end} positions are equal.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"containsPosition\",\n\n    /**\n     * Checks whether this range contains given {@link module:engine/model/position~Position position}.\n     *\n     * @param {module:engine/model/position~Position} position Position to check.\n     * @returns {Boolean} `true` if given {@link module:engine/model/position~Position position} is contained\n     * in this range,`false` otherwise.\n     */\n    value: function containsPosition(position) {\n      return position.isAfter(this.start) && position.isBefore(this.end);\n    }\n    /**\n     * Checks whether this range contains given {@link ~Range range}.\n     *\n     * @param {module:engine/model/range~Range} otherRange Range to check.\n     * @param {Boolean} [loose=false] Whether the check is loose or strict. If the check is strict (`false`), compared range cannot\n     * start or end at the same position as this range boundaries. If the check is loose (`true`), compared range can start, end or\n     * even be equal to this range. Note that collapsed ranges are always compared in strict mode.\n     * @returns {Boolean} `true` if given {@link ~Range range} boundaries are contained by this range, `false` otherwise.\n     */\n\n  }, {\n    key: \"containsRange\",\n    value: function containsRange(otherRange) {\n      var loose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (otherRange.isCollapsed) {\n        loose = false;\n      }\n\n      var containsStart = this.containsPosition(otherRange.start) || loose && this.start.isEqual(otherRange.start);\n      var containsEnd = this.containsPosition(otherRange.end) || loose && this.end.isEqual(otherRange.end);\n      return containsStart && containsEnd;\n    }\n    /**\n     * Checks whether given {@link module:engine/model/item~Item} is inside this range.\n     *\n     * @param {module:engine/model/item~Item} item Model item to check.\n     */\n\n  }, {\n    key: \"containsItem\",\n    value: function containsItem(item) {\n      var pos = Position._createBefore(item);\n\n      return this.containsPosition(pos) || this.start.isEqual(pos);\n    }\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\trange.is( 'range' ); // -> true\n     *\t\trange.is( 'model:range' ); // -> true\n     *\n     *\t\trange.is( 'view:range' ); // -> false\n     *\t\trange.is( 'documentSelection' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'range' || type == 'model:range';\n    }\n    /**\n     * Two ranges are equal if their {@link #start} and {@link #end} positions are equal.\n     *\n     * @param {module:engine/model/range~Range} otherRange Range to compare with.\n     * @returns {Boolean} `true` if ranges are equal, `false` otherwise.\n     */\n\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(otherRange) {\n      return this.start.isEqual(otherRange.start) && this.end.isEqual(otherRange.end);\n    }\n    /**\n     * Checks and returns whether this range intersects with given range.\n     *\n     * @param {module:engine/model/range~Range} otherRange Range to compare with.\n     * @returns {Boolean} `true` if ranges intersect, `false` otherwise.\n     */\n\n  }, {\n    key: \"isIntersecting\",\n    value: function isIntersecting(otherRange) {\n      return this.start.isBefore(otherRange.end) && this.end.isAfter(otherRange.start);\n    }\n    /**\n     * Computes which part(s) of this {@link ~Range range} is not a part of given {@link ~Range range}.\n     * Returned array contains zero, one or two {@link ~Range ranges}.\n     *\n     * Examples:\n     *\n     *\t\tlet range = model.createRange(\n     *\t\t\tmodel.createPositionFromPath( root, [ 2, 7 ] ),\n     *\t\t\tmodel.createPositionFromPath( root, [ 4, 0, 1 ] )\n     *\t\t);\n     *\t\tlet otherRange = model.createRange( model.createPositionFromPath( root, [ 1 ] ), model.createPositionFromPath( root, [ 5 ] ) );\n     *\t\tlet transformed = range.getDifference( otherRange );\n     *\t\t// transformed array has no ranges because `otherRange` contains `range`\n     *\n     *\t\totherRange = model.createRange( model.createPositionFromPath( root, [ 1 ] ), model.createPositionFromPath( root, [ 3 ] ) );\n     *\t\ttransformed = range.getDifference( otherRange );\n     *\t\t// transformed array has one range: from [ 3 ] to [ 4, 0, 1 ]\n     *\n     *\t\totherRange = model.createRange( model.createPositionFromPath( root, [ 3 ] ), model.createPositionFromPath( root, [ 4 ] ) );\n     *\t\ttransformed = range.getDifference( otherRange );\n     *\t\t// transformed array has two ranges: from [ 2, 7 ] to [ 3 ] and from [ 4 ] to [ 4, 0, 1 ]\n     *\n     * @param {module:engine/model/range~Range} otherRange Range to differentiate against.\n     * @returns {Array.<module:engine/model/range~Range>} The difference between ranges.\n     */\n\n  }, {\n    key: \"getDifference\",\n    value: function getDifference(otherRange) {\n      var ranges = [];\n\n      if (this.isIntersecting(otherRange)) {\n        // Ranges intersect.\n        if (this.containsPosition(otherRange.start)) {\n          // Given range start is inside this range. This means that we have to\n          // add shrunken range - from the start to the middle of this range.\n          ranges.push(new Range(this.start, otherRange.start));\n        }\n\n        if (this.containsPosition(otherRange.end)) {\n          // Given range end is inside this range. This means that we have to\n          // add shrunken range - from the middle of this range to the end.\n          ranges.push(new Range(otherRange.end, this.end));\n        }\n      } else {\n        // Ranges do not intersect, return the original range.\n        ranges.push(new Range(this.start, this.end));\n      }\n\n      return ranges;\n    }\n    /**\n     * Returns an intersection of this {@link ~Range range} and given {@link ~Range range}.\n     * Intersection is a common part of both of those ranges. If ranges has no common part, returns `null`.\n     *\n     * Examples:\n     *\n     *\t\tlet range = model.createRange(\n     *\t\t\tmodel.createPositionFromPath( root, [ 2, 7 ] ),\n     *\t\t\tmodel.createPositionFromPath( root, [ 4, 0, 1 ] )\n     *\t\t);\n     *\t\tlet otherRange = model.createRange( model.createPositionFromPath( root, [ 1 ] ), model.createPositionFromPath( root, [ 2 ] ) );\n     *\t\tlet transformed = range.getIntersection( otherRange ); // null - ranges have no common part\n     *\n     *\t\totherRange = model.createRange( model.createPositionFromPath( root, [ 3 ] ), model.createPositionFromPath( root, [ 5 ] ) );\n     *\t\ttransformed = range.getIntersection( otherRange ); // range from [ 3 ] to [ 4, 0, 1 ]\n     *\n     * @param {module:engine/model/range~Range} otherRange Range to check for intersection.\n     * @returns {module:engine/model/range~Range|null} A common part of given ranges or `null` if ranges have no common part.\n     */\n\n  }, {\n    key: \"getIntersection\",\n    value: function getIntersection(otherRange) {\n      if (this.isIntersecting(otherRange)) {\n        // Ranges intersect, so a common range will be returned.\n        // At most, it will be same as this range.\n        var commonRangeStart = this.start;\n        var commonRangeEnd = this.end;\n\n        if (this.containsPosition(otherRange.start)) {\n          // Given range start is inside this range. This means thaNt we have to\n          // shrink common range to the given range start.\n          commonRangeStart = otherRange.start;\n        }\n\n        if (this.containsPosition(otherRange.end)) {\n          // Given range end is inside this range. This means that we have to\n          // shrink common range to the given range end.\n          commonRangeEnd = otherRange.end;\n        }\n\n        return new Range(commonRangeStart, commonRangeEnd);\n      } // Ranges do not intersect, so they do not have common part.\n\n\n      return null;\n    }\n    /**\n     * Computes and returns the smallest set of {@link #isFlat flat} ranges, that covers this range in whole.\n     *\n     * See an example of a model structure (`[` and `]` are range boundaries):\n     *\n     *\t\troot                                                            root\n     *\t\t |- element DIV                         DIV             P2              P3             DIV\n     *\t\t |   |- element H                   H        P1        f o o           b a r       H         P4\n     *\t\t |   |   |- \"fir[st\"             fir[st     lorem                               se]cond     ipsum\n     *\t\t |   |- element P1\n     *\t\t |   |   |- \"lorem\"                                              ||\n     *\t\t |- element P2                                                   ||\n     *\t\t |   |- \"foo\"                                                    VV\n     *\t\t |- element P3\n     *\t\t |   |- \"bar\"                                                   root\n     *\t\t |- element DIV                         DIV             [P2             P3]             DIV\n     *\t\t |   |- element H                   H       [P1]       f o o           b a r        H         P4\n     *\t\t |   |   |- \"se]cond\"            fir[st]    lorem                               [se]cond     ipsum\n     *\t\t |   |- element P4\n     *\t\t |   |   |- \"ipsum\"\n     *\n     * As it can be seen, letters contained in the range are: `stloremfoobarse`, spread across different parents.\n     * We are looking for minimal set of flat ranges that contains the same nodes.\n     *\n     * Minimal flat ranges for above range `( [ 0, 0, 3 ], [ 3, 0, 2 ] )` will be:\n     *\n     *\t\t( [ 0, 0, 3 ], [ 0, 0, 5 ] ) = \"st\"\n     *\t\t( [ 0, 1 ], [ 0, 2 ] ) = element P1 (\"lorem\")\n     *\t\t( [ 1 ], [ 3 ] ) = element P2, element P3 (\"foobar\")\n     *\t\t( [ 3, 0, 0 ], [ 3, 0, 2 ] ) = \"se\"\n     *\n     * **Note:** if an {@link module:engine/model/element~Element element} is not wholly contained in this range, it won't be returned\n     * in any of the returned flat ranges. See in the example how `H` elements at the beginning and at the end of the range\n     * were omitted. Only their parts that were wholly in the range were returned.\n     *\n     * **Note:** this method is not returning flat ranges that contain no nodes.\n     *\n     * @returns {Array.<module:engine/model/range~Range>} Array of flat ranges covering this range.\n     */\n\n  }, {\n    key: \"getMinimalFlatRanges\",\n    value: function getMinimalFlatRanges() {\n      var ranges = [];\n      var diffAt = this.start.getCommonPath(this.end).length;\n\n      var pos = Position._createAt(this.start);\n\n      var posParent = pos.parent; // Go up.\n\n      while (pos.path.length > diffAt + 1) {\n        var howMany = posParent.maxOffset - pos.offset;\n\n        if (howMany !== 0) {\n          ranges.push(new Range(pos, pos.getShiftedBy(howMany)));\n        }\n\n        pos.path = pos.path.slice(0, -1);\n        pos.offset++;\n        posParent = posParent.parent;\n      } // Go down.\n\n\n      while (pos.path.length <= this.end.path.length) {\n        var offset = this.end.path[pos.path.length - 1];\n\n        var _howMany = offset - pos.offset;\n\n        if (_howMany !== 0) {\n          ranges.push(new Range(pos, pos.getShiftedBy(_howMany)));\n        }\n\n        pos.offset = offset;\n        pos.path.push(0);\n      }\n\n      return ranges;\n    }\n    /**\n     * Creates a {@link module:engine/model/treewalker~TreeWalker TreeWalker} instance with this range as a boundary.\n     *\n     * For example, to iterate over all items in the entire document root:\n     *\n     *\t\t// Create a range spanning over the entire root content:\n     *\t\tconst range = editor.model.createRangeIn( editor.model.document.getRoot() );\n     *\n     *\t\t// Iterate over all items in this range:\n     *\t\tfor ( const value of range.getWalker() ) {\n     *\t\t\tconsole.log( value.item );\n     *\t\t}\n     *\n     * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n     * @param {module:engine/model/position~Position} [options.startPosition]\n     * @param {Boolean} [options.singleCharacters=false]\n     * @param {Boolean} [options.shallow=false]\n     * @param {Boolean} [options.ignoreElementEnd=false]\n     */\n\n  }, {\n    key: \"getWalker\",\n    value: function getWalker() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      options.boundaries = this;\n      return new TreeWalker(options);\n    }\n    /**\n     * Returns an iterator that iterates over all {@link module:engine/model/item~Item items} that are in this range and returns\n     * them.\n     *\n     * This method uses {@link module:engine/model/treewalker~TreeWalker} with `boundaries` set to this range and `ignoreElementEnd` option\n     * set to `true`. However it returns only {@link module:engine/model/item~Item model items},\n     * not {@link module:engine/model/treewalker~TreeWalkerValue}.\n     *\n     * You may specify additional options for the tree walker. See {@link module:engine/model/treewalker~TreeWalker} for\n     * a full list of available options.\n     *\n     * @method getItems\n     * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n     * @returns {Iterable.<module:engine/model/item~Item>}\n     */\n\n  }, {\n    key: \"getItems\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getItems() {\n      var options,\n          treeWalker,\n          _iterator,\n          _step,\n          _value,\n          _args2 = arguments;\n\n      return regeneratorRuntime.wrap(function getItems$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};\n              options.boundaries = this;\n              options.ignoreElementEnd = true;\n              treeWalker = new TreeWalker(options);\n              _iterator = _createForOfIteratorHelper(treeWalker);\n              _context2.prev = 5;\n\n              _iterator.s();\n\n            case 7:\n              if ((_step = _iterator.n()).done) {\n                _context2.next = 13;\n                break;\n              }\n\n              _value = _step.value;\n              _context2.next = 11;\n              return _value.item;\n\n            case 11:\n              _context2.next = 7;\n              break;\n\n            case 13:\n              _context2.next = 18;\n              break;\n\n            case 15:\n              _context2.prev = 15;\n              _context2.t0 = _context2[\"catch\"](5);\n\n              _iterator.e(_context2.t0);\n\n            case 18:\n              _context2.prev = 18;\n\n              _iterator.f();\n\n              return _context2.finish(18);\n\n            case 21:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, getItems, this, [[5, 15, 18, 21]]);\n    })\n    /**\n     * Returns an iterator that iterates over all {@link module:engine/model/position~Position positions} that are boundaries or\n     * contained in this range.\n     *\n     * This method uses {@link module:engine/model/treewalker~TreeWalker} with `boundaries` set to this range. However it returns only\n     * {@link module:engine/model/position~Position positions}, not {@link module:engine/model/treewalker~TreeWalkerValue}.\n     *\n     * You may specify additional options for the tree walker. See {@link module:engine/model/treewalker~TreeWalker} for\n     * a full list of available options.\n     *\n     * @param {Object} options Object with configuration options. See {@link module:engine/model/treewalker~TreeWalker}.\n     * @returns {Iterable.<module:engine/model/position~Position>}\n     */\n\n  }, {\n    key: \"getPositions\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getPositions() {\n      var options,\n          treeWalker,\n          _iterator2,\n          _step2,\n          _value2,\n          _args3 = arguments;\n\n      return regeneratorRuntime.wrap(function getPositions$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};\n              options.boundaries = this;\n              treeWalker = new TreeWalker(options);\n              _context3.next = 5;\n              return treeWalker.position;\n\n            case 5:\n              _iterator2 = _createForOfIteratorHelper(treeWalker);\n              _context3.prev = 6;\n\n              _iterator2.s();\n\n            case 8:\n              if ((_step2 = _iterator2.n()).done) {\n                _context3.next = 14;\n                break;\n              }\n\n              _value2 = _step2.value;\n              _context3.next = 12;\n              return _value2.nextPosition;\n\n            case 12:\n              _context3.next = 8;\n              break;\n\n            case 14:\n              _context3.next = 19;\n              break;\n\n            case 16:\n              _context3.prev = 16;\n              _context3.t0 = _context3[\"catch\"](6);\n\n              _iterator2.e(_context3.t0);\n\n            case 19:\n              _context3.prev = 19;\n\n              _iterator2.f();\n\n              return _context3.finish(19);\n\n            case 22:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, getPositions, this, [[6, 16, 19, 22]]);\n    })\n    /**\n     * Returns a range that is a result of transforming this range by given `operation`.\n     *\n     * **Note:** transformation may break one range into multiple ranges (for example, when a part of the range is\n     * moved to a different part of document tree). For this reason, an array is returned by this method and it\n     * may contain one or more `Range` instances.\n     *\n     * @param {module:engine/model/operation/operation~Operation} operation Operation to transform range by.\n     * @returns {Array.<module:engine/model/range~Range>} Range which is the result of transformation.\n     */\n\n  }, {\n    key: \"getTransformedByOperation\",\n    value: function getTransformedByOperation(operation) {\n      switch (operation.type) {\n        case 'insert':\n          return this._getTransformedByInsertOperation(operation);\n\n        case 'move':\n        case 'remove':\n        case 'reinsert':\n          return this._getTransformedByMoveOperation(operation);\n\n        case 'split':\n          return [this._getTransformedBySplitOperation(operation)];\n\n        case 'merge':\n          return [this._getTransformedByMergeOperation(operation)];\n      }\n\n      return [new Range(this.start, this.end)];\n    }\n    /**\n     * Returns a range that is a result of transforming this range by multiple `operations`.\n     *\n     * @see ~Range#getTransformedByOperation\n     * @param {Iterable.<module:engine/model/operation/operation~Operation>} operations Operations to transform the range by.\n     * @returns {Array.<module:engine/model/range~Range>} Range which is the result of transformation.\n     */\n\n  }, {\n    key: \"getTransformedByOperations\",\n    value: function getTransformedByOperations(operations) {\n      var ranges = [new Range(this.start, this.end)];\n\n      var _iterator3 = _createForOfIteratorHelper(operations),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var operation = _step3.value;\n\n          for (var _i = 0; _i < ranges.length; _i++) {\n            var result = ranges[_i].getTransformedByOperation(operation);\n\n            ranges.splice.apply(ranges, [_i, 1].concat(_toConsumableArray(result)));\n            _i += result.length - 1;\n          }\n        } // It may happen that a range is split into two, and then the part of second \"piece\" is moved into first\n        // \"piece\". In this case we will have incorrect third range, which should not be included in the result --\n        // because it is already included in the first \"piece\". In this loop we are looking for all such ranges that\n        // are inside other ranges and we simply remove them.\n\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      for (var i = 0; i < ranges.length; i++) {\n        var range = ranges[i];\n\n        for (var j = i + 1; j < ranges.length; j++) {\n          var next = ranges[j];\n\n          if (range.containsRange(next) || next.containsRange(range) || range.isEqual(next)) {\n            ranges.splice(j, 1);\n          }\n        }\n      }\n\n      return ranges;\n    }\n    /**\n     * Returns an {@link module:engine/model/element~Element} or {@link module:engine/model/documentfragment~DocumentFragment}\n     * which is a common ancestor of the range's both ends (in which the entire range is contained).\n     *\n     * @returns {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"getCommonAncestor\",\n    value: function getCommonAncestor() {\n      return this.start.getCommonAncestor(this.end);\n    }\n    /**\n     * Converts `Range` to plain object and returns it.\n     *\n     * @returns {Object} `Node` converted to plain object.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return {\n        start: this.start.toJSON(),\n        end: this.end.toJSON()\n      };\n    }\n    /**\n     * Returns a new range that is equal to current range.\n     *\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"clone\",\n    value: function clone() {\n      return new this.constructor(this.start, this.end);\n    }\n    /**\n     * Returns a result of transforming a copy of this range by insert operation.\n     *\n     * One or more ranges may be returned as a result of this transformation.\n     *\n     * @protected\n     * @param {module:engine/model/operation/insertoperation~InsertOperation} operation\n     * @returns {Array.<module:engine/model/range~Range>}\n     */\n\n  }, {\n    key: \"_getTransformedByInsertOperation\",\n    value: function _getTransformedByInsertOperation(operation) {\n      var spread = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      return this._getTransformedByInsertion(operation.position, operation.howMany, spread);\n    }\n    /**\n     * Returns a result of transforming a copy of this range by move operation.\n     *\n     * One or more ranges may be returned as a result of this transformation.\n     *\n     * @protected\n     * @param {module:engine/model/operation/moveoperation~MoveOperation} operation\n     * @returns {Array.<module:engine/model/range~Range>}\n     */\n\n  }, {\n    key: \"_getTransformedByMoveOperation\",\n    value: function _getTransformedByMoveOperation(operation) {\n      var spread = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var sourcePosition = operation.sourcePosition;\n      var howMany = operation.howMany;\n      var targetPosition = operation.targetPosition;\n      return this._getTransformedByMove(sourcePosition, targetPosition, howMany, spread);\n    }\n    /**\n     * Returns a result of transforming a copy of this range by split operation.\n     *\n     * Always one range is returned. The transformation is done in a way to not break the range.\n     *\n     * @protected\n     * @param {module:engine/model/operation/splitoperation~SplitOperation} operation\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"_getTransformedBySplitOperation\",\n    value: function _getTransformedBySplitOperation(operation) {\n      var start = this.start._getTransformedBySplitOperation(operation);\n\n      var end = this.end._getTransformedBySplitOperation(operation);\n\n      if (this.end.isEqual(operation.insertionPosition)) {\n        end = this.end.getShiftedBy(1);\n      } // Below may happen when range contains graveyard element used by split operation.\n\n\n      if (start.root != end.root) {\n        // End position was next to the moved graveyard element and was moved with it.\n        // Fix it by using old `end` which has proper `root`.\n        end = this.end.getShiftedBy(-1);\n      }\n\n      return new Range(start, end);\n    }\n    /**\n     * Returns a result of transforming a copy of this range by merge operation.\n     *\n     * Always one range is returned. The transformation is done in a way to not break the range.\n     *\n     * @protected\n     * @param {module:engine/model/operation/mergeoperation~MergeOperation} operation\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"_getTransformedByMergeOperation\",\n    value: function _getTransformedByMergeOperation(operation) {\n      // Special case when the marker is set on \"the closing tag\" of an element. Marker can be set like that during\n      // transformations, especially when a content of a few block elements were removed. For example:\n      //\n      // {} is the transformed range, [] is the removed range.\n      // <p>F[o{o</p><p>B}ar</p><p>Xy]z</p>\n      //\n      // <p>Fo{o</p><p>B}ar</p><p>z</p>\n      // <p>F{</p><p>B}ar</p><p>z</p>\n      // <p>F{</p>}<p>z</p>\n      // <p>F{}z</p>\n      //\n      if (this.start.isEqual(operation.targetPosition) && this.end.isEqual(operation.deletionPosition)) {\n        return new Range(this.start);\n      }\n\n      var start = this.start._getTransformedByMergeOperation(operation);\n\n      var end = this.end._getTransformedByMergeOperation(operation);\n\n      if (start.root != end.root) {\n        // This happens when the end position was next to the merged (deleted) element.\n        // Then, the end position was moved to the graveyard root. In this case we need to fix\n        // the range cause its boundaries would be in different roots.\n        end = this.end.getShiftedBy(-1);\n      }\n\n      if (start.isAfter(end)) {\n        // This happens in three following cases:\n        //\n        // Case 1: Merge operation source position is before the target position (due to some transformations, OT, etc.)\n        //         This means that start can be moved before the end of the range.\n        //\n        // Before: <p>a{a</p><p>b}b</p><p>cc</p>\n        // Merge:  <p>b}b</p><p>cca{a</p>\n        // Fix:    <p>{b}b</p><p>ccaa</p>\n        //\n        // Case 2: Range start is before merged node but not directly.\n        //         Result should include all nodes that were in the original range.\n        //\n        // Before: <p>aa</p>{<p>cc</p><p>b}b</p>\n        // Merge:  <p>aab}b</p>{<p>cc</p>\n        // Fix:    <p>aa{bb</p><p>cc</p>}\n        //\n        //         The range is expanded by an additional `b` letter but it is better than dropping the whole `cc` paragraph.\n        //\n        // Case 3: Range start is directly before merged node.\n        //         Resulting range should include only nodes from the merged element:\n        //\n        // Before: <p>aa</p>{<p>b}b</p><p>cc</p>\n        // Merge:  <p>aab}b</p>{<p>cc</p>\n        // Fix:    <p>aa{b}b</p><p>cc</p>\n        //\n        if (operation.sourcePosition.isBefore(operation.targetPosition)) {\n          // Case 1.\n          start = Position._createAt(end);\n          start.offset = 0;\n        } else {\n          if (!operation.deletionPosition.isEqual(start)) {\n            // Case 2.\n            end = operation.deletionPosition;\n          } // In both case 2 and 3 start is at the end of the merge-to element.\n\n\n          start = operation.targetPosition;\n        }\n\n        return new Range(start, end);\n      }\n\n      return new Range(start, end);\n    }\n    /**\n     * Returns an array containing one or two {@link ~Range ranges} that are a result of transforming this\n     * {@link ~Range range} by inserting `howMany` nodes at `insertPosition`. Two {@link ~Range ranges} are\n     * returned if the insertion was inside this {@link ~Range range} and `spread` is set to `true`.\n     *\n     * Examples:\n     *\n     *\t\tlet range = model.createRange(\n     *\t\t\tmodel.createPositionFromPath( root, [ 2, 7 ] ),\n     *\t\t\tmodel.createPositionFromPath( root, [ 4, 0, 1 ] )\n     *\t\t);\n     *\t\tlet transformed = range._getTransformedByInsertion( model.createPositionFromPath( root, [ 1 ] ), 2 );\n     *\t\t// transformed array has one range from [ 4, 7 ] to [ 6, 0, 1 ]\n     *\n     *\t\ttransformed = range._getTransformedByInsertion( model.createPositionFromPath( root, [ 4, 0, 0 ] ), 4 );\n     *\t\t// transformed array has one range from [ 2, 7 ] to [ 4, 0, 5 ]\n     *\n     *\t\ttransformed = range._getTransformedByInsertion( model.createPositionFromPath( root, [ 3, 2 ] ), 4 );\n     *\t\t// transformed array has one range, which is equal to original range\n     *\n     *\t\ttransformed = range._getTransformedByInsertion( model.createPositionFromPath( root, [ 3, 2 ] ), 4, true );\n     *\t\t// transformed array has two ranges: from [ 2, 7 ] to [ 3, 2 ] and from [ 3, 6 ] to [ 4, 0, 1 ]\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} insertPosition Position where nodes are inserted.\n     * @param {Number} howMany How many nodes are inserted.\n     * @param {Boolean} [spread] Flag indicating whether this {~Range range} should be spread if insertion\n     * was inside the range. Defaults to `false`.\n     * @returns {Array.<module:engine/model/range~Range>} Result of the transformation.\n     */\n\n  }, {\n    key: \"_getTransformedByInsertion\",\n    value: function _getTransformedByInsertion(insertPosition, howMany) {\n      var spread = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n      if (spread && this.containsPosition(insertPosition)) {\n        // Range has to be spread. The first part is from original start to the spread point.\n        // The other part is from spread point to the original end, but transformed by\n        // insertion to reflect insertion changes.\n        return [new Range(this.start, insertPosition), new Range(insertPosition.getShiftedBy(howMany), this.end._getTransformedByInsertion(insertPosition, howMany))];\n      } else {\n        var range = new Range(this.start, this.end);\n        range.start = range.start._getTransformedByInsertion(insertPosition, howMany);\n        range.end = range.end._getTransformedByInsertion(insertPosition, howMany);\n        return [range];\n      }\n    }\n    /**\n     * Returns an array containing {@link ~Range ranges} that are a result of transforming this\n     * {@link ~Range range} by moving `howMany` nodes from `sourcePosition` to `targetPosition`.\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} sourcePosition Position from which nodes are moved.\n     * @param {module:engine/model/position~Position} targetPosition Position to where nodes are moved.\n     * @param {Number} howMany How many nodes are moved.\n     * @param {Boolean} [spread=false] Whether the range should be spread if the move points inside the range.\n     * @returns {Array.<module:engine/model/range~Range>} Result of the transformation.\n     */\n\n  }, {\n    key: \"_getTransformedByMove\",\n    value: function _getTransformedByMove(sourcePosition, targetPosition, howMany) {\n      var spread = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n      // Special case for transforming a collapsed range. Just transform it like a position.\n      if (this.isCollapsed) {\n        var newPos = this.start._getTransformedByMove(sourcePosition, targetPosition, howMany);\n\n        return [new Range(newPos)];\n      } // Special case for transformation when a part of the range is moved towards the range.\n      //\n      // Examples:\n      //\n      // <div><p>ab</p><p>c[d</p></div><p>e]f</p> --> <div><p>ab</p></div><p>c[d</p><p>e]f</p>\n      // <p>e[f</p><div><p>a]b</p><p>cd</p></div> --> <p>e[f</p><p>a]b</p><div><p>cd</p></div>\n      //\n      // Without this special condition, the default algorithm leaves an \"artifact\" range from one of `differenceSet` parts:\n      //\n      // <div><p>ab</p><p>c[d</p></div><p>e]f</p> --> <div><p>ab</p>{</div>}<p>c[d</p><p>e]f</p>\n      //\n      // This special case is applied only if the range is to be kept together (not spread).\n\n\n      var moveRange = Range._createFromPositionAndShift(sourcePosition, howMany);\n\n      var insertPosition = targetPosition._getTransformedByDeletion(sourcePosition, howMany);\n\n      if (this.containsPosition(targetPosition) && !spread) {\n        if (moveRange.containsPosition(this.start) || moveRange.containsPosition(this.end)) {\n          var start = this.start._getTransformedByMove(sourcePosition, targetPosition, howMany);\n\n          var end = this.end._getTransformedByMove(sourcePosition, targetPosition, howMany);\n\n          return [new Range(start, end)];\n        }\n      } // Default algorithm.\n\n\n      var result;\n      var differenceSet = this.getDifference(moveRange);\n      var difference = null;\n      var common = this.getIntersection(moveRange);\n\n      if (differenceSet.length == 1) {\n        // `moveRange` and this range may intersect but may be separate.\n        difference = new Range(differenceSet[0].start._getTransformedByDeletion(sourcePosition, howMany), differenceSet[0].end._getTransformedByDeletion(sourcePosition, howMany));\n      } else if (differenceSet.length == 2) {\n        // `moveRange` is inside this range.\n        difference = new Range(this.start, this.end._getTransformedByDeletion(sourcePosition, howMany));\n      } // else, `moveRange` contains this range.\n\n\n      if (difference) {\n        result = difference._getTransformedByInsertion(insertPosition, howMany, common !== null || spread);\n      } else {\n        result = [];\n      }\n\n      if (common) {\n        var transformedCommon = new Range(common.start._getCombined(moveRange.start, insertPosition), common.end._getCombined(moveRange.start, insertPosition));\n\n        if (result.length == 2) {\n          result.splice(1, 0, transformedCommon);\n        } else {\n          result.push(transformedCommon);\n        }\n      }\n\n      return result;\n    }\n    /**\n     * Returns a copy of this range that is transformed by deletion of `howMany` nodes from `deletePosition`.\n     *\n     * If the deleted range is intersecting with the transformed range, the transformed range will be shrank.\n     *\n     * If the deleted range contains transformed range, `null` will be returned.\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} deletionPosition Position from which nodes are removed.\n     * @param {Number} howMany How many nodes are removed.\n     * @returns {module:engine/model/range~Range|null} Result of the transformation.\n     */\n\n  }, {\n    key: \"_getTransformedByDeletion\",\n    value: function _getTransformedByDeletion(deletePosition, howMany) {\n      var newStart = this.start._getTransformedByDeletion(deletePosition, howMany);\n\n      var newEnd = this.end._getTransformedByDeletion(deletePosition, howMany);\n\n      if (newStart == null && newEnd == null) {\n        return null;\n      }\n\n      if (newStart == null) {\n        newStart = deletePosition;\n      }\n\n      if (newEnd == null) {\n        newEnd = deletePosition;\n      }\n\n      return new Range(newStart, newEnd);\n    }\n    /**\n     * Creates a new range, spreading from specified {@link module:engine/model/position~Position position} to a position moved by\n     * given `shift`. If `shift` is a negative value, shifted position is treated as the beginning of the range.\n     *\n     * @protected\n     * @param {module:engine/model/position~Position} position Beginning of the range.\n     * @param {Number} shift How long the range should be.\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    get: function get() {\n      return this.start.isEqual(this.end);\n    }\n    /**\n     * Returns whether this range is flat, that is if {@link #start} position and\n     * {@link #end} position are in the same {@link module:engine/model/position~Position#parent}.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isFlat\",\n    get: function get() {\n      var startParentPath = this.start.getParentPath();\n      var endParentPath = this.end.getParentPath();\n      return compareArrays(startParentPath, endParentPath) == 'same';\n    }\n    /**\n     * Range root element.\n     *\n     * @type {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      return this.start.root;\n    }\n  }], [{\n    key: \"_createFromPositionAndShift\",\n    value: function _createFromPositionAndShift(position, shift) {\n      var start = position;\n      var end = position.getShiftedBy(shift);\n      return shift > 0 ? new this(start, end) : new this(end, start);\n    }\n    /**\n     * Creates a range inside an {@link module:engine/model/element~Element element} which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     * @protected\n     * @param {module:engine/model/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"_createIn\",\n    value: function _createIn(element) {\n      return new this(Position._createAt(element, 0), Position._createAt(element, element.maxOffset));\n    }\n    /**\n     * Creates a range that starts before given {@link module:engine/model/item~Item model item} and ends after it.\n     *\n     * @protected\n     * @param {module:engine/model/item~Item} item\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"_createOn\",\n    value: function _createOn(item) {\n      return this._createFromPositionAndShift(Position._createBefore(item), item.offsetSize);\n    }\n    /**\n     * Combines all ranges from the passed array into a one range. At least one range has to be passed.\n     * Passed ranges must not have common parts.\n     *\n     * The first range from the array is a reference range. If other ranges start or end on the exactly same position where\n     * the reference range, they get combined into one range.\n     *\n     *\t\t[  ][]  [    ][ ][             ][ ][]  [  ]  // Passed ranges, shown sorted\n     *\t\t[    ]                                       // The result of the function if the first range was a reference range.\n     *\t            [                           ]        // The result of the function if the third-to-seventh range was a reference range.\n     *\t                                           [  ]  // The result of the function if the last range was a reference range.\n     *\n     * @param {Array.<module:engine/model/range~Range>} ranges Ranges to combine.\n     * @returns {module:engine/model/range~Range} Combined range.\n     */\n\n  }, {\n    key: \"_createFromRanges\",\n    value: function _createFromRanges(ranges) {\n      if (ranges.length === 0) {\n        /**\n         * At least one range has to be passed to\n         * {@link module:engine/model/range~Range._createFromRanges `Range._createFromRanges()`}.\n         *\n         * @error range-create-from-ranges-empty-array\n         */\n        throw new CKEditorError('range-create-from-ranges-empty-array: At least one range has to be passed.', null);\n      } else if (ranges.length == 1) {\n        return ranges[0].clone();\n      } // 1. Set the first range in `ranges` array as a reference range.\n      // If we are going to return just a one range, one of the ranges need to be the reference one.\n      // Other ranges will be stuck to that range, if possible.\n\n\n      var ref = ranges[0]; // 2. Sort all the ranges so it's easier to process them.\n\n      ranges.sort(function (a, b) {\n        return a.start.isAfter(b.start) ? 1 : -1;\n      }); // 3. Check at which index the reference range is now.\n\n      var refIndex = ranges.indexOf(ref); // 4. At this moment we don't need the original range.\n      // We are going to modify the result and we need to return a new instance of Range.\n      // We have to create a copy of the reference range.\n\n      var result = new this(ref.start, ref.end); // 5. Ranges should be checked and glued starting from the range that is closest to the reference range.\n      // Since ranges are sorted, start with the range with index that is closest to reference range index.\n\n      if (refIndex > 0) {\n        for (var i = refIndex - 1; true; i++) {\n          if (ranges[i].end.isEqual(result.start)) {\n            result.start = Position._createAt(ranges[i].start);\n          } else {\n            // If ranges are not starting/ending at the same position there is no point in looking further.\n            break;\n          }\n        }\n      } // 6. Ranges should be checked and glued starting from the range that is closest to the reference range.\n      // Since ranges are sorted, start with the range with index that is closest to reference range index.\n\n\n      for (var _i2 = refIndex + 1; _i2 < ranges.length; _i2++) {\n        if (ranges[_i2].start.isEqual(result.end)) {\n          result.end = Position._createAt(ranges[_i2].end);\n        } else {\n          // If ranges are not starting/ending at the same position there is no point in looking further.\n          break;\n        }\n      }\n\n      return result;\n    }\n    /**\n     * Creates a `Range` instance from given plain object (i.e. parsed JSON string).\n     *\n     * @param {Object} json Plain object to be converted to `Range`.\n     * @param {module:engine/model/document~Document} doc Document object that will be range owner.\n     * @returns {module:engine/model/element~Element} `Range` instance created using given plain object.\n     */\n\n  }, {\n    key: \"fromJSON\",\n    value: function fromJSON(json, doc) {\n      return new this(Position.fromJSON(json.start, doc), Position.fromJSON(json.end, doc));\n    }\n  }]);\n\n  return Range;\n}();\n\nexport { Range as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/rootelement\n */\nimport Element from \"./element\";\n/**\n * Type of {@link module:engine/model/element~Element} that is a root of a model tree.\n * @extends module:engine/model/element~Element\n */\n\nvar RootElement = /*#__PURE__*/function (_Element) {\n  _inherits(RootElement, _Element);\n\n  var _super = _createSuper(RootElement);\n\n  /**\n   * Creates root element.\n   *\n   * @param {module:engine/model/document~Document} doc Document that is an owner of this root.\n   * @param {String} name Node name.\n   * @param {String} [rootName='main'] Unique root name used to identify this root\n   * element by {@link module:engine/model/document~Document}.\n   */\n  function RootElement(doc, name) {\n    var _this;\n\n    var rootName = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'main';\n\n    _classCallCheck(this, RootElement);\n\n    _this = _super.call(this, name);\n    /**\n     * Document that is an owner of this root.\n     *\n     * @private\n     * @member {module:engine/model/document~Document}\n     */\n\n    _this._doc = doc;\n    /**\n     * Unique root name used to identify this root element by {@link module:engine/model/document~Document}.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    _this.rootName = rootName;\n    return _this;\n  }\n  /**\n   * {@link module:engine/model/document~Document Document} that owns this root element.\n   *\n   * In contrary, to {@link module:engine/model/node~Node node}, root element always have a `document`.\n   *\n   * @readonly\n   * @type {module:engine/model/document~Document|null}\n   */\n\n\n  _createClass(RootElement, [{\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\trootElement.is( 'rootElement' ); // -> true\n     *\t\trootElement.is( 'element' ); // -> true\n     *\t\trootElement.is( 'node' ); // -> true\n     *\t\trootElement.is( 'model:rootElement' ); // -> true\n     *\t\trootElement.is( 'model:element' ); // -> true\n     *\t\trootElement.is( 'model:node' ); // -> true\n     *\n     *\t\trootElement.is( 'view:element' ); // -> false\n     *\t\trootElement.is( 'documentFragment' ); // -> false\n     *\n     * Assuming that the object being checked is an element, you can also check its\n     * {@link module:engine/model/element~Element#name name}:\n     *\n     *\t\trootElement.is( '$root' ); // -> true if this is a $root element\n     *\t\trootElement.is( 'rootElement', '$root' ); // -> same as above\n     *\t\ttext.is( '$root' ); -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type Type to check when `name` parameter is present.\n     * Otherwise, it acts like the `name` parameter.\n     * @param {String} [name] Element name.\n     * @returns {Boolean}\n     */\n    value: function is(type, name) {\n      var cutType = type.replace('model:', '');\n\n      if (!name) {\n        return cutType == 'rootElement' || _get(_getPrototypeOf(RootElement.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'rootElement' && name == this.name || _get(_getPrototypeOf(RootElement.prototype), \"is\", this).call(this, type, name);\n      }\n    }\n    /**\n     * Converts `RootElement` instance to `String` containing it's name.\n     *\n     * @returns {String} `RootElement` instance converted to `String`.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      return this.rootName;\n    }\n  }, {\n    key: \"document\",\n    get: function get() {\n      return this._doc;\n    }\n  }]);\n\n  return RootElement;\n}(Element);\n\nexport { RootElement as default };","import \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.string.starts-with\";\nimport \"core-js/modules/es6.string.ends-with\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"regenerator-runtime/runtime\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nvar _marked = /*#__PURE__*/regeneratorRuntime.mark(combineWalkers),\n    _marked2 = /*#__PURE__*/regeneratorRuntime.mark(convertToMinimalFlatRanges);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/schema\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport Range from \"./range\";\nimport Position from \"./position\";\nimport Element from \"./element\";\nimport Text from \"./text\";\nimport TreeWalker from \"./treewalker\";\n/**\n * The model's schema. It defines allowed and disallowed structures of nodes as well as nodes' attributes.\n * The schema is usually defined by features and based on them the editing framework and features\n * make decisions how to change and process the model.\n *\n * The instance of schema is available in {@link module:engine/model/model~Model#schema `editor.model.schema`}.\n *\n * Read more about the schema in:\n *\n * * {@glink framework/guides/architecture/editing-engine#schema \"Schema\"} section of the\n * {@glink framework/guides/architecture/editing-engine Introduction to the \"Editing engine architecture\"}.\n * * {@glink framework/guides/deep-dive/schema \"Schema\" deep dive} guide.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar Schema = /*#__PURE__*/function () {\n  /**\n   * Creates schema instance.\n   */\n  function Schema() {\n    var _this = this;\n\n    _classCallCheck(this, Schema);\n\n    this._sourceDefinitions = {};\n    /**\n     * A dictionary containing attribute properties.\n     *\n     * @private\n     * @member {Object.<String,String>}\n     */\n\n    this._attributeProperties = {};\n    this.decorate('checkChild');\n    this.decorate('checkAttribute');\n    this.on('checkAttribute', function (evt, args) {\n      args[0] = new SchemaContext(args[0]);\n    }, {\n      priority: 'highest'\n    });\n    this.on('checkChild', function (evt, args) {\n      args[0] = new SchemaContext(args[0]);\n      args[1] = _this.getDefinition(args[1]);\n    }, {\n      priority: 'highest'\n    });\n  }\n  /**\n   * Registers schema item. Can only be called once for every item name.\n   *\n   *\t\tschema.register( 'paragraph', {\n   *\t\t\tinheritAllFrom: '$block'\n   *\t\t} );\n   *\n   * @param {String} itemName\n   * @param {module:engine/model/schema~SchemaItemDefinition} definition\n   */\n\n\n  _createClass(Schema, [{\n    key: \"register\",\n    value: function register(itemName, definition) {\n      if (this._sourceDefinitions[itemName]) {\n        /**\n         * A single item cannot be registered twice in the schema.\n         *\n         * This situation may happen when:\n         *\n         * * Two or more plugins called {@link #register `register()`} with the same name. This will usually mean that\n         * there is a collision between plugins which try to use the same element in the model. Unfortunately,\n         * the only way to solve this is by modifying one of these plugins to use a unique model element name.\n         * * A single plugin was loaded twice. This happens when it is installed by npm/yarn in two versions\n         * and usually means one or more of the following issues:\n         *     * a version mismatch (two of your dependencies require two different versions of this plugin),\n         *     * incorrect imports (this plugin is somehow imported twice in a way which confuses webpack),\n         *     * mess in `node_modules/` (`rm -rf node_modules/` may help).\n         *\n         * **Note:** Check the logged `itemName` to better understand which plugin was duplicated/conflicting.\n         *\n         * @param itemName The name of the model element that is being registered twice.\n         * @error schema-cannot-register-item-twice\n         */\n        throw new CKEditorError('schema-cannot-register-item-twice: A single item cannot be registered twice in the schema.', this, {\n          itemName: itemName\n        });\n      }\n\n      this._sourceDefinitions[itemName] = [Object.assign({}, definition)];\n\n      this._clearCache();\n    }\n    /**\n     * Extends a {@link #register registered} item's definition.\n     *\n     * Extending properties such as `allowIn` will add more items to the existing properties,\n     * while redefining properties such as `isBlock` will override the previously defined ones.\n     *\n     *\t\tschema.register( 'foo', {\n     *\t\t\tallowIn: '$root',\n     *\t\t\tisBlock: true;\n     *\t\t} );\n     *\t\tschema.extend( 'foo', {\n     *\t\t\tallowIn: 'blockQuote',\n     *\t\t\tisBlock: false\n     *\t\t} );\n     *\n     *\t\tschema.getDefinition( 'foo' );\n     *\t\t//\t{\n     *\t\t//\t\tallowIn: [ '$root', 'blockQuote' ],\n     *\t\t// \t\tisBlock: false\n     *\t\t//\t}\n     *\n     * @param {String} itemName\n     * @param {module:engine/model/schema~SchemaItemDefinition} definition\n     */\n\n  }, {\n    key: \"extend\",\n    value: function extend(itemName, definition) {\n      if (!this._sourceDefinitions[itemName]) {\n        /**\n         * Cannot extend an item which was not registered yet.\n         *\n         * This error happens when a plugin tries to extend the schema definition of an item which was not\n         * {@link #register registered} yet.\n         *\n         * @param itemName The name of the model element which is being extended.\n         * @error schema-cannot-extend-missing-item\n         */\n        throw new CKEditorError('schema-cannot-extend-missing-item: Cannot extend an item which was not registered yet.', this, {\n          itemName: itemName\n        });\n      }\n\n      this._sourceDefinitions[itemName].push(Object.assign({}, definition));\n\n      this._clearCache();\n    }\n    /**\n     * Returns all registered items.\n     *\n     * @returns {Object.<String,module:engine/model/schema~SchemaCompiledItemDefinition>}\n     */\n\n  }, {\n    key: \"getDefinitions\",\n    value: function getDefinitions() {\n      if (!this._compiledDefinitions) {\n        this._compile();\n      }\n\n      return this._compiledDefinitions;\n    }\n    /**\n     * Returns a definition of the given item or `undefined` if item is not registered.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/schema~SchemaContextItem|String} item\n     * @returns {module:engine/model/schema~SchemaCompiledItemDefinition}\n     */\n\n  }, {\n    key: \"getDefinition\",\n    value: function getDefinition(item) {\n      var itemName;\n\n      if (typeof item == 'string') {\n        itemName = item;\n      } else if (item.is && (item.is('text') || item.is('textProxy'))) {\n        itemName = '$text';\n      } // Element or module:engine/model/schema~SchemaContextItem.\n      else {\n          itemName = item.name;\n        }\n\n      return this.getDefinitions()[itemName];\n    }\n    /**\n     * Returns `true` if the given item is registered in the schema.\n     *\n     *\t\tschema.isRegistered( 'paragraph' ); // -> true\n     *\t\tschema.isRegistered( editor.model.document.getRoot() ); // -> true\n     *\t\tschema.isRegistered( 'foo' ); // -> false\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/schema~SchemaContextItem|String} item\n     */\n\n  }, {\n    key: \"isRegistered\",\n    value: function isRegistered(item) {\n      return !!this.getDefinition(item);\n    }\n    /**\n     * Returns `true` if the given item is defined to be\n     * a block by {@link module:engine/model/schema~SchemaItemDefinition}'s `isBlock` property.\n     *\n     *\t\tschema.isBlock( 'paragraph' ); // -> true\n     *\t\tschema.isBlock( '$root' ); // -> false\n     *\n     *\t\tconst paragraphElement = writer.createElement( 'paragraph' );\n     *\t\tschema.isBlock( paragraphElement ); // -> true\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/schema~SchemaContextItem|String} item\n     */\n\n  }, {\n    key: \"isBlock\",\n    value: function isBlock(item) {\n      var def = this.getDefinition(item);\n      return !!(def && def.isBlock);\n    }\n    /**\n     * Returns `true` if the given item is defined to be\n     * a limit element by {@link module:engine/model/schema~SchemaItemDefinition}'s `isLimit` or `isObject` property\n     * (all objects are also limits).\n     *\n     *\t\tschema.isLimit( 'paragraph' ); // -> false\n     *\t\tschema.isLimit( '$root' ); // -> true\n     *\t\tschema.isLimit( editor.model.document.getRoot() ); // -> true\n     *\t\tschema.isLimit( 'image' ); // -> true\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/schema~SchemaContextItem|String} item\n     */\n\n  }, {\n    key: \"isLimit\",\n    value: function isLimit(item) {\n      var def = this.getDefinition(item);\n\n      if (!def) {\n        return false;\n      }\n\n      return !!(def.isLimit || def.isObject);\n    }\n    /**\n     * Returns `true` if the given item is defined to be\n     * an object element by {@link module:engine/model/schema~SchemaItemDefinition}'s `isObject` property.\n     *\n     *\t\tschema.isObject( 'paragraph' ); // -> false\n     *\t\tschema.isObject( 'image' ); // -> true\n     *\n     *\t\tconst imageElement = writer.createElement( 'image' );\n     *\t\tschema.isObject( imageElement ); // -> true\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/schema~SchemaContextItem|String} item\n     */\n\n  }, {\n    key: \"isObject\",\n    value: function isObject(item) {\n      var def = this.getDefinition(item);\n      return !!(def && def.isObject);\n    }\n    /**\n     * Returns `true` if the given item is defined to be\n     * an inline element by {@link module:engine/model/schema~SchemaItemDefinition}'s `isInline` property.\n     *\n     *\t\tschema.isInline( 'paragraph' ); // -> false\n     *\t\tschema.isInline( 'softBreak' ); // -> true\n     *\n     *\t\tconst text = writer.createText('foo' );\n     *\t\tschema.isInline( text ); // -> true\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/schema~SchemaContextItem|String} item\n     */\n\n  }, {\n    key: \"isInline\",\n    value: function isInline(item) {\n      var def = this.getDefinition(item);\n      return !!(def && def.isInline);\n    }\n    /**\n     * Checks whether the given node (`child`) can be a child of the given context.\n     *\n     *\t\tschema.checkChild( model.document.getRoot(), paragraph ); // -> false\n     *\n     *\t\tschema.register( 'paragraph', {\n     *\t\t\tallowIn: '$root'\n     *\t\t} );\n     *\t\tschema.checkChild( model.document.getRoot(), paragraph ); // -> true\n     *\n     * Note: When verifying whether the given node can be a child of the given context, the\n     * schema also verifies the entire context &mdash; from its root to its last element. Therefore, it is possible\n     * for `checkChild()` to return `false` even though the context's last element can contain the checked child.\n     * It happens if one of the context's elements does not allow its child.\n     *\n     * @fires checkChild\n     * @param {module:engine/model/schema~SchemaContextDefinition} context The context in which the child will be checked.\n     * @param {module:engine/model/node~Node|String} def The child to check.\n     */\n\n  }, {\n    key: \"checkChild\",\n    value: function checkChild(context, def) {\n      // Note: context and child are already normalized here to a SchemaContext and SchemaCompiledItemDefinition.\n      if (!def) {\n        return false;\n      }\n\n      return this._checkContextMatch(def, context);\n    }\n    /**\n     * Checks whether the given attribute can be applied in the given context (on the last\n     * item of the context).\n     *\n     *\t\tschema.checkAttribute( textNode, 'bold' ); // -> false\n     *\n     *\t\tschema.extend( '$text', {\n     *\t\t\tallowAttributes: 'bold'\n     *\t\t} );\n     *\t\tschema.checkAttribute( textNode, 'bold' ); // -> true\n     *\n     * @fires checkAttribute\n     * @param {module:engine/model/schema~SchemaContextDefinition} context The context in which the attribute will be checked.\n     * @param {String} attributeName\n     */\n\n  }, {\n    key: \"checkAttribute\",\n    value: function checkAttribute(context, attributeName) {\n      var def = this.getDefinition(context.last);\n\n      if (!def) {\n        return false;\n      }\n\n      return def.allowAttributes.includes(attributeName);\n    }\n    /**\n     * Checks whether the given element (`elementToMerge`) can be merged with the specified base element (`positionOrBaseElement`).\n     *\n     * In other words &mdash; whether `elementToMerge`'s children {@link #checkChild are allowed} in the `positionOrBaseElement`.\n     *\n     * This check ensures that elements merged with {@link module:engine/model/writer~Writer#merge `Writer#merge()`}\n     * will be valid.\n     *\n     * Instead of elements, you can pass the instance of the {@link module:engine/model/position~Position} class as the\n     * `positionOrBaseElement`. It means that the elements before and after the position will be checked whether they can be merged.\n     *\n     * @param {module:engine/model/position~Position|module:engine/model/element~Element} positionOrBaseElement The position or base\n     * element to which the `elementToMerge` will be merged.\n     * @param {module:engine/model/element~Element} elementToMerge The element to merge. Required if `positionOrBaseElement` is an element.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"checkMerge\",\n    value: function checkMerge(positionOrBaseElement) {\n      var elementToMerge = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n      if (positionOrBaseElement instanceof Position) {\n        var nodeBefore = positionOrBaseElement.nodeBefore;\n        var nodeAfter = positionOrBaseElement.nodeAfter;\n\n        if (!(nodeBefore instanceof Element)) {\n          /**\n           * The node before the merge position must be an element.\n           *\n           * @error schema-check-merge-no-element-before\n           */\n          throw new CKEditorError('schema-check-merge-no-element-before: The node before the merge position must be an element.', this);\n        }\n\n        if (!(nodeAfter instanceof Element)) {\n          /**\n           * The node after the merge position must be an element.\n           *\n           * @error schema-check-merge-no-element-after\n           */\n          throw new CKEditorError('schema-check-merge-no-element-after: The node after the merge position must be an element.', this);\n        }\n\n        return this.checkMerge(nodeBefore, nodeAfter);\n      }\n\n      var _iterator = _createForOfIteratorHelper(elementToMerge.getChildren()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var child = _step.value;\n\n          if (!this.checkChild(positionOrBaseElement, child)) {\n            return false;\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return true;\n    }\n    /**\n     * Allows registering a callback to the {@link #checkChild} method calls.\n     *\n     * Callbacks allow you to implement rules which are not otherwise possible to achieve\n     * by using the declarative API of {@link module:engine/model/schema~SchemaItemDefinition}.\n     * For example, by using this method you can disallow elements in specific contexts.\n     *\n     * This method is a shorthand for using the {@link #event:checkChild} event. For even better control,\n     * you can use that event instead.\n     *\n     * Example:\n     *\n     *\t\t// Disallow heading1 directly inside a blockQuote.\n     *\t\tschema.addChildCheck( ( context, childDefinition ) => {\n     *\t\t\tif ( context.endsWith( 'blockQuote' ) && childDefinition.name == 'heading1' ) {\n     *\t\t\t\treturn false;\n     *\t\t\t}\n     *\t\t} );\n     *\n     * Which translates to:\n     *\n     *\t\tschema.on( 'checkChild', ( evt, args ) => {\n     *\t\t\tconst context = args[ 0 ];\n     *\t\t\tconst childDefinition = args[ 1 ];\n     *\n     *\t\t\tif ( context.endsWith( 'blockQuote' ) && childDefinition && childDefinition.name == 'heading1' ) {\n     *\t\t\t\t// Prevent next listeners from being called.\n     *\t\t\t\tevt.stop();\n     *\t\t\t\t// Set the checkChild()'s return value.\n     *\t\t\t\tevt.return = false;\n     *\t\t\t}\n     *\t\t}, { priority: 'high' } );\n     *\n     * @param {Function} callback The callback to be called. It is called with two parameters:\n     * {@link module:engine/model/schema~SchemaContext} (context) instance and\n     * {@link module:engine/model/schema~SchemaCompiledItemDefinition} (child-to-check definition).\n     * The callback may return `true/false` to override `checkChild()`'s return value. If it does not return\n     * a boolean value, the default algorithm (or other callbacks) will define `checkChild()`'s return value.\n     */\n\n  }, {\n    key: \"addChildCheck\",\n    value: function addChildCheck(callback) {\n      this.on('checkChild', function (evt, _ref) {\n        var _ref2 = _slicedToArray(_ref, 2),\n            ctx = _ref2[0],\n            childDef = _ref2[1];\n\n        // checkChild() was called with a non-registered child.\n        // In 99% cases such check should return false, so not to overcomplicate all callbacks\n        // don't even execute them.\n        if (!childDef) {\n          return;\n        }\n\n        var retValue = callback(ctx, childDef);\n\n        if (typeof retValue == 'boolean') {\n          evt.stop();\n          evt.return = retValue;\n        }\n      }, {\n        priority: 'high'\n      });\n    }\n    /**\n     * Allows registering a callback to the {@link #checkAttribute} method calls.\n     *\n     * Callbacks allow you to implement rules which are not otherwise possible to achieve\n     * by using the declarative API of {@link module:engine/model/schema~SchemaItemDefinition}.\n     * For example, by using this method you can disallow attribute if node to which it is applied\n     * is contained within some other element (e.g. you want to disallow `bold` on `$text` within `heading1`).\n     *\n     * This method is a shorthand for using the {@link #event:checkAttribute} event. For even better control,\n     * you can use that event instead.\n     *\n     * Example:\n     *\n     *\t\t// Disallow bold on $text inside heading1.\n     *\t\tschema.addAttributeCheck( ( context, attributeName ) => {\n     *\t\t\tif ( context.endsWith( 'heading1 $text' ) && attributeName == 'bold' ) {\n     *\t\t\t\treturn false;\n     *\t\t\t}\n     *\t\t} );\n     *\n     * Which translates to:\n     *\n     *\t\tschema.on( 'checkAttribute', ( evt, args ) => {\n     *\t\t\tconst context = args[ 0 ];\n     *\t\t\tconst attributeName = args[ 1 ];\n     *\n     *\t\t\tif ( context.endsWith( 'heading1 $text' ) && attributeName == 'bold' ) {\n     *\t\t\t\t// Prevent next listeners from being called.\n     *\t\t\t\tevt.stop();\n     *\t\t\t\t// Set the checkAttribute()'s return value.\n     *\t\t\t\tevt.return = false;\n     *\t\t\t}\n     *\t\t}, { priority: 'high' } );\n     *\n     * @param {Function} callback The callback to be called. It is called with two parameters:\n     * {@link module:engine/model/schema~SchemaContext} (context) instance and attribute name.\n     * The callback may return `true/false` to override `checkAttribute()`'s return value. If it does not return\n     * a boolean value, the default algorithm (or other callbacks) will define `checkAttribute()`'s return value.\n     */\n\n  }, {\n    key: \"addAttributeCheck\",\n    value: function addAttributeCheck(callback) {\n      this.on('checkAttribute', function (evt, _ref3) {\n        var _ref4 = _slicedToArray(_ref3, 2),\n            ctx = _ref4[0],\n            attributeName = _ref4[1];\n\n        var retValue = callback(ctx, attributeName);\n\n        if (typeof retValue == 'boolean') {\n          evt.stop();\n          evt.return = retValue;\n        }\n      }, {\n        priority: 'high'\n      });\n    }\n    /**\n     * This method allows assigning additional metadata to the model attributes. For example,\n     * {@link module:engine/model/schema~AttributeProperties `AttributeProperties#isFormatting` property} is\n     * used to mark formatting attributes (like `bold` or `italic`).\n     *\n     *\t\t// Mark bold as a formatting attribute.\n     *\t\tschema.setAttributeProperties( 'bold', {\n     *\t\t\tisFormatting: true\n     *\t\t} );\n     *\n     *\t\t// Override code not to be considered a formatting markup.\n     *\t\tschema.setAttributeProperties( 'code', {\n     *\t\t\tisFormatting: false\n     *\t\t} );\n     *\n     * Properties are not limited to members defined in the\n     * {@link module:engine/model/schema~AttributeProperties `AttributeProperties` type} and you can also use custom properties:\n     *\n     *\t\tschema.setAttributeProperties( 'blockQuote', {\n     *\t\t\tcustomProperty: 'value'\n     *\t\t} );\n     *\n     * Subsequent calls with the same attribute will extend its custom properties:\n     *\n     *\t\tschema.setAttributeProperties( 'blockQuote', {\n     *\t\t\tone: 1\n     *\t\t} );\n     *\n     *\t\tschema.setAttributeProperties( 'blockQuote', {\n     *\t\t\ttwo: 2\n     *\t\t} );\n     *\n     *\t\tconsole.log( schema.getAttributeProperties( 'blockQuote' ) );\n     *\t\t// Logs: { one: 1, two: 2 }\n     *\n     * @param {String} attributeName A name of the attribute to receive the properties.\n     * @param {module:engine/model/schema~AttributeProperties} properties A dictionary of properties.\n     */\n\n  }, {\n    key: \"setAttributeProperties\",\n    value: function setAttributeProperties(attributeName, properties) {\n      this._attributeProperties[attributeName] = Object.assign(this.getAttributeProperties(attributeName), properties);\n    }\n    /**\n     * Returns properties associated with a given model attribute. See {@link #setAttributeProperties `setAttributeProperties()`}.\n     *\n     * @param {String} attributeName A name of the attribute.\n     * @returns {module:engine/model/schema~AttributeProperties}\n     */\n\n  }, {\n    key: \"getAttributeProperties\",\n    value: function getAttributeProperties(attributeName) {\n      return this._attributeProperties[attributeName] || {};\n    }\n    /**\n     * Returns the lowest {@link module:engine/model/schema~Schema#isLimit limit element} containing the entire\n     * selection/range/position or the root otherwise.\n     *\n     * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection|\n     * module:engine/model/range~Range|module:engine/model/position~Position} selectionOrRangeOrPosition\n     * The selection/range/position to check.\n     * @returns {module:engine/model/element~Element} The lowest limit element containing\n     * the entire `selectionOrRangeOrPosition`.\n     */\n\n  }, {\n    key: \"getLimitElement\",\n    value: function getLimitElement(selectionOrRangeOrPosition) {\n      var element;\n\n      if (selectionOrRangeOrPosition instanceof Position) {\n        element = selectionOrRangeOrPosition.parent;\n      } else {\n        var ranges = selectionOrRangeOrPosition instanceof Range ? [selectionOrRangeOrPosition] : Array.from(selectionOrRangeOrPosition.getRanges()); // Find the common ancestor for all selection's ranges.\n\n        element = ranges.reduce(function (element, range) {\n          var rangeCommonAncestor = range.getCommonAncestor();\n\n          if (!element) {\n            return rangeCommonAncestor;\n          }\n\n          return element.getCommonAncestor(rangeCommonAncestor, {\n            includeSelf: true\n          });\n        }, null);\n      }\n\n      while (!this.isLimit(element)) {\n        if (element.parent) {\n          element = element.parent;\n        } else {\n          break;\n        }\n      }\n\n      return element;\n    }\n    /**\n     * Checks whether the attribute is allowed in selection:\n     *\n     * * if the selection is not collapsed, then checks if the attribute is allowed on any of nodes in that range,\n     * * if the selection is collapsed, then checks if on the selection position there's a text with the\n     * specified attribute allowed.\n     *\n     * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n     * Selection which will be checked.\n     * @param {String} attribute The name of the attribute to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"checkAttributeInSelection\",\n    value: function checkAttributeInSelection(selection, attribute) {\n      if (selection.isCollapsed) {\n        var firstPosition = selection.getFirstPosition();\n\n        var _context = [].concat(_toConsumableArray(firstPosition.getAncestors()), [new Text('', selection.getAttributes())]); // Check whether schema allows for a text with the attribute in the selection.\n\n\n        return this.checkAttribute(_context, attribute);\n      } else {\n        var ranges = selection.getRanges(); // For all ranges, check nodes in them until you find a node that is allowed to have the attribute.\n\n        var _iterator2 = _createForOfIteratorHelper(ranges),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var range = _step2.value;\n\n            var _iterator3 = _createForOfIteratorHelper(range),\n                _step3;\n\n            try {\n              for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n                var value = _step3.value;\n\n                if (this.checkAttribute(value.item, attribute)) {\n                  // If we found a node that is allowed to have the attribute, return true.\n                  return true;\n                }\n              }\n            } catch (err) {\n              _iterator3.e(err);\n            } finally {\n              _iterator3.f();\n            }\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      } // If we haven't found such node, return false.\n\n\n      return false;\n    }\n    /**\n     * Transforms the given set of ranges into a set of ranges where the given attribute is allowed (and can be applied).\n     *\n     * @param {Array.<module:engine/model/range~Range>} ranges Ranges to be validated.\n     * @param {String} attribute The name of the attribute to check.\n     * @returns {Iterable.<module:engine/model/range~Range>} Ranges in which the attribute is allowed.\n     */\n\n  }, {\n    key: \"getValidRanges\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getValidRanges(ranges, attribute) {\n      var _iterator4, _step4, range;\n\n      return regeneratorRuntime.wrap(function getValidRanges$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              ranges = convertToMinimalFlatRanges(ranges);\n              _iterator4 = _createForOfIteratorHelper(ranges);\n              _context2.prev = 2;\n\n              _iterator4.s();\n\n            case 4:\n              if ((_step4 = _iterator4.n()).done) {\n                _context2.next = 9;\n                break;\n              }\n\n              range = _step4.value;\n              return _context2.delegateYield(this._getValidRangesForRange(range, attribute), \"t0\", 7);\n\n            case 7:\n              _context2.next = 4;\n              break;\n\n            case 9:\n              _context2.next = 14;\n              break;\n\n            case 11:\n              _context2.prev = 11;\n              _context2.t1 = _context2[\"catch\"](2);\n\n              _iterator4.e(_context2.t1);\n\n            case 14:\n              _context2.prev = 14;\n\n              _iterator4.f();\n\n              return _context2.finish(14);\n\n            case 17:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, getValidRanges, this, [[2, 11, 14, 17]]);\n    })\n    /**\n     * Basing on given `position`, finds and returns a {@link module:engine/model/range~Range range} which is\n     * nearest to that `position` and is a correct range for selection.\n     *\n     * The correct selection range might be collapsed when it is located in a position where the text node can be placed.\n     * Non-collapsed range is returned when selection can be placed around element marked as an \"object\" in\n     * the {@link module:engine/model/schema~Schema schema}.\n     *\n     * Direction of searching for the nearest correct selection range can be specified as:\n     *\n     * * `both` - searching will be performed in both ways,\n     * * `forward` - searching will be performed only forward,\n     * * `backward` - searching will be performed only backward.\n     *\n     * When valid selection range cannot be found, `null` is returned.\n     *\n     * @param {module:engine/model/position~Position} position Reference position where new selection range should be looked for.\n     * @param {'both'|'forward'|'backward'} [direction='both'] Search direction.\n     * @returns {module:engine/model/range~Range|null} Nearest selection range or `null` if one cannot be found.\n     */\n\n  }, {\n    key: \"getNearestSelectionRange\",\n    value: function getNearestSelectionRange(position) {\n      var direction = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'both';\n\n      // Return collapsed range if provided position is valid.\n      if (this.checkChild(position, '$text')) {\n        return new Range(position);\n      }\n\n      var backwardWalker, forwardWalker;\n\n      if (direction == 'both' || direction == 'backward') {\n        backwardWalker = new TreeWalker({\n          startPosition: position,\n          direction: 'backward'\n        });\n      }\n\n      if (direction == 'both' || direction == 'forward') {\n        forwardWalker = new TreeWalker({\n          startPosition: position\n        });\n      }\n\n      var _iterator5 = _createForOfIteratorHelper(combineWalkers(backwardWalker, forwardWalker)),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var data = _step5.value;\n          var type = data.walker == backwardWalker ? 'elementEnd' : 'elementStart';\n          var value = data.value;\n\n          if (value.type == type && this.isObject(value.item)) {\n            return Range._createOn(value.item);\n          }\n\n          if (this.checkChild(value.nextPosition, '$text')) {\n            return new Range(value.nextPosition);\n          }\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      return null;\n    }\n    /**\n     * Tries to find position ancestors that allows to insert given node.\n     * It starts searching from the given position and goes node by node to the top of the model tree\n     * as long as {@link module:engine/model/schema~Schema#isLimit limit element},\n     * {@link module:engine/model/schema~Schema#isObject object element} or top-most ancestor won't be reached.\n     *\n     * @params {module:engine/model/position~Position} position Position from searching will start.\n     * @params {module:engine/model/node~Node|String} node Node for which allowed parent should be found or its name.\n     * @returns {module:engine/model/element~Element|null} element Allowed parent or null if nothing was found.\n     */\n\n  }, {\n    key: \"findAllowedParent\",\n    value: function findAllowedParent(position, node) {\n      var parent = position.parent;\n\n      while (parent) {\n        if (this.checkChild(parent, node)) {\n          return parent;\n        } // Do not split limit elements.\n\n\n        if (this.isLimit(parent)) {\n          return null;\n        }\n\n        parent = parent.parent;\n      }\n\n      return null;\n    }\n    /**\n     * Removes attributes disallowed by the schema.\n     *\n     * @param {Iterable.<module:engine/model/node~Node>} nodes Nodes that will be filtered.\n     * @param {module:engine/model/writer~Writer} writer\n     */\n\n  }, {\n    key: \"removeDisallowedAttributes\",\n    value: function removeDisallowedAttributes(nodes, writer) {\n      var _iterator6 = _createForOfIteratorHelper(nodes),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var node = _step6.value;\n\n          // When node is a `Text` it has no children, so just filter it out.\n          if (node.is('text')) {\n            removeDisallowedAttributeFromNode(this, node, writer);\n          } // In a case of `Element` iterates through positions between nodes inside this element\n          // and filter out node before the current position, or position parent when position\n          // is at start of an element. Using positions prevent from omitting merged nodes\n          // see https://github.com/ckeditor/ckeditor5-engine/issues/1789.\n          else {\n              var rangeInNode = Range._createIn(node);\n\n              var positionsInRange = rangeInNode.getPositions();\n\n              var _iterator7 = _createForOfIteratorHelper(positionsInRange),\n                  _step7;\n\n              try {\n                for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n                  var position = _step7.value;\n                  var item = position.nodeBefore || position.parent;\n                  removeDisallowedAttributeFromNode(this, item, writer);\n                }\n              } catch (err) {\n                _iterator7.e(err);\n              } finally {\n                _iterator7.f();\n              }\n            }\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n    }\n    /**\n     * Creates an instance of the schema context.\n     *\n     * @param {module:engine/model/schema~SchemaContextDefinition} context\n     * @returns {module:engine/model/schema~SchemaContext}\n     */\n\n  }, {\n    key: \"createContext\",\n    value: function createContext(context) {\n      return new SchemaContext(context);\n    }\n    /**\n     * @private\n     */\n\n  }, {\n    key: \"_clearCache\",\n    value: function _clearCache() {\n      this._compiledDefinitions = null;\n    }\n    /**\n     * @private\n     */\n\n  }, {\n    key: \"_compile\",\n    value: function _compile() {\n      var compiledDefinitions = {};\n      var sourceRules = this._sourceDefinitions;\n      var itemNames = Object.keys(sourceRules);\n\n      for (var _i = 0, _itemNames = itemNames; _i < _itemNames.length; _i++) {\n        var itemName = _itemNames[_i];\n        compiledDefinitions[itemName] = compileBaseItemRule(sourceRules[itemName], itemName);\n      }\n\n      for (var _i2 = 0, _itemNames2 = itemNames; _i2 < _itemNames2.length; _i2++) {\n        var _itemName = _itemNames2[_i2];\n        compileAllowContentOf(compiledDefinitions, _itemName);\n      }\n\n      for (var _i3 = 0, _itemNames3 = itemNames; _i3 < _itemNames3.length; _i3++) {\n        var _itemName2 = _itemNames3[_i3];\n        compileAllowWhere(compiledDefinitions, _itemName2);\n      }\n\n      for (var _i4 = 0, _itemNames4 = itemNames; _i4 < _itemNames4.length; _i4++) {\n        var _itemName3 = _itemNames4[_i4];\n        compileAllowAttributesOf(compiledDefinitions, _itemName3);\n        compileInheritPropertiesFrom(compiledDefinitions, _itemName3);\n      }\n\n      for (var _i5 = 0, _itemNames5 = itemNames; _i5 < _itemNames5.length; _i5++) {\n        var _itemName4 = _itemNames5[_i5];\n        cleanUpAllowIn(compiledDefinitions, _itemName4);\n        cleanUpAllowAttributes(compiledDefinitions, _itemName4);\n      }\n\n      this._compiledDefinitions = compiledDefinitions;\n    }\n    /**\n     * @private\n     * @param {module:engine/model/schema~SchemaCompiledItemDefinition} def\n     * @param {module:engine/model/schema~SchemaContext} context\n     * @param {Number} contextItemIndex\n     */\n\n  }, {\n    key: \"_checkContextMatch\",\n    value: function _checkContextMatch(def, context) {\n      var contextItemIndex = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : context.length - 1;\n      var contextItem = context.getItem(contextItemIndex);\n\n      if (def.allowIn.includes(contextItem.name)) {\n        if (contextItemIndex == 0) {\n          return true;\n        } else {\n          var parentRule = this.getDefinition(contextItem);\n          return this._checkContextMatch(parentRule, context, contextItemIndex - 1);\n        }\n      } else {\n        return false;\n      }\n    }\n    /**\n     * Takes a flat range and an attribute name. Traverses the range recursively and deeply to find and return all ranges\n     * inside the given range on which the attribute can be applied.\n     *\n     * This is a helper function for {@link ~Schema#getValidRanges}.\n     *\n     * @private\n     * @param {module:engine/model/range~Range} range Range to process.\n     * @param {String} attribute The name of the attribute to check.\n     * @returns {Iterable.<module:engine/model/range~Range>} Ranges in which the attribute is allowed.\n     */\n\n  }, {\n    key: \"_getValidRangesForRange\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function _getValidRangesForRange(range, attribute) {\n      var start, end, _iterator8, _step8, item;\n\n      return regeneratorRuntime.wrap(function _getValidRangesForRange$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              start = range.start;\n              end = range.start;\n              _iterator8 = _createForOfIteratorHelper(range.getItems({\n                shallow: true\n              }));\n              _context3.prev = 3;\n\n              _iterator8.s();\n\n            case 5:\n              if ((_step8 = _iterator8.n()).done) {\n                _context3.next = 17;\n                break;\n              }\n\n              item = _step8.value;\n\n              if (!item.is('element')) {\n                _context3.next = 9;\n                break;\n              }\n\n              return _context3.delegateYield(this._getValidRangesForRange(Range._createIn(item), attribute), \"t0\", 9);\n\n            case 9:\n              if (this.checkAttribute(item, attribute)) {\n                _context3.next = 14;\n                break;\n              }\n\n              if (start.isEqual(end)) {\n                _context3.next = 13;\n                break;\n              }\n\n              _context3.next = 13;\n              return new Range(start, end);\n\n            case 13:\n              start = Position._createAfter(item);\n\n            case 14:\n              end = Position._createAfter(item);\n\n            case 15:\n              _context3.next = 5;\n              break;\n\n            case 17:\n              _context3.next = 22;\n              break;\n\n            case 19:\n              _context3.prev = 19;\n              _context3.t1 = _context3[\"catch\"](3);\n\n              _iterator8.e(_context3.t1);\n\n            case 22:\n              _context3.prev = 22;\n\n              _iterator8.f();\n\n              return _context3.finish(22);\n\n            case 25:\n              if (start.isEqual(end)) {\n                _context3.next = 28;\n                break;\n              }\n\n              _context3.next = 28;\n              return new Range(start, end);\n\n            case 28:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, _getValidRangesForRange, this, [[3, 19, 22, 25]]);\n    })\n  }]);\n\n  return Schema;\n}();\n\nexport { Schema as default };\nmix(Schema, ObservableMixin);\n/**\n * Event fired when the {@link #checkChild} method is called. It allows plugging in\n * additional behavior – e.g. implementing rules which cannot be defined using the declarative\n * {@link module:engine/model/schema~SchemaItemDefinition} interface.\n *\n * **Note:** The {@link #addChildCheck} method is a more handy way to register callbacks. Internally,\n * it registers a listener to this event but comes with a simpler API and it is the recommended choice\n * in most of the cases.\n *\n * The {@link #checkChild} method fires an event because it is\n * {@link module:utils/observablemixin~ObservableMixin#decorate decorated} with it. Thanks to that you can\n * use this event in a various way, but the most important use case is overriding standard behaviour of the\n * `checkChild()` method. Let's see a typical listener template:\n *\n *\t\tschema.on( 'checkChild', ( evt, args ) => {\n *\t\t\tconst context = args[ 0 ];\n *\t\t\tconst childDefinition = args[ 1 ];\n *\t\t}, { priority: 'high' } );\n *\n * The listener is added with a `high` priority to be executed before the default method is really called. The `args` callback\n * parameter contains arguments passed to `checkChild( context, child )`. However, the `context` parameter is already\n * normalized to a {@link module:engine/model/schema~SchemaContext} instance and `child` to a\n * {@link module:engine/model/schema~SchemaCompiledItemDefinition} instance, so you don't have to worry about\n * the various ways how `context` and `child` may be passed to `checkChild()`.\n *\n * **Note:** `childDefinition` may be `undefined` if `checkChild()` was called with a non-registered element.\n *\n * So, in order to implement a rule \"disallow `heading1` in `blockQuote`\" you can add such a listener:\n *\n *\t\tschema.on( 'checkChild', ( evt, args ) => {\n *\t\t\tconst context = args[ 0 ];\n *\t\t\tconst childDefinition = args[ 1 ];\n *\n *\t\t\tif ( context.endsWith( 'blockQuote' ) && childDefinition && childDefinition.name == 'heading1' ) {\n *\t\t\t\t// Prevent next listeners from being called.\n *\t\t\t\tevt.stop();\n *\t\t\t\t// Set the checkChild()'s return value.\n *\t\t\t\tevt.return = false;\n *\t\t\t}\n *\t\t}, { priority: 'high' } );\n *\n * Allowing elements in specific contexts will be a far less common use case, because it's normally handled by\n * `allowIn` rule from {@link module:engine/model/schema~SchemaItemDefinition} but if you have a complex scenario\n * where `listItem` should be allowed only in element `foo` which must be in element `bar`, then this would be the way:\n *\n *\t\tschema.on( 'checkChild', ( evt, args ) => {\n *\t\t\tconst context = args[ 0 ];\n *\t\t\tconst childDefinition = args[ 1 ];\n *\n *\t\t\tif ( context.endsWith( 'bar foo' ) && childDefinition.name == 'listItem' ) {\n *\t\t\t\t// Prevent next listeners from being called.\n *\t\t\t\tevt.stop();\n *\t\t\t\t// Set the checkChild()'s return value.\n *\t\t\t\tevt.return = true;\n *\t\t\t}\n *\t\t}, { priority: 'high' } );\n *\n * @event checkChild\n * @param {Array} args The `checkChild()`'s arguments.\n */\n\n/**\n * Event fired when the {@link #checkAttribute} method is called. It allows plugging in\n * additional behavior – e.g. implementing rules which cannot be defined using the declarative\n * {@link module:engine/model/schema~SchemaItemDefinition} interface.\n *\n * **Note:** The {@link #addAttributeCheck} method is a more handy way to register callbacks. Internally,\n * it registers a listener to this event but comes with a simpler API and it is the recommended choice\n * in most of the cases.\n *\n * The {@link #checkAttribute} method fires an event because it's\n * {@link module:utils/observablemixin~ObservableMixin#decorate decorated} with it. Thanks to that you can\n * use this event in a various way, but the most important use case is overriding standard behaviour of the\n * `checkAttribute()` method. Let's see a typical listener template:\n *\n *\t\tschema.on( 'checkAttribute', ( evt, args ) => {\n *\t\t\tconst context = args[ 0 ];\n *\t\t\tconst attributeName = args[ 1 ];\n *\t\t}, { priority: 'high' } );\n *\n * The listener is added with a `high` priority to be executed before the default method is really called. The `args` callback\n * parameter contains arguments passed to `checkAttribute( context, attributeName )`. However, the `context` parameter is already\n * normalized to a {@link module:engine/model/schema~SchemaContext} instance, so you don't have to worry about\n * the various ways how `context` may be passed to `checkAttribute()`.\n *\n * So, in order to implement a rule \"disallow `bold` in a text which is in a `heading1` you can add such a listener:\n *\n *\t\tschema.on( 'checkAttribute', ( evt, args ) => {\n *\t\t\tconst context = args[ 0 ];\n *\t\t\tconst atributeName = args[ 1 ];\n *\n *\t\t\tif ( context.endsWith( 'heading1 $text' ) && attributeName == 'bold' ) {\n *\t\t\t\t// Prevent next listeners from being called.\n *\t\t\t\tevt.stop();\n *\t\t\t\t// Set the checkAttribute()'s return value.\n *\t\t\t\tevt.return = false;\n *\t\t\t}\n *\t\t}, { priority: 'high' } );\n *\n * Allowing attributes in specific contexts will be a far less common use case, because it's normally handled by\n * `allowAttributes` rule from {@link module:engine/model/schema~SchemaItemDefinition} but if you have a complex scenario\n * where `bold` should be allowed only in element `foo` which must be in element `bar`, then this would be the way:\n *\n *\t\tschema.on( 'checkAttribute', ( evt, args ) => {\n *\t\t\tconst context = args[ 0 ];\n *\t\t\tconst atributeName = args[ 1 ];\n *\n *\t\t\tif ( context.endsWith( 'bar foo $text' ) && attributeName == 'bold' ) {\n *\t\t\t\t// Prevent next listeners from being called.\n *\t\t\t\tevt.stop();\n *\t\t\t\t// Set the checkAttribute()'s return value.\n *\t\t\t\tevt.return = true;\n *\t\t\t}\n *\t\t}, { priority: 'high' } );\n *\n * @event checkAttribute\n * @param {Array} args The `checkAttribute()`'s arguments.\n */\n\n/**\n * A definition of a {@link module:engine/model/schema~Schema schema} item.\n *\n * You can define the following rules:\n *\n * * `allowIn` &ndash; A string or an array of strings. Defines in which other items this item will be allowed.\n * * `allowAttributes` &ndash; A string or an array of strings. Defines allowed attributes of the given item.\n * * `allowContentOf` &ndash; A string or an array of strings. Inherits \"allowed children\" from other items.\n * * `allowWhere` &ndash; A string or an array of strings. Inherits \"allowed in\" from other items.\n * * `allowAttributesOf` &ndash; A string or an array of strings. Inherits attributes from other items.\n * * `inheritTypesFrom` &ndash; A string or an array of strings. Inherits `is*` properties of other items.\n * * `inheritAllFrom` &ndash; A string. A shorthand for `allowContentOf`, `allowWhere`, `allowAttributesOf`, `inheritTypesFrom`.\n * * Additionally, you can define the following `is*` properties: `isBlock`, `isLimit`, `isObject`, `isInline`. Read about them below.\n *\n * # The is* properties\n *\n * There are 3 commonly used `is*` properties. Their role is to assign additional semantics to schema items.\n * You can define more properties but you will also need to implement support for them in the existing editor features.\n *\n * * `isBlock` &ndash; Whether this item is paragraph-like. Generally speaking, content is usually made out of blocks\n * like paragraphs, list items, images, headings, etc. All these elements are marked as blocks. A block\n * should not allow another block inside. Note: There is also the `$block` generic item which has `isBlock` set to `true`.\n * Most block type items will inherit from `$block` (through `inheritAllFrom`).\n * * `isLimit` &ndash; It can be understood as whether this element should not be split by <kbd>Enter</kbd>.\n * Examples of limit elements: `$root`, table cell, image caption, etc. In other words, all actions that happen inside\n * a limit element are limited to its content. **Note:** All objects (`isObject`) are treated as limit elements, too.\n * * `isObject` &ndash; Whether an item is \"self-contained\" and should be treated as a whole. Examples of object elements:\n * `image`, `table`, `video`, etc. **Note:** An object is also a limit, so\n * {@link module:engine/model/schema~Schema#isLimit `isLimit()`} returns `true` for object elements automatically.\n * * `isInline` &ndash; Whether an item is \"text-like\" and should be treated as an inline node. Examples of inline elements:\n * `$text`, `softBreak` (`<br>`), etc.\n *\n * # Generic items\n *\n * There are three basic generic items: `$root`, `$block` and `$text`.\n * They are defined as follows:\n *\n *\t\tthis.schema.register( '$root', {\n *\t\t\tisLimit: true\n *\t\t} );\n *\t\tthis.schema.register( '$block', {\n *\t\t\tallowIn: '$root',\n *\t\t\tisBlock: true\n *\t\t} );\n *\t\tthis.schema.register( '$text', {\n *\t\t\tallowIn: '$block',\n *\t\t\tisInline: true\n *\t\t} );\n *\n * They reflect typical editor content that is contained within one root, consists of several blocks\n * (paragraphs, lists items, headings, images) which, in turn, may contain text inside.\n *\n * By inheriting from the generic items you can define new items which will get extended by other editor features.\n * Read more about generic types in the {@glink framework/guides/deep-dive/schema Defining schema} guide.\n *\n * # Example definitions\n *\n * Allow `paragraph` in roots and block quotes:\n *\n *\t\tschema.register( 'paragraph', {\n *\t\t\tallowIn: [ '$root', 'blockQuote' ],\n *\t\t\tisBlock: true\n *\t\t} );\n *\n * Allow `paragraph` everywhere where `$block` is allowed (i.e. in `$root`):\n *\n *\t\tschema.register( 'paragraph', {\n *\t\t\tallowWhere: '$block',\n *\t\t\tisBlock: true\n *\t\t} );\n *\n * Make `image` a block object, which is allowed everywhere where `$block` is.\n * Also, allow `src` and `alt` attributes in it:\n *\n *\t\tschema.register( 'image', {\n *\t\t\tallowWhere: '$block',\n *\t\t\tallowAttributes: [ 'src', 'alt' ],\n *\t\t\tisBlock: true,\n *\t\t\tisObject: true\n *\t\t} );\n *\n * Make `caption` allowed in `image` and make it allow all the content of `$block`s (usually, `$text`).\n * Also, mark it as a limit element so it cannot be split:\n *\n *\t\tschema.register( 'caption', {\n *\t\t\tallowIn: 'image',\n *\t\t\tallowContentOf: '$block',\n *\t\t\tisLimit: true\n *\t\t} );\n *\n * Make `listItem` inherit all from `$block` but also allow additional attributes:\n *\n *\t\tschema.register( 'listItem', {\n *\t\t\tinheritAllFrom: '$block',\n *\t\t\tallowAttributes: [ 'listType', 'listIndent' ]\n *\t\t} );\n *\n * Which translates to:\n *\n *\t\tschema.register( 'listItem', {\n *\t\t\tallowWhere: '$block',\n *\t\t\tallowContentOf: '$block',\n *\t\t\tallowAttributesOf: '$block',\n *\t\t\tinheritTypesFrom: '$block',\n *\t\t\tallowAttributes: [ 'listType', 'listIndent' ]\n *\t\t} );\n *\n * # Tips\n *\n * * Check schema definitions of existing features to see how they are defined.\n * * If you want to publish your feature so other developers can use it, try to use\n * generic items as much as possible.\n * * Keep your model clean. Limit it to the actual data and store information in a normalized way.\n * * Remember about definining the `is*` properties. They do not affect the allowed structures, but they can\n * affect how the editor features treat your elements.\n *\n * @typedef {Object} module:engine/model/schema~SchemaItemDefinition\n */\n\n/**\n * A simplified version of {@link module:engine/model/schema~SchemaItemDefinition} after\n * compilation by the {@link module:engine/model/schema~Schema schema}.\n * Rules fed to the schema by {@link module:engine/model/schema~Schema#register}\n * and {@link module:engine/model/schema~Schema#extend} methods are defined in the\n * {@link module:engine/model/schema~SchemaItemDefinition} format.\n * Later on, they are compiled to `SchemaCompiledItemDefition` so when you use e.g.\n * the {@link module:engine/model/schema~Schema#getDefinition} method you get the compiled version.\n *\n * The compiled version contains only the following properties:\n *\n * * The `name` property,\n * * The `is*` properties,\n * * The `allowIn` array,\n * * The `allowAttributes` array.\n *\n * @typedef {Object} module:engine/model/schema~SchemaCompiledItemDefinition\n */\n\n/**\n * A schema context &mdash; a list of ancestors of a given position in the document.\n *\n * Considering such position:\n *\n *\t\t<$root>\n *\t\t\t<blockQuote>\n *\t\t\t\t<paragraph>\n *\t\t\t\t\t^\n *\t\t\t\t</paragraph>\n *\t\t\t</blockQuote>\n *\t\t</$root>\n *\n * The context of this position is its {@link module:engine/model/position~Position#getAncestors lists of ancestors}:\n *\n *\t\t[ rootElement, blockQuoteElement, paragraphElement ]\n *\n * Contexts are used in the {@link module:engine/model/schema~Schema#event:checkChild `Schema#checkChild`} and\n * {@link module:engine/model/schema~Schema#event:checkAttribute `Schema#checkAttribute`} events as a definition\n * of a place in the document where the check occurs. The context instances are created based on the first arguments\n * of the {@link module:engine/model/schema~Schema#checkChild `Schema#checkChild()`} and\n * {@link module:engine/model/schema~Schema#checkAttribute `Schema#checkAttribute()`} methods so when\n * using these methods you need to use {@link module:engine/model/schema~SchemaContextDefinition}s.\n */\n\nexport var SchemaContext = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the context.\n   *\n   * @param {module:engine/model/schema~SchemaContextDefinition} context\n   */\n  function SchemaContext(context) {\n    _classCallCheck(this, SchemaContext);\n\n    if (context instanceof SchemaContext) {\n      return context;\n    }\n\n    if (typeof context == 'string') {\n      context = [context];\n    } else if (!Array.isArray(context)) {\n      // `context` is item or position.\n      // Position#getAncestors() doesn't accept any parameters but it works just fine here.\n      context = context.getAncestors({\n        includeSelf: true\n      });\n    }\n\n    if (context[0] && typeof context[0] != 'string' && context[0].is('documentFragment')) {\n      context.shift();\n    }\n\n    this._items = context.map(mapContextItem);\n  }\n  /**\n   * The number of items.\n   *\n   * @type {Number}\n   */\n\n\n  _createClass(SchemaContext, [{\n    key: Symbol.iterator,\n\n    /**\n     * Iterable interface.\n     *\n     * Iterates over all context items.\n     *\n     * @returns {Iterable.<module:engine/model/schema~SchemaContextItem>}\n     */\n    value: function value() {\n      return this._items[Symbol.iterator]();\n    }\n    /**\n     * Returns a new schema context instance with an additional item.\n     *\n     * Item can be added as:\n     *\n     * \t\tconst context = new SchemaContext( [ '$root' ] );\n     *\n     * \t\t// An element.\n     * \t\tconst fooElement = writer.createElement( 'fooElement' );\n     * \t\tconst newContext = context.push( fooElement ); // [ '$root', 'fooElement' ]\n     *\n     * \t\t// A text node.\n     * \t\tconst text = writer.createText( 'foobar' );\n     * \t\tconst newContext = context.push( text ); // [ '$root', '$text' ]\n     *\n     * \t\t// A string (element name).\n     * \t\tconst newContext = context.push( 'barElement' ); // [ '$root', 'barElement' ]\n     *\n     * **Note** {@link module:engine/model/node~Node} that is already in the model tree will be added as the only item\n     * (without ancestors).\n     *\n     * @param {String|module:engine/model/node~Node|Array<String|module:engine/model/node~Node>} item An item that will be added\n     * to the current context.\n     * @returns {module:engine/model/schema~SchemaContext} A new schema context instance with an additional item.\n     */\n\n  }, {\n    key: \"push\",\n    value: function push(item) {\n      var ctx = new SchemaContext([item]);\n      ctx._items = [].concat(_toConsumableArray(this._items), _toConsumableArray(ctx._items));\n      return ctx;\n    }\n    /**\n     * Gets an item on the given index.\n     *\n     * @returns {module:engine/model/schema~SchemaContextItem}\n     */\n\n  }, {\n    key: \"getItem\",\n    value: function getItem(index) {\n      return this._items[index];\n    }\n    /**\n     * Returns the names of items.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getNames\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getNames() {\n      return regeneratorRuntime.wrap(function getNames$(_context4) {\n        while (1) {\n          switch (_context4.prev = _context4.next) {\n            case 0:\n              return _context4.delegateYield(this._items.map(function (item) {\n                return item.name;\n              }), \"t0\", 1);\n\n            case 1:\n            case \"end\":\n              return _context4.stop();\n          }\n        }\n      }, getNames, this);\n    })\n    /**\n     * Checks whether the context ends with the given nodes.\n     *\n     *\t\tconst ctx = new SchemaContext( [ rootElement, paragraphElement, textNode ] );\n     *\n     *\t\tctx.endsWith( '$text' ); // -> true\n     *\t\tctx.endsWith( 'paragraph $text' ); // -> true\n     *\t\tctx.endsWith( '$root' ); // -> false\n     *\t\tctx.endsWith( 'paragraph' ); // -> false\n     *\n     * @param {String} query\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"endsWith\",\n    value: function endsWith(query) {\n      return Array.from(this.getNames()).join(' ').endsWith(query);\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._items.length;\n    }\n    /**\n     * The last item (the lowest node).\n     *\n     * @type {module:engine/model/schema~SchemaContextItem}\n     */\n\n  }, {\n    key: \"last\",\n    get: function get() {\n      return this._items[this._items.length - 1];\n    }\n  }]);\n\n  return SchemaContext;\n}();\n/**\n * The definition of a {@link module:engine/model/schema~SchemaContext schema context}.\n *\n * Contexts can be created in multiple ways:\n *\n * * By defining a **node** – in this cases this node and all its ancestors will be used.\n * * By defining a **position** in the document – in this case all its ancestors will be used.\n * * By defining an **array of nodes** – in this case this array defines the entire context.\n * * By defining a **name of node** - in this case node will be \"mocked\". It is not recommended because context\n * will be unrealistic (e.g. attributes of these nodes are not specified). However, at times this may be the only\n * way to define the context (e.g. when checking some hypothetical situation).\n * * By defining an **array of node names** (potentially, mixed with real nodes) – The same as **name of node**\n * but it is possible to create a path.\n * * By defining a {@link module:engine/model/schema~SchemaContext} instance - in this case the same instance as provided\n * will be return.\n *\n * Examples of context definitions passed to the {@link module:engine/model/schema~Schema#checkChild `Schema#checkChild()`}\n * method:\n *\n *\t\t// Assuming that we have a $root > blockQuote > paragraph structure, the following code\n *\t\t// will check node 'foo' in the following context:\n *\t\t// [ rootElement, blockQuoteElement, paragraphElement ]\n *\t\tconst contextDefinition = paragraphElement;\n * \t\tconst childToCheck = 'foo';\n *\t\tschema.checkChild( contextDefinition, childToCheck );\n *\n *\t\t// Also check in [ rootElement, blockQuoteElement, paragraphElement ].\n *\t\tschema.checkChild( model.createPositionAt( paragraphElement, 0 ), 'foo' );\n *\n *\t\t// Check in [ rootElement, paragraphElement ].\n *\t\tschema.checkChild( [ rootElement, paragraphElement ], 'foo' );\n *\n *\t\t// Check only fakeParagraphElement.\n *\t\tschema.checkChild( 'paragraph', 'foo' );\n *\n *\t\t// Check in [ fakeRootElement, fakeBarElement, paragraphElement ].\n *\t\tschema.checkChild( [ '$root', 'bar', paragraphElement ], 'foo' );\n *\n * All these `checkChild()` calls will fire {@link module:engine/model/schema~Schema#event:checkChild `Schema#checkChild`}\n * events in which `args[ 0 ]` is an instance of the context. Therefore, you can write a listener like this:\n *\n *\t\tschema.on( 'checkChild', ( evt, args ) => {\n *\t\t\tconst ctx = args[ 0 ];\n *\n *\t\t\tconsole.log( Array.from( ctx.getNames() ) );\n *\t\t} );\n *\n * Which will log the following:\n *\n *\t\t[ '$root', 'blockQuote', 'paragraph' ]\n *\t\t[ '$root', 'paragraph' ]\n *\t\t[ '$root', 'bar', 'paragraph' ]\n *\n * Note: When using the {@link module:engine/model/schema~Schema#checkAttribute `Schema#checkAttribute()`} method\n * you may want to check whether a text node may have an attribute. A {@link module:engine/model/text~Text} is a\n * correct way to define a context so you can do this:\n *\n *\t\tschema.checkAttribute( textNode, 'bold' );\n *\n * But sometimes you want to check whether a text at a given position might've had some attribute,\n * in which case you can create a context by mising an array of elements with a `'$text'` string:\n *\n *\t\t// Check in [ rootElement, paragraphElement, textNode ].\n *\t\tschema.checkChild( [ ...positionInParagraph.getAncestors(), '$text' ], 'bold' );\n *\n * @typedef {module:engine/model/node~Node|module:engine/model/position~Position|module:engine/model/schema~SchemaContext|\n * String|Array.<String|module:engine/model/node~Node>} module:engine/model/schema~SchemaContextDefinition\n */\n\n/**\n * An item of the {@link module:engine/model/schema~SchemaContext schema context}.\n *\n * It contains 3 properties:\n *\n * * `name` – the name of this item,\n * * `* getAttributeKeys()` – a generator of keys of item attributes,\n * * `getAttribute( keyName )` – a method to get attribute values.\n *\n * The context item interface is a highly simplified version of {@link module:engine/model/node~Node} and its role\n * is to expose only the information which schema checks are able to provide (which is the name of the node and\n * node's attributes).\n *\n *\t\tschema.on( 'checkChild', ( evt, args ) => {\n *\t\t\tconst ctx = args[ 0 ];\n *\t\t\tconst firstItem = ctx.getItem( 0 );\n *\n *\t\t\tconsole.log( firstItem.name ); // -> '$root'\n *\t\t\tconsole.log( firstItem.getAttribute( 'foo' ) ); // -> 'bar'\n *\t\t\tconsole.log( Array.from( firstItem.getAttributeKeys() ) ); // -> [ 'foo', 'faa' ]\n *\t\t} );\n *\n * @typedef {Object} module:engine/model/schema~SchemaContextItem\n */\n\n/**\n * A structure containing additional metadata describing the attribute.\n *\n * See {@link module:engine/model/schema~Schema#setAttributeProperties `Schema#setAttributeProperties()`} for usage examples.\n *\n * @typedef {Object} module:engine/model/schema~AttributeProperties\n * @property {Boolean} [isFormatting] Indicates that the attribute should be considered as a visual formatting, like `bold`, `italic` or\n * `fontSize` rather than semantic attribute (such as `src`, `listType`, etc.). For example, it is used by the \"Remove format\" feature.\n * @property {Boolean} [copyOnEnter] Indicates that given text attribute should be copied to the next block when enter is pressed.\n */\n\nfunction compileBaseItemRule(sourceItemRules, itemName) {\n  var itemRule = {\n    name: itemName,\n    allowIn: [],\n    allowContentOf: [],\n    allowWhere: [],\n    allowAttributes: [],\n    allowAttributesOf: [],\n    inheritTypesFrom: []\n  };\n  copyTypes(sourceItemRules, itemRule);\n  copyProperty(sourceItemRules, itemRule, 'allowIn');\n  copyProperty(sourceItemRules, itemRule, 'allowContentOf');\n  copyProperty(sourceItemRules, itemRule, 'allowWhere');\n  copyProperty(sourceItemRules, itemRule, 'allowAttributes');\n  copyProperty(sourceItemRules, itemRule, 'allowAttributesOf');\n  copyProperty(sourceItemRules, itemRule, 'inheritTypesFrom');\n  makeInheritAllWork(sourceItemRules, itemRule);\n  return itemRule;\n}\n\nfunction compileAllowContentOf(compiledDefinitions, itemName) {\n  var _iterator9 = _createForOfIteratorHelper(compiledDefinitions[itemName].allowContentOf),\n      _step9;\n\n  try {\n    for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n      var allowContentOfItemName = _step9.value;\n\n      // The allowContentOf property may point to an unregistered element.\n      if (compiledDefinitions[allowContentOfItemName]) {\n        var allowedChildren = getAllowedChildren(compiledDefinitions, allowContentOfItemName);\n        allowedChildren.forEach(function (allowedItem) {\n          allowedItem.allowIn.push(itemName);\n        });\n      }\n    }\n  } catch (err) {\n    _iterator9.e(err);\n  } finally {\n    _iterator9.f();\n  }\n\n  delete compiledDefinitions[itemName].allowContentOf;\n}\n\nfunction compileAllowWhere(compiledDefinitions, itemName) {\n  var _iterator10 = _createForOfIteratorHelper(compiledDefinitions[itemName].allowWhere),\n      _step10;\n\n  try {\n    for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n      var allowWhereItemName = _step10.value;\n      var inheritFrom = compiledDefinitions[allowWhereItemName]; // The allowWhere property may point to an unregistered element.\n\n      if (inheritFrom) {\n        var _compiledDefinitions$;\n\n        var allowedIn = inheritFrom.allowIn;\n\n        (_compiledDefinitions$ = compiledDefinitions[itemName].allowIn).push.apply(_compiledDefinitions$, _toConsumableArray(allowedIn));\n      }\n    }\n  } catch (err) {\n    _iterator10.e(err);\n  } finally {\n    _iterator10.f();\n  }\n\n  delete compiledDefinitions[itemName].allowWhere;\n}\n\nfunction compileAllowAttributesOf(compiledDefinitions, itemName) {\n  var _iterator11 = _createForOfIteratorHelper(compiledDefinitions[itemName].allowAttributesOf),\n      _step11;\n\n  try {\n    for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n      var allowAttributeOfItem = _step11.value;\n      var inheritFrom = compiledDefinitions[allowAttributeOfItem];\n\n      if (inheritFrom) {\n        var _compiledDefinitions$2;\n\n        var inheritAttributes = inheritFrom.allowAttributes;\n\n        (_compiledDefinitions$2 = compiledDefinitions[itemName].allowAttributes).push.apply(_compiledDefinitions$2, _toConsumableArray(inheritAttributes));\n      }\n    }\n  } catch (err) {\n    _iterator11.e(err);\n  } finally {\n    _iterator11.f();\n  }\n\n  delete compiledDefinitions[itemName].allowAttributesOf;\n}\n\nfunction compileInheritPropertiesFrom(compiledDefinitions, itemName) {\n  var item = compiledDefinitions[itemName];\n\n  var _iterator12 = _createForOfIteratorHelper(item.inheritTypesFrom),\n      _step12;\n\n  try {\n    for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n      var inheritPropertiesOfItem = _step12.value;\n      var inheritFrom = compiledDefinitions[inheritPropertiesOfItem];\n\n      if (inheritFrom) {\n        var typeNames = Object.keys(inheritFrom).filter(function (name) {\n          return name.startsWith('is');\n        });\n\n        var _iterator13 = _createForOfIteratorHelper(typeNames),\n            _step13;\n\n        try {\n          for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n            var name = _step13.value;\n\n            if (!(name in item)) {\n              item[name] = inheritFrom[name];\n            }\n          }\n        } catch (err) {\n          _iterator13.e(err);\n        } finally {\n          _iterator13.f();\n        }\n      }\n    }\n  } catch (err) {\n    _iterator12.e(err);\n  } finally {\n    _iterator12.f();\n  }\n\n  delete item.inheritTypesFrom;\n} // Remove items which weren't registered (because it may break some checks or we'd need to complicate them).\n// Make sure allowIn doesn't contain repeated values.\n\n\nfunction cleanUpAllowIn(compiledDefinitions, itemName) {\n  var itemRule = compiledDefinitions[itemName];\n  var existingItems = itemRule.allowIn.filter(function (itemToCheck) {\n    return compiledDefinitions[itemToCheck];\n  });\n  itemRule.allowIn = Array.from(new Set(existingItems));\n}\n\nfunction cleanUpAllowAttributes(compiledDefinitions, itemName) {\n  var itemRule = compiledDefinitions[itemName];\n  itemRule.allowAttributes = Array.from(new Set(itemRule.allowAttributes));\n}\n\nfunction copyTypes(sourceItemRules, itemRule) {\n  var _iterator14 = _createForOfIteratorHelper(sourceItemRules),\n      _step14;\n\n  try {\n    for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n      var sourceItemRule = _step14.value;\n      var typeNames = Object.keys(sourceItemRule).filter(function (name) {\n        return name.startsWith('is');\n      });\n\n      var _iterator15 = _createForOfIteratorHelper(typeNames),\n          _step15;\n\n      try {\n        for (_iterator15.s(); !(_step15 = _iterator15.n()).done;) {\n          var name = _step15.value;\n          itemRule[name] = sourceItemRule[name];\n        }\n      } catch (err) {\n        _iterator15.e(err);\n      } finally {\n        _iterator15.f();\n      }\n    }\n  } catch (err) {\n    _iterator14.e(err);\n  } finally {\n    _iterator14.f();\n  }\n}\n\nfunction copyProperty(sourceItemRules, itemRule, propertyName) {\n  var _iterator16 = _createForOfIteratorHelper(sourceItemRules),\n      _step16;\n\n  try {\n    for (_iterator16.s(); !(_step16 = _iterator16.n()).done;) {\n      var sourceItemRule = _step16.value;\n\n      if (typeof sourceItemRule[propertyName] == 'string') {\n        itemRule[propertyName].push(sourceItemRule[propertyName]);\n      } else if (Array.isArray(sourceItemRule[propertyName])) {\n        var _itemRule$propertyNam;\n\n        (_itemRule$propertyNam = itemRule[propertyName]).push.apply(_itemRule$propertyNam, _toConsumableArray(sourceItemRule[propertyName]));\n      }\n    }\n  } catch (err) {\n    _iterator16.e(err);\n  } finally {\n    _iterator16.f();\n  }\n}\n\nfunction makeInheritAllWork(sourceItemRules, itemRule) {\n  var _iterator17 = _createForOfIteratorHelper(sourceItemRules),\n      _step17;\n\n  try {\n    for (_iterator17.s(); !(_step17 = _iterator17.n()).done;) {\n      var sourceItemRule = _step17.value;\n      var inheritFrom = sourceItemRule.inheritAllFrom;\n\n      if (inheritFrom) {\n        itemRule.allowContentOf.push(inheritFrom);\n        itemRule.allowWhere.push(inheritFrom);\n        itemRule.allowAttributesOf.push(inheritFrom);\n        itemRule.inheritTypesFrom.push(inheritFrom);\n      }\n    }\n  } catch (err) {\n    _iterator17.e(err);\n  } finally {\n    _iterator17.f();\n  }\n}\n\nfunction getAllowedChildren(compiledDefinitions, itemName) {\n  var itemRule = compiledDefinitions[itemName];\n  return getValues(compiledDefinitions).filter(function (def) {\n    return def.allowIn.includes(itemRule.name);\n  });\n}\n\nfunction getValues(obj) {\n  return Object.keys(obj).map(function (key) {\n    return obj[key];\n  });\n}\n\nfunction mapContextItem(ctxItem) {\n  if (typeof ctxItem == 'string') {\n    return {\n      name: ctxItem,\n      getAttributeKeys: /*#__PURE__*/regeneratorRuntime.mark(function getAttributeKeys() {\n        return regeneratorRuntime.wrap(function getAttributeKeys$(_context5) {\n          while (1) {\n            switch (_context5.prev = _context5.next) {\n              case 0:\n              case \"end\":\n                return _context5.stop();\n            }\n          }\n        }, getAttributeKeys);\n      }),\n      getAttribute: function getAttribute() {}\n    };\n  } else {\n    return {\n      // '$text' means text nodes and text proxies.\n      name: ctxItem.is('element') ? ctxItem.name : '$text',\n      getAttributeKeys: /*#__PURE__*/regeneratorRuntime.mark(function getAttributeKeys() {\n        return regeneratorRuntime.wrap(function getAttributeKeys$(_context6) {\n          while (1) {\n            switch (_context6.prev = _context6.next) {\n              case 0:\n                return _context6.delegateYield(ctxItem.getAttributeKeys(), \"t0\", 1);\n\n              case 1:\n              case \"end\":\n                return _context6.stop();\n            }\n          }\n        }, getAttributeKeys);\n      }),\n      getAttribute: function getAttribute(key) {\n        return ctxItem.getAttribute(key);\n      }\n    };\n  }\n} // Generator function returning values from provided walkers, switching between them at each iteration. If only one walker\n// is provided it will return data only from that walker.\n//\n// @param {module:engine/module/treewalker~TreeWalker} [backward] Walker iterating in backward direction.\n// @param {module:engine/module/treewalker~TreeWalker} [forward] Walker iterating in forward direction.\n// @returns {Iterable.<Object>} Object returned at each iteration contains `value` and `walker` (informing which walker returned\n// given value) fields.\n\n\nfunction combineWalkers(backward, forward) {\n  var done, step, _step18;\n\n  return regeneratorRuntime.wrap(function combineWalkers$(_context7) {\n    while (1) {\n      switch (_context7.prev = _context7.next) {\n        case 0:\n          done = false;\n\n        case 1:\n          if (done) {\n            _context7.next = 17;\n            break;\n          }\n\n          done = true;\n\n          if (!backward) {\n            _context7.next = 9;\n            break;\n          }\n\n          step = backward.next();\n\n          if (step.done) {\n            _context7.next = 9;\n            break;\n          }\n\n          done = false;\n          _context7.next = 9;\n          return {\n            walker: backward,\n            value: step.value\n          };\n\n        case 9:\n          if (!forward) {\n            _context7.next = 15;\n            break;\n          }\n\n          _step18 = forward.next();\n\n          if (_step18.done) {\n            _context7.next = 15;\n            break;\n          }\n\n          done = false;\n          _context7.next = 15;\n          return {\n            walker: forward,\n            value: _step18.value\n          };\n\n        case 15:\n          _context7.next = 1;\n          break;\n\n        case 17:\n        case \"end\":\n          return _context7.stop();\n      }\n    }\n  }, _marked);\n} // Takes an array of non-intersecting ranges. For each of them gets minimal flat ranges covering that range and returns\n// all those minimal flat ranges.\n//\n// @param {Array.<module:engine/model/range~Range>} ranges Ranges to process.\n// @returns {Iterable.<module:engine/model/range~Range>} Minimal flat ranges of given `ranges`.\n\n\nfunction convertToMinimalFlatRanges(ranges) {\n  var _iterator18, _step19, range;\n\n  return regeneratorRuntime.wrap(function convertToMinimalFlatRanges$(_context8) {\n    while (1) {\n      switch (_context8.prev = _context8.next) {\n        case 0:\n          _iterator18 = _createForOfIteratorHelper(ranges);\n          _context8.prev = 1;\n\n          _iterator18.s();\n\n        case 3:\n          if ((_step19 = _iterator18.n()).done) {\n            _context8.next = 8;\n            break;\n          }\n\n          range = _step19.value;\n          return _context8.delegateYield(range.getMinimalFlatRanges(), \"t0\", 6);\n\n        case 6:\n          _context8.next = 3;\n          break;\n\n        case 8:\n          _context8.next = 13;\n          break;\n\n        case 10:\n          _context8.prev = 10;\n          _context8.t1 = _context8[\"catch\"](1);\n\n          _iterator18.e(_context8.t1);\n\n        case 13:\n          _context8.prev = 13;\n\n          _iterator18.f();\n\n          return _context8.finish(13);\n\n        case 16:\n        case \"end\":\n          return _context8.stop();\n      }\n    }\n  }, _marked2, null, [[1, 10, 13, 16]]);\n}\n\nfunction removeDisallowedAttributeFromNode(schema, node, writer) {\n  var _iterator19 = _createForOfIteratorHelper(node.getAttributeKeys()),\n      _step20;\n\n  try {\n    for (_iterator19.s(); !(_step20 = _iterator19.n()).done;) {\n      var attribute = _step20.value;\n\n      if (!schema.checkAttribute(node, attribute)) {\n        writer.removeAttribute(attribute, node);\n      }\n    }\n  } catch (err) {\n    _iterator19.e(err);\n  } finally {\n    _iterator19.f();\n  }\n}","import \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.weak-set\";\nimport \"core-js/modules/es6.array.from\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es6.string.anchor\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/selection\n */\nimport Position from \"./position\";\nimport Element from \"./element\";\nimport Node from \"./node\";\nimport Range from \"./range\";\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\n/**\n * Selection is a set of {@link module:engine/model/range~Range ranges}. It has a direction specified by its\n * {@link module:engine/model/selection~Selection#anchor anchor} and {@link module:engine/model/selection~Selection#focus focus}\n * (it can be {@link module:engine/model/selection~Selection#isBackward forward or backward}).\n * Additionally, selection may have its own attributes (think – whether text typed in in this selection\n * should have those attributes – e.g. whether you type a bolded text).\n *\n * @mixes module:utils/emittermixin~EmitterMixin\n */\n\nvar Selection = /*#__PURE__*/function () {\n  /**\n   * Creates a new selection instance based on the given {@link module:engine/model/selection~Selectable selectable}\n   * or creates an empty selection if no arguments were passed.\n   *\n   *\t\t// Creates empty selection without ranges.\n   *\t\tconst selection = writer.createSelection();\n   *\n   *\t\t// Creates selection at the given range.\n   *\t\tconst range = writer.createRange( start, end );\n   *\t\tconst selection = writer.createSelection( range );\n   *\n   *\t\t// Creates selection at the given ranges\n   *\t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n   *\t\tconst selection = writer.createSelection( ranges );\n   *\n   *\t\t// Creates selection from the other selection.\n   *\t\t// Note: It doesn't copies selection attributes.\n   *\t\tconst otherSelection = writer.createSelection();\n   *\t\tconst selection = writer.createSelection( otherSelection );\n   *\n   *\t\t// Creates selection from the given document selection.\n   *\t\t// Note: It doesn't copies selection attributes.\n   *\t\tconst documentSelection = model.document.selection;\n   *\t\tconst selection = writer.createSelection( documentSelection );\n   *\n   *\t\t// Creates selection at the given position.\n   *\t\tconst position = writer.createPositionFromPath( root, path );\n   *\t\tconst selection = writer.createSelection( position );\n   *\n   *\t\t// Creates selection at the given offset in the given element.\n   *\t\tconst paragraph = writer.createElement( 'paragraph' );\n   *\t\tconst selection = writer.createSelection( paragraph, offset );\n   *\n   *\t\t// Creates a range inside an {@link module:engine/model/element~Element element} which starts before the\n   *\t\t// first child of that element and ends after the last child of that element.\n   *\t\tconst selection = writer.createSelection( paragraph, 'in' );\n   *\n   *\t\t// Creates a range on an {@link module:engine/model/item~Item item} which starts before the item and ends\n   *\t\t// just after the item.\n   *\t\tconst selection = writer.createSelection( paragraph, 'on' );\n   *\n   * Selection's constructor allow passing additional options (`'backward'`) as the last argument.\n   *\n   *\t\t// Creates backward selection.\n   *\t\tconst selection = writer.createSelection( range, { backward: true } );\n   *\n   * @param {module:engine/model/selection~Selectable} selectable\n   * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n   * @param {Object} [options]\n   * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n   */\n  function Selection(selectable, placeOrOffset, options) {\n    _classCallCheck(this, Selection);\n\n    /**\n     * Specifies whether the last added range was added as a backward or forward range.\n     *\n     * @private\n     * @type {Boolean}\n     */\n    this._lastRangeBackward = false;\n    /**\n     * Stores selection ranges.\n     *\n     * @protected\n     * @type {Array.<module:engine/model/range~Range>}\n     */\n\n    this._ranges = [];\n    /**\n     * List of attributes set on current selection.\n     *\n     * @protected\n     * @type {Map.<String,*>}\n     */\n\n    this._attrs = new Map();\n\n    if (selectable) {\n      this.setTo(selectable, placeOrOffset, options);\n    }\n  }\n  /**\n   * Selection anchor. Anchor is the position from which the selection was started. If a user is making a selection\n   * by dragging the mouse, the anchor is where the user pressed the mouse button (the beggining of the selection).\n   *\n   * Anchor and {@link #focus} define the direction of the selection, which is important\n   * when expanding/shrinking selection. The focus moves, while the anchor should remain in the same place.\n   *\n   * Anchor is always set to the {@link module:engine/model/range~Range#start start} or\n   * {@link module:engine/model/range~Range#end end} position of the last of selection's ranges. Whether it is\n   * the `start` or `end` depends on the specified `options.backward`. See the {@link #setTo `setTo()`} method.\n   *\n   * May be set to `null` if there are no ranges in the selection.\n   *\n   * @see #focus\n   * @readonly\n   * @type {module:engine/model/position~Position|null}\n   */\n\n\n  _createClass(Selection, [{\n    key: \"isEqual\",\n\n    /**\n     * Checks whether this selection is equal to the given selection. Selections are equal if they have the same directions,\n     * the same number of ranges and all ranges from one selection equal to ranges from the another selection.\n     *\n     * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} otherSelection\n     * Selection to compare with.\n     * @returns {Boolean} `true` if selections are equal, `false` otherwise.\n     */\n    value: function isEqual(otherSelection) {\n      if (this.rangeCount != otherSelection.rangeCount) {\n        return false;\n      } else if (this.rangeCount === 0) {\n        return true;\n      }\n\n      if (!this.anchor.isEqual(otherSelection.anchor) || !this.focus.isEqual(otherSelection.focus)) {\n        return false;\n      }\n\n      var _iterator = _createForOfIteratorHelper(this._ranges),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var thisRange = _step.value;\n          var found = false;\n\n          var _iterator2 = _createForOfIteratorHelper(otherSelection._ranges),\n              _step2;\n\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n              var otherRange = _step2.value;\n\n              if (thisRange.isEqual(otherRange)) {\n                found = true;\n                break;\n              }\n            }\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n\n          if (!found) {\n            return false;\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return true;\n    }\n    /**\n     * Returns an iterable object that iterates over copies of selection ranges.\n     *\n     * @returns {Iterable.<module:engine/model/range~Range>}\n     */\n\n  }, {\n    key: \"getRanges\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getRanges() {\n      var _iterator3, _step3, range;\n\n      return regeneratorRuntime.wrap(function getRanges$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _iterator3 = _createForOfIteratorHelper(this._ranges);\n              _context.prev = 1;\n\n              _iterator3.s();\n\n            case 3:\n              if ((_step3 = _iterator3.n()).done) {\n                _context.next = 9;\n                break;\n              }\n\n              range = _step3.value;\n              _context.next = 7;\n              return new Range(range.start, range.end);\n\n            case 7:\n              _context.next = 3;\n              break;\n\n            case 9:\n              _context.next = 14;\n              break;\n\n            case 11:\n              _context.prev = 11;\n              _context.t0 = _context[\"catch\"](1);\n\n              _iterator3.e(_context.t0);\n\n            case 14:\n              _context.prev = 14;\n\n              _iterator3.f();\n\n              return _context.finish(14);\n\n            case 17:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, getRanges, this, [[1, 11, 14, 17]]);\n    })\n    /**\n     * Returns a copy of the first range in the selection.\n     * First range is the one which {@link module:engine/model/range~Range#start start} position\n     * {@link module:engine/model/position~Position#isBefore is before} start position of all other ranges\n     * (not to confuse with the first range added to the selection).\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/range~Range|null}\n     */\n\n  }, {\n    key: \"getFirstRange\",\n    value: function getFirstRange() {\n      var first = null;\n\n      var _iterator4 = _createForOfIteratorHelper(this._ranges),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var range = _step4.value;\n\n          if (!first || range.start.isBefore(first.start)) {\n            first = range;\n          }\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      return first ? new Range(first.start, first.end) : null;\n    }\n    /**\n     * Returns a copy of the last range in the selection.\n     * Last range is the one which {@link module:engine/model/range~Range#end end} position\n     * {@link module:engine/model/position~Position#isAfter is after} end position of all other ranges (not to confuse with the range most\n     * recently added to the selection).\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/range~Range|null}\n     */\n\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      var last = null;\n\n      var _iterator5 = _createForOfIteratorHelper(this._ranges),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var range = _step5.value;\n\n          if (!last || range.end.isAfter(last.end)) {\n            last = range;\n          }\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      return last ? new Range(last.start, last.end) : null;\n    }\n    /**\n     * Returns the first position in the selection.\n     * First position is the position that {@link module:engine/model/position~Position#isBefore is before}\n     * any other position in the selection.\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/position~Position|null}\n     */\n\n  }, {\n    key: \"getFirstPosition\",\n    value: function getFirstPosition() {\n      var first = this.getFirstRange();\n      return first ? first.start.clone() : null;\n    }\n    /**\n     * Returns the last position in the selection.\n     * Last position is the position that {@link module:engine/model/position~Position#isAfter is after}\n     * any other position in the selection.\n     *\n     * Returns `null` if there are no ranges in selection.\n     *\n     * @returns {module:engine/model/position~Position|null}\n     */\n\n  }, {\n    key: \"getLastPosition\",\n    value: function getLastPosition() {\n      var lastRange = this.getLastRange();\n      return lastRange ? lastRange.end.clone() : null;\n    }\n    /**\n     * Sets this selection's ranges and direction to the specified location based on the given\n     * {@link module:engine/model/selection~Selectable selectable}.\n     *\n     *\t\t// Removes all selection's ranges.\n     *\t\tselection.setTo( null );\n     *\n     *\t\t// Sets selection to the given range.\n     *\t\tconst range = writer.createRange( start, end );\n     *\t\tselection.setTo( range );\n     *\n     *\t\t// Sets selection to given ranges.\n     *\t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n     *\t\tselection.setTo( ranges );\n     *\n     *\t\t// Sets selection to other selection.\n     *\t\t// Note: It doesn't copies selection attributes.\n     *\t\tconst otherSelection = writer.createSelection();\n     *\t\tselection.setTo( otherSelection );\n     *\n     *\t\t// Sets selection to the given document selection.\n     *\t\t// Note: It doesn't copies selection attributes.\n     *\t\tconst documentSelection = new DocumentSelection( doc );\n     *\t\tselection.setTo( documentSelection );\n     *\n     *\t\t// Sets collapsed selection at the given position.\n     *\t\tconst position = writer.createPositionFromPath( root, path );\n     *\t\tselection.setTo( position );\n     *\n     *\t\t// Sets collapsed selection at the position of the given node and an offset.\n     *\t\tselection.setTo( paragraph, offset );\n     *\n     * Creates a range inside an {@link module:engine/model/element~Element element} which starts before the first child of\n    \t * that element and ends after the last child of that element.\n     *\n     *\t\tselection.setTo( paragraph, 'in' );\n     *\n     * Creates a range on an {@link module:engine/model/item~Item item} which starts before the item and ends just after the item.\n     *\n     *\t\tselection.setTo( paragraph, 'on' );\n     *\n     * `Selection#setTo()`' method allow passing additional options (`backward`) as the last argument.\n     *\n     *\t\t// Sets backward selection.\n     *\t\tconst selection = writer.createSelection( range, { backward: true } );\n     *\n     * @param {module:engine/model/selection~Selectable} selectable\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     */\n\n  }, {\n    key: \"setTo\",\n    value: function setTo(selectable, placeOrOffset, options) {\n      if (selectable === null) {\n        this._setRanges([]);\n      } else if (selectable instanceof Selection) {\n        this._setRanges(selectable.getRanges(), selectable.isBackward);\n      } else if (selectable && typeof selectable.getRanges == 'function') {\n        // We assume that the selectable is a DocumentSelection.\n        // It can't be imported here, because it would lead to circular imports.\n        this._setRanges(selectable.getRanges(), selectable.isBackward);\n      } else if (selectable instanceof Range) {\n        this._setRanges([selectable], !!placeOrOffset && !!placeOrOffset.backward);\n      } else if (selectable instanceof Position) {\n        this._setRanges([new Range(selectable)]);\n      } else if (selectable instanceof Node) {\n        var backward = !!options && !!options.backward;\n        var range;\n\n        if (placeOrOffset == 'in') {\n          range = Range._createIn(selectable);\n        } else if (placeOrOffset == 'on') {\n          range = Range._createOn(selectable);\n        } else if (placeOrOffset !== undefined) {\n          range = new Range(Position._createAt(selectable, placeOrOffset));\n        } else {\n          /**\n           * selection.setTo requires the second parameter when the first parameter is a node.\n           *\n           * @error model-selection-setTo-required-second-parameter\n           */\n          throw new CKEditorError('model-selection-setTo-required-second-parameter: ' + 'selection.setTo requires the second parameter when the first parameter is a node.', [this, selectable]);\n        }\n\n        this._setRanges([range], backward);\n      } else if (isIterable(selectable)) {\n        // We assume that the selectable is an iterable of ranges.\n        this._setRanges(selectable, placeOrOffset && !!placeOrOffset.backward);\n      } else {\n        /**\n         * Cannot set the selection to the given place.\n         *\n         * Invalid parameters were specified when setting the selection. Common issues:\n         *\n         * * A {@link module:engine/model/textproxy~TextProxy} instance was passed instead of\n         * a real {@link module:engine/model/text~Text}.\n         * * View nodes were passed instead of model nodes.\n         * * `null`/`undefined` was passed.\n         *\n         * @error model-selection-setTo-not-selectable\n         */\n        throw new CKEditorError('model-selection-setTo-not-selectable: Cannot set the selection to the given place.', [this, selectable]);\n      }\n    }\n    /**\n     * Replaces all ranges that were added to the selection with given array of ranges. Last range of the array\n     * is treated like the last added range and is used to set {@link module:engine/model/selection~Selection#anchor} and\n     * {@link module:engine/model/selection~Selection#focus}. Accepts a flag describing in which direction the selection is made.\n     *\n     * @protected\n     * @fires change:range\n     * @param {Iterable.<module:engine/model/range~Range>} newRanges Ranges to set.\n     * @param {Boolean} [isLastBackward=false] Flag describing if last added range was selected forward - from start to end (`false`)\n     * or backward - from end to start (`true`).\n     */\n\n  }, {\n    key: \"_setRanges\",\n    value: function _setRanges(newRanges) {\n      var _this = this;\n\n      var isLastBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      newRanges = Array.from(newRanges); // Check whether there is any range in new ranges set that is different than all already added ranges.\n\n      var anyNewRange = newRanges.some(function (newRange) {\n        if (!(newRange instanceof Range)) {\n          /**\n           * Selection range set to an object that is not an instance of {@link module:engine/model/range~Range}.\n           *\n           * Only {@link module:engine/model/range~Range} instances can be used to set a selection.\n           * Common mistakes leading to this error are:\n           *\n           * * using DOM `Range` object,\n           * * incorrect CKEditor 5 installation with multiple `ckeditor5-engine` packages having different versions.\n           *\n           * @error model-selection-set-ranges-not-range\n           */\n          throw new CKEditorError('model-selection-set-ranges-not-range: ' + 'Selection range set to an object that is not an instance of model.Range.', [_this, newRanges]);\n        }\n\n        return _this._ranges.every(function (oldRange) {\n          return !oldRange.isEqual(newRange);\n        });\n      }); // Don't do anything if nothing changed.\n\n      if (newRanges.length === this._ranges.length && !anyNewRange) {\n        return;\n      }\n\n      this._removeAllRanges();\n\n      var _iterator6 = _createForOfIteratorHelper(newRanges),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var range = _step6.value;\n\n          this._pushRange(range);\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      this._lastRangeBackward = !!isLastBackward;\n      this.fire('change:range', {\n        directChange: true\n      });\n    }\n    /**\n     * Moves {@link module:engine/model/selection~Selection#focus} to the specified location.\n     *\n     * The location can be specified in the same form as\n     * {@link module:engine/model/writer~Writer#createPositionAt writer.createPositionAt()} parameters.\n     *\n     * @fires change:range\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"setFocus\",\n    value: function setFocus(itemOrPosition, offset) {\n      if (this.anchor === null) {\n        /**\n         * Cannot set selection focus if there are no ranges in selection.\n         *\n         * @error model-selection-setFocus-no-ranges\n         */\n        throw new CKEditorError('model-selection-setFocus-no-ranges: Cannot set selection focus if there are no ranges in selection.', [this, itemOrPosition]);\n      }\n\n      var newFocus = Position._createAt(itemOrPosition, offset);\n\n      if (newFocus.compareWith(this.focus) == 'same') {\n        return;\n      }\n\n      var anchor = this.anchor;\n\n      if (this._ranges.length) {\n        this._popRange();\n      }\n\n      if (newFocus.compareWith(anchor) == 'before') {\n        this._pushRange(new Range(newFocus, anchor));\n\n        this._lastRangeBackward = true;\n      } else {\n        this._pushRange(new Range(anchor, newFocus));\n\n        this._lastRangeBackward = false;\n      }\n\n      this.fire('change:range', {\n        directChange: true\n      });\n    }\n    /**\n     * Gets an attribute value for given key or `undefined` if that attribute is not set on the selection.\n     *\n     * @param {String} key Key of attribute to look for.\n     * @returns {*} Attribute value or `undefined`.\n     */\n\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(key) {\n      return this._attrs.get(key);\n    }\n    /**\n     * Returns iterable that iterates over this selection's attributes.\n     *\n     * Attributes are returned as arrays containing two items. First one is attribute key and second is attribute value.\n     * This format is accepted by native `Map` object and also can be passed in `Node` constructor.\n     *\n     * @returns {Iterable.<*>}\n     */\n\n  }, {\n    key: \"getAttributes\",\n    value: function getAttributes() {\n      return this._attrs.entries();\n    }\n    /**\n     * Returns iterable that iterates over this selection's attribute keys.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getAttributeKeys\",\n    value: function getAttributeKeys() {\n      return this._attrs.keys();\n    }\n    /**\n     * Checks if the selection has an attribute for given key.\n     *\n     * @param {String} key Key of attribute to check.\n     * @returns {Boolean} `true` if attribute with given key is set on selection, `false` otherwise.\n     */\n\n  }, {\n    key: \"hasAttribute\",\n    value: function hasAttribute(key) {\n      return this._attrs.has(key);\n    }\n    /**\n     * Removes an attribute with given key from the selection.\n     *\n     * If given attribute was set on the selection, fires the {@link #event:change:range} event with\n     * removed attribute key.\n     *\n     * @fires change:attribute\n     * @param {String} key Key of attribute to remove.\n     */\n\n  }, {\n    key: \"removeAttribute\",\n    value: function removeAttribute(key) {\n      if (this.hasAttribute(key)) {\n        this._attrs.delete(key);\n\n        this.fire('change:attribute', {\n          attributeKeys: [key],\n          directChange: true\n        });\n      }\n    }\n    /**\n     * Sets attribute on the selection. If attribute with the same key already is set, it's value is overwritten.\n     *\n     * If the attribute value has changed, fires the {@link #event:change:range} event with\n     * the attribute key.\n     *\n     * @fires change:attribute\n     * @param {String} key Key of attribute to set.\n     * @param {*} value Attribute value.\n     */\n\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(key, value) {\n      if (this.getAttribute(key) !== value) {\n        this._attrs.set(key, value);\n\n        this.fire('change:attribute', {\n          attributeKeys: [key],\n          directChange: true\n        });\n      }\n    }\n    /**\n     * Returns the selected element. {@link module:engine/model/element~Element Element} is considered as selected if there is only\n     * one range in the selection, and that range contains exactly one element.\n     * Returns `null` if there is no selected element.\n     *\n     * @returns {module:engine/model/element~Element|null}\n     */\n\n  }, {\n    key: \"getSelectedElement\",\n    value: function getSelectedElement() {\n      if (this.rangeCount !== 1) {\n        return null;\n      }\n\n      var range = this.getFirstRange();\n      var nodeAfterStart = range.start.nodeAfter;\n      var nodeBeforeEnd = range.end.nodeBefore;\n      return nodeAfterStart instanceof Element && nodeAfterStart == nodeBeforeEnd ? nodeAfterStart : null;\n    }\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\tselection.is( 'selection' ); // -> true\n     *\t\tselection.is( 'model:selection' ); // -> true\n     *\n     *\t\tselection.is( 'view:selection' ); // -> false\n     *\t\tselection.is( 'range' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'selection' || type == 'model:selection';\n    }\n    /**\n     * Gets elements of type {@link module:engine/model/schema~Schema#isBlock \"block\"} touched by the selection.\n     *\n     * This method's result can be used for example to apply block styling to all blocks covered by this selection.\n     *\n     * **Note:** `getSelectedBlocks()` returns blocks that are nested in other non-block elements\n     * but will not return blocks nested in other blocks.\n     *\n     * In this case the function will return exactly all 3 paragraphs (note: `<blockQuote>` is not a block itself):\n     *\n     *\t\t<paragraph>[a</paragraph>\n     *\t\t<blockQuote>\n     *\t\t\t<paragraph>b</paragraph>\n     *\t\t</blockQuote>\n     *\t\t<paragraph>c]d</paragraph>\n     *\n     * In this case the paragraph will also be returned, despite the collapsed selection:\n     *\n     *\t\t<paragraph>[]a</paragraph>\n     *\n     * In such a scenario, however, only blocks A, B & E will be returned as blocks C & D are nested in block B:\n     *\n     *\t\t[<blockA></blockA>\n     *\t\t<blockB>\n     *\t\t\t<blockC></blockC>\n     *\t\t\t<blockD></blockD>\n     *\t\t</blockB>\n     *\t\t<blockE></blockE>]\n     *\n     * If the selection is inside a block all the inner blocks (A & B) are returned:\n     *\n     * \t\t<block>\n     *\t\t\t<blockA>[a</blockA>\n     * \t\t\t<blockB>b]</blockB>\n     * \t\t</block>\n     *\n     * **Special case**: If a selection ends at the beginning of a block, that block is not returned as from user perspective\n     * this block wasn't selected. See [#984](https://github.com/ckeditor/ckeditor5-engine/issues/984) for more details.\n     *\n     *\t\t<paragraph>[a</paragraph>\n     *\t\t<paragraph>b</paragraph>\n     *\t\t<paragraph>]c</paragraph> // this block will not be returned\n     *\n     * @returns {Iterable.<module:engine/model/element~Element>}\n     */\n\n  }, {\n    key: \"getSelectedBlocks\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getSelectedBlocks() {\n      var visited, _iterator7, _step7, range, startBlock, _iterator8, _step8, value, block, endBlock;\n\n      return regeneratorRuntime.wrap(function getSelectedBlocks$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              visited = new WeakSet();\n              _iterator7 = _createForOfIteratorHelper(this.getRanges());\n              _context2.prev = 2;\n\n              _iterator7.s();\n\n            case 4:\n              if ((_step7 = _iterator7.n()).done) {\n                _context2.next = 35;\n                break;\n              }\n\n              range = _step7.value;\n              // Get start block of range in case of a collapsed range.\n              startBlock = getParentBlock(range.start, visited);\n\n              if (!(startBlock && isTopBlockInRange(startBlock, range))) {\n                _context2.next = 10;\n                break;\n              }\n\n              _context2.next = 10;\n              return startBlock;\n\n            case 10:\n              _iterator8 = _createForOfIteratorHelper(range.getWalker());\n              _context2.prev = 11;\n\n              _iterator8.s();\n\n            case 13:\n              if ((_step8 = _iterator8.n()).done) {\n                _context2.next = 21;\n                break;\n              }\n\n              value = _step8.value;\n              block = value.item;\n\n              if (!(value.type == 'elementEnd' && isUnvisitedTopBlock(block, visited, range))) {\n                _context2.next = 19;\n                break;\n              }\n\n              _context2.next = 19;\n              return block;\n\n            case 19:\n              _context2.next = 13;\n              break;\n\n            case 21:\n              _context2.next = 26;\n              break;\n\n            case 23:\n              _context2.prev = 23;\n              _context2.t0 = _context2[\"catch\"](11);\n\n              _iterator8.e(_context2.t0);\n\n            case 26:\n              _context2.prev = 26;\n\n              _iterator8.f();\n\n              return _context2.finish(26);\n\n            case 29:\n              endBlock = getParentBlock(range.end, visited); // #984. Don't return the end block if the range ends right at its beginning.\n\n              if (!(endBlock && !range.end.isTouching(Position._createAt(endBlock, 0)) && isTopBlockInRange(endBlock, range))) {\n                _context2.next = 33;\n                break;\n              }\n\n              _context2.next = 33;\n              return endBlock;\n\n            case 33:\n              _context2.next = 4;\n              break;\n\n            case 35:\n              _context2.next = 40;\n              break;\n\n            case 37:\n              _context2.prev = 37;\n              _context2.t1 = _context2[\"catch\"](2);\n\n              _iterator7.e(_context2.t1);\n\n            case 40:\n              _context2.prev = 40;\n\n              _iterator7.f();\n\n              return _context2.finish(40);\n\n            case 43:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, getSelectedBlocks, this, [[2, 37, 40, 43], [11, 23, 26, 29]]);\n    })\n    /**\n     * Checks whether the selection contains the entire content of the given element. This means that selection must start\n     * at a position {@link module:engine/model/position~Position#isTouching touching} the element's start and ends at position\n     * touching the element's end.\n     *\n     * By default, this method will check whether the entire content of the selection's current root is selected.\n     * Useful to check if e.g. the user has just pressed <kbd>Ctrl</kbd> + <kbd>A</kbd>.\n     *\n     * @param {module:engine/model/element~Element} [element=this.anchor.root]\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"containsEntireContent\",\n    value: function containsEntireContent() {\n      var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.anchor.root;\n\n      var limitStartPosition = Position._createAt(element, 0);\n\n      var limitEndPosition = Position._createAt(element, 'end');\n\n      return limitStartPosition.isTouching(this.getFirstPosition()) && limitEndPosition.isTouching(this.getLastPosition());\n    }\n    /**\n     * Adds given range to internal {@link #_ranges ranges array}. Throws an error\n     * if given range is intersecting with any range that is already stored in this selection.\n     *\n     * @protected\n     * @param {module:engine/model/range~Range} range Range to add.\n     */\n\n  }, {\n    key: \"_pushRange\",\n    value: function _pushRange(range) {\n      this._checkRange(range);\n\n      this._ranges.push(new Range(range.start, range.end));\n    }\n    /**\n     * Checks if given range intersects with ranges that are already in the selection. Throws an error if it does.\n     *\n     * @protected\n     * @param {module:engine/model/range~Range} range Range to check.\n     */\n\n  }, {\n    key: \"_checkRange\",\n    value: function _checkRange(range) {\n      for (var i = 0; i < this._ranges.length; i++) {\n        if (range.isIntersecting(this._ranges[i])) {\n          /**\n           * Trying to add a range that intersects with another range in the selection.\n           *\n           * @error model-selection-range-intersects\n           * @param {module:engine/model/range~Range} addedRange Range that was added to the selection.\n           * @param {module:engine/model/range~Range} intersectingRange Range in the selection that intersects with `addedRange`.\n           */\n          throw new CKEditorError('model-selection-range-intersects: Trying to add a range that intersects with another range in the selection.', [this, range], {\n            addedRange: range,\n            intersectingRange: this._ranges[i]\n          });\n        }\n      }\n    }\n    /**\n     * Deletes ranges from internal range array. Uses {@link #_popRange _popRange} to\n     * ensure proper ranges removal.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_removeAllRanges\",\n    value: function _removeAllRanges() {\n      while (this._ranges.length > 0) {\n        this._popRange();\n      }\n    }\n    /**\n     * Removes most recently added range from the selection.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_popRange\",\n    value: function _popRange() {\n      this._ranges.pop();\n    }\n    /**\n     * Fired when selection range(s) changed.\n     *\n     * @event change:range\n     * @param {Boolean} directChange In case of {@link module:engine/model/selection~Selection} class it is always set\n     * to `true` which indicates that the selection change was caused by a direct use of selection's API.\n     * The {@link module:engine/model/documentselection~DocumentSelection}, however, may change because its position\n     * was directly changed through the {@link module:engine/model/writer~Writer writer} or because its position was\n     * changed because the structure of the model has been changed (which means an indirect change).\n     * The indirect change does not occur in case of normal (detached) selections because they are \"static\" (as \"not live\")\n     * which mean that they are not updated once the document changes.\n     */\n\n    /**\n     * Fired when selection attribute changed.\n     *\n     * @event change:attribute\n     * @param {Boolean} directChange In case of {@link module:engine/model/selection~Selection} class it is always set\n     * to `true` which indicates that the selection change was caused by a direct use of selection's API.\n     * The {@link module:engine/model/documentselection~DocumentSelection}, however, may change because its attributes\n     * were directly changed through the {@link module:engine/model/writer~Writer writer} or because its position was\n     * changed in the model and its attributes were refreshed (which means an indirect change).\n     * The indirect change does not occur in case of normal (detached) selections because they are \"static\" (as \"not live\")\n     * which mean that they are not updated once the document changes.\n     * @param {Array.<String>} attributeKeys Array containing keys of attributes that changed.\n     */\n\n  }, {\n    key: \"anchor\",\n    get: function get() {\n      if (this._ranges.length > 0) {\n        var range = this._ranges[this._ranges.length - 1];\n        return this._lastRangeBackward ? range.end : range.start;\n      }\n\n      return null;\n    }\n    /**\n     * Selection focus. Focus is the position where the selection ends. If a user is making a selection\n     * by dragging the mouse, the focus is where the mouse cursor is.\n     *\n     * May be set to `null` if there are no ranges in the selection.\n     *\n     * @see #anchor\n     * @readonly\n     * @type {module:engine/model/position~Position|null}\n     */\n\n  }, {\n    key: \"focus\",\n    get: function get() {\n      if (this._ranges.length > 0) {\n        var range = this._ranges[this._ranges.length - 1];\n        return this._lastRangeBackward ? range.start : range.end;\n      }\n\n      return null;\n    }\n    /**\n     * Whether the selection is collapsed. Selection is collapsed when there is exactly one range in it\n     * and it is collapsed.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    get: function get() {\n      var length = this._ranges.length;\n\n      if (length === 1) {\n        return this._ranges[0].isCollapsed;\n      } else {\n        return false;\n      }\n    }\n    /**\n     * Returns the number of ranges in the selection.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"rangeCount\",\n    get: function get() {\n      return this._ranges.length;\n    }\n    /**\n     * Specifies whether the selection's {@link #focus} precedes the selection's {@link #anchor}.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isBackward\",\n    get: function get() {\n      return !this.isCollapsed && this._lastRangeBackward;\n    }\n  }]);\n\n  return Selection;\n}();\n\nexport { Selection as default };\nmix(Selection, EmitterMixin); // Checks whether the given element extends $block in the schema and has a parent (is not a root).\n// Marks it as already visited.\n\nfunction isUnvisitedBlock(element, visited) {\n  if (visited.has(element)) {\n    return false;\n  }\n\n  visited.add(element);\n  return element.document.model.schema.isBlock(element) && element.parent;\n} // Checks if the given element is a $block was not previously visited and is a top block in a range.\n\n\nfunction isUnvisitedTopBlock(element, visited, range) {\n  return isUnvisitedBlock(element, visited) && isTopBlockInRange(element, range);\n} // Finds the lowest element in position's ancestors which is a block.\n// It will search until first ancestor that is a limit element.\n// Marks all ancestors as already visited to not include any of them later on.\n\n\nfunction getParentBlock(position, visited) {\n  var schema = position.parent.document.model.schema;\n  var ancestors = position.parent.getAncestors({\n    parentFirst: true,\n    includeSelf: true\n  });\n  var hasParentLimit = false;\n  var block = ancestors.find(function (element) {\n    // Stop searching after first parent node that is limit element.\n    if (hasParentLimit) {\n      return false;\n    }\n\n    hasParentLimit = schema.isLimit(element);\n    return !hasParentLimit && isUnvisitedBlock(element, visited);\n  }); // Mark all ancestors of this position's parent, because find() might've stopped early and\n  // the found block may be a child of another block.\n\n  ancestors.forEach(function (element) {\n    return visited.add(element);\n  });\n  return block;\n} // Checks if the blocks is not nested in other block inside a range.\n//\n// @param {module:engine/model/elmenent~Element} block Block to check.\n// @param {module:engine/model/range~Range} range Range to check.\n\n\nfunction isTopBlockInRange(block, range) {\n  var parentBlock = findAncestorBlock(block);\n\n  if (!parentBlock) {\n    return true;\n  } // Add loose flag to check as parentRange can be equal to range.\n\n\n  var isParentInRange = range.containsRange(Range._createOn(parentBlock), true);\n  return !isParentInRange;\n} // Returns first ancestor block of a node.\n//\n// @param {module:engine/model/node~Node} node\n// @returns {module:engine/model/node~Node|undefined}\n\n\nfunction findAncestorBlock(node) {\n  var schema = node.document.model.schema;\n  var parent = node.parent;\n\n  while (parent) {\n    if (schema.isBlock(parent)) {\n      return parent;\n    }\n\n    parent = parent.parent;\n  }\n}\n/**\n * An entity that is used to set selection.\n *\n * See also {@link module:engine/model/selection~Selection#setTo}\n *\n * @typedef {\n *     module:engine/model/selection~Selection|\n *     module:engine/model/documentselection~DocumentSelection|\n *     module:engine/model/position~Position|\n *     module:engine/model/range~Range|\n *     module:engine/model/node~Node|\n *     Iterable.<module:engine/model/range~Range>|\n *     null\n * } module:engine/model/selection~Selectable\n */","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/text\n */\nimport Node from \"./node\";\n/**\n * Model text node. Type of {@link module:engine/model/node~Node node} that contains {@link module:engine/model/text~Text#data text data}.\n *\n * **Important:** see {@link module:engine/model/node~Node} to read about restrictions using `Text` and `Node` API.\n *\n * **Note:** keep in mind that `Text` instances might indirectly got removed from model tree when model is changed.\n * This happens when {@link module:engine/model/writer~Writer model writer} is used to change model and the text node is merged with\n * another text node. Then, both text nodes are removed and a new text node is inserted into the model. Because of\n * this behavior, keeping references to `Text` is not recommended. Instead, consider creating\n * {@link module:engine/model/liveposition~LivePosition live position} placed before the text node.\n *\n * @extends module:engine/model/node~Node\n */\n\nvar Text = /*#__PURE__*/function (_Node) {\n  _inherits(Text, _Node);\n\n  var _super = _createSuper(Text);\n\n  /**\n   * Creates a text node.\n   *\n   * **Note:** Constructor of this class shouldn't be used directly in the code.\n   * Use the {@link module:engine/model/writer~Writer#createText} method instead.\n   *\n   * @protected\n   * @param {String} data Node's text.\n   * @param {Object} [attrs] Node's attributes. See {@link module:utils/tomap~toMap} for a list of accepted values.\n   */\n  function Text(data, attrs) {\n    var _this;\n\n    _classCallCheck(this, Text);\n\n    _this = _super.call(this, attrs);\n    /**\n     * Text data contained in this text node.\n     *\n     * @protected\n     * @type {String}\n     */\n\n    _this._data = data || '';\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(Text, [{\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\ttext.is( 'text' ); // -> true\n     *\t\ttext.is( 'node' ); // -> true\n     *\t\ttext.is( 'model:text' ); // -> true\n     *\t\ttext.is( 'model:node' ); // -> true\n     *\n     *\t\ttext.is( 'view:text' ); // -> false\n     *\t\ttext.is( 'documentSelection' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type Type to check when `name` parameter is present.\n     * Otherwise, it acts like the `name` parameter.\n     * @returns {Boolean}\n     */\n    value: function is(type) {\n      return type == 'text' || type == 'model:text' || _get(_getPrototypeOf(Text.prototype), \"is\", this).call(this, type);\n    }\n    /**\n     * Converts `Text` instance to plain object and returns it.\n     *\n     * @returns {Object} `Text` instance converted to plain object.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = _get(_getPrototypeOf(Text.prototype), \"toJSON\", this).call(this);\n\n      json.data = this.data;\n      return json;\n    }\n    /**\n     * Creates a copy of this text node and returns it. Created text node has same text data and attributes as original text node.\n     *\n     * @protected\n     * @returns {module:engine/model/text~Text} `Text` instance created using given plain object.\n     */\n\n  }, {\n    key: \"_clone\",\n    value: function _clone() {\n      return new Text(this.data, this.getAttributes());\n    }\n    /**\n     * Creates a `Text` instance from given plain object (i.e. parsed JSON string).\n     *\n     * @param {Object} json Plain object to be converted to `Text`.\n     * @returns {module:engine/model/text~Text} `Text` instance created using given plain object.\n     */\n\n  }, {\n    key: \"offsetSize\",\n    get: function get() {\n      return this.data.length;\n    }\n    /**\n     * Returns a text data contained in the node.\n     *\n     * @readonly\n     * @type {String}\n     */\n\n  }, {\n    key: \"data\",\n    get: function get() {\n      return this._data;\n    }\n  }], [{\n    key: \"fromJSON\",\n    value: function fromJSON(json) {\n      return new Text(json.data, json.attributes);\n    }\n  }]);\n\n  return Text;\n}(Node);\n\nexport { Text as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/textproxy\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * `TextProxy` represents a part of {@link module:engine/model/text~Text text node}.\n *\n * Since {@link module:engine/model/position~Position positions} can be placed between characters of a text node,\n * {@link module:engine/model/range~Range ranges} may contain only parts of text nodes. When {@link module:engine/model/range~Range#getItems\n * getting items}\n * contained in such range, we need to represent a part of that text node, since returning the whole text node would be incorrect.\n * `TextProxy` solves this issue.\n *\n * `TextProxy` has an API similar to {@link module:engine/model/text~Text Text} and allows to do most of the common tasks performed\n * on model nodes.\n *\n * **Note:** Some `TextProxy` instances may represent whole text node, not just a part of it.\n * See {@link module:engine/model/textproxy~TextProxy#isPartial}.\n *\n * **Note:** `TextProxy` is not an instance of {@link module:engine/model/node~Node node}. Keep this in mind when using it as a\n * parameter of methods.\n *\n * **Note:** `TextProxy` is a readonly interface. If you want to perform changes on model data represented by a `TextProxy`\n * use {@link module:engine/model/writer~Writer model writer API}.\n *\n * **Note:** `TextProxy` instances are created on the fly, basing on the current state of model. Because of this, it is\n * highly unrecommended to store references to `TextProxy` instances. `TextProxy` instances are not refreshed when\n * model changes, so they might get invalidated. Instead, consider creating {@link module:engine/model/liveposition~LivePosition live\n * position}.\n *\n * `TextProxy` instances are created by {@link module:engine/model/treewalker~TreeWalker model tree walker}. You should not need to create\n * an instance of this class by your own.\n */\n\nvar TextProxy = /*#__PURE__*/function () {\n  /**\n   * Creates a text proxy.\n   *\n   * @protected\n   * @param {module:engine/model/text~Text} textNode Text node which part is represented by this text proxy.\n   * @param {Number} offsetInText Offset in {@link module:engine/model/textproxy~TextProxy#textNode text node} from which the text proxy\n   * starts.\n   * @param {Number} length Text proxy length, that is how many text node's characters, starting from `offsetInText` it represents.\n   * @constructor\n   */\n  function TextProxy(textNode, offsetInText, length) {\n    _classCallCheck(this, TextProxy);\n\n    /**\n     * Text node which part is represented by this text proxy.\n     *\n     * @readonly\n     * @member {module:engine/model/text~Text}\n     */\n    this.textNode = textNode;\n\n    if (offsetInText < 0 || offsetInText > textNode.offsetSize) {\n      /**\n       * Given `offsetInText` value is incorrect.\n       *\n       * @error model-textproxy-wrong-offsetintext\n       */\n      throw new CKEditorError('model-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.', this);\n    }\n\n    if (length < 0 || offsetInText + length > textNode.offsetSize) {\n      /**\n       * Given `length` value is incorrect.\n       *\n       * @error model-textproxy-wrong-length\n       */\n      throw new CKEditorError('model-textproxy-wrong-length: Given length value is incorrect.', this);\n    }\n    /**\n     * Text data represented by this text proxy.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n\n    this.data = textNode.data.substring(offsetInText, offsetInText + length);\n    /**\n     * Offset in {@link module:engine/model/textproxy~TextProxy#textNode text node} from which the text proxy starts.\n     *\n     * @readonly\n     * @member {Number}\n     */\n\n    this.offsetInText = offsetInText;\n  }\n  /**\n   * Offset at which this text proxy starts in it's parent.\n   *\n   * @see module:engine/model/node~Node#startOffset\n   * @readonly\n   * @type {Number}\n   */\n\n\n  _createClass(TextProxy, [{\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\ttextProxy.is( 'textProxy' ); // -> true\n     *\t\ttextProxy.is( 'model:textProxy' ); // -> true\n     *\n     *\t\ttextProxy.is( 'view:textProxy' ); // -> false\n     *\t\ttextProxy.is( 'range' ); // -> false\n     *\n     * {@link module:engine/model/node~Node#is Check the entire list of model objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n    value: function is(type) {\n      return type == 'textProxy' || type == 'model:textProxy';\n    }\n    /**\n     * Gets path to this text proxy.\n     *\n     * @see module:engine/model/node~Node#getPath\n     * @returns {Array.<Number>}\n     */\n\n  }, {\n    key: \"getPath\",\n    value: function getPath() {\n      var path = this.textNode.getPath();\n\n      if (path.length > 0) {\n        path[path.length - 1] += this.offsetInText;\n      }\n\n      return path;\n    }\n    /**\n     * Returns ancestors array of this text proxy.\n     *\n     * @param {Object} options Options object.\n     * @param {Boolean} [options.includeSelf=false] When set to `true` this text proxy will be also included in parent's array.\n     * @param {Boolean} [options.parentFirst=false] When set to `true`, array will be sorted from text proxy parent to root element,\n     * otherwise root element will be the first item in the array.\n     * @returns {Array} Array with ancestors.\n     */\n\n  }, {\n    key: \"getAncestors\",\n    value: function getAncestors() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n        includeSelf: false,\n        parentFirst: false\n      };\n      var ancestors = [];\n      var parent = options.includeSelf ? this : this.parent;\n\n      while (parent) {\n        ancestors[options.parentFirst ? 'push' : 'unshift'](parent);\n        parent = parent.parent;\n      }\n\n      return ancestors;\n    }\n    /**\n     * Checks if this text proxy has an attribute for given key.\n     *\n     * @param {String} key Key of attribute to check.\n     * @returns {Boolean} `true` if attribute with given key is set on text proxy, `false` otherwise.\n     */\n\n  }, {\n    key: \"hasAttribute\",\n    value: function hasAttribute(key) {\n      return this.textNode.hasAttribute(key);\n    }\n    /**\n     * Gets an attribute value for given key or `undefined` if that attribute is not set on text proxy.\n     *\n     * @param {String} key Key of attribute to look for.\n     * @returns {*} Attribute value or `undefined`.\n     */\n\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(key) {\n      return this.textNode.getAttribute(key);\n    }\n    /**\n     * Returns iterator that iterates over this node's attributes. Attributes are returned as arrays containing two\n     * items. First one is attribute key and second is attribute value.\n     *\n     * This format is accepted by native `Map` object and also can be passed in `Node` constructor.\n     *\n     * @returns {Iterable.<*>}\n     */\n\n  }, {\n    key: \"getAttributes\",\n    value: function getAttributes() {\n      return this.textNode.getAttributes();\n    }\n    /**\n     * Returns iterator that iterates over this node's attribute keys.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getAttributeKeys\",\n    value: function getAttributeKeys() {\n      return this.textNode.getAttributeKeys();\n    }\n  }, {\n    key: \"startOffset\",\n    get: function get() {\n      return this.textNode.startOffset !== null ? this.textNode.startOffset + this.offsetInText : null;\n    }\n    /**\n     * Offset size of this text proxy. Equal to the number of characters represented by the text proxy.\n     *\n     * @see module:engine/model/node~Node#offsetSize\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"offsetSize\",\n    get: function get() {\n      return this.data.length;\n    }\n    /**\n     * Offset at which this text proxy ends in it's parent.\n     *\n     * @see module:engine/model/node~Node#endOffset\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"endOffset\",\n    get: function get() {\n      return this.startOffset !== null ? this.startOffset + this.offsetSize : null;\n    }\n    /**\n     * Flag indicating whether `TextProxy` instance covers only part of the original {@link module:engine/model/text~Text text node}\n     * (`true`) or the whole text node (`false`).\n     *\n     * This is `false` when text proxy starts at the very beginning of {@link module:engine/model/textproxy~TextProxy#textNode textNode}\n     * ({@link module:engine/model/textproxy~TextProxy#offsetInText offsetInText} equals `0`) and text proxy sizes is equal to\n     * text node size.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isPartial\",\n    get: function get() {\n      return this.offsetSize !== this.textNode.offsetSize;\n    }\n    /**\n     * Parent of this text proxy, which is same as parent of text node represented by this text proxy.\n     *\n     * @readonly\n     * @type {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"parent\",\n    get: function get() {\n      return this.textNode.parent;\n    }\n    /**\n     * Root of this text proxy, which is same as root of text node represented by this text proxy.\n     *\n     * @readonly\n     * @type {module:engine/model/node~Node|module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      return this.textNode.root;\n    }\n    /**\n     * {@link module:engine/model/document~Document Document} that owns text node represented by this text proxy or `null` if the text node\n     * has no parent or is inside a {@link module:engine/model/documentfragment~DocumentFragment DocumentFragment}.\n     *\n     * @readonly\n     * @type {module:engine/model/document~Document|null}\n     */\n\n  }, {\n    key: \"document\",\n    get: function get() {\n      return this.textNode.document;\n    }\n  }]);\n\n  return TextProxy;\n}();\n\nexport { TextProxy as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/treewalker\n */\nimport Text from \"./text\";\nimport TextProxy from \"./textproxy\";\nimport Element from \"./element\";\nimport Position from \"./position\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Position iterator class. It allows to iterate forward and backward over the document.\n */\n\nvar TreeWalker = /*#__PURE__*/function () {\n  /**\n   * Creates a range iterator. All parameters are optional, but you have to specify either `boundaries` or `startPosition`.\n   *\n   * @constructor\n   * @param {Object} [options={}] Object with configuration.\n   * @param {'forward'|'backward'} [options.direction='forward'] Walking direction.\n   * @param {module:engine/model/range~Range} [options.boundaries=null] Range to define boundaries of the iterator.\n   * @param {module:engine/model/position~Position} [options.startPosition] Starting position.\n   * @param {Boolean} [options.singleCharacters=false] Flag indicating whether all consecutive characters with the same attributes\n   * should be returned one by one as multiple {@link module:engine/model/textproxy~TextProxy} (`true`) objects or as one\n   * {@link module:engine/model/textproxy~TextProxy} (`false`).\n   * @param {Boolean} [options.shallow=false] Flag indicating whether iterator should enter elements or not. If the\n   * iterator is shallow child nodes of any iterated node will not be returned along with `elementEnd` tag.\n   * @param {Boolean} [options.ignoreElementEnd=false] Flag indicating whether iterator should ignore `elementEnd`\n   * tags. If the option is true walker will not return a parent node of start position. If this option is `true`\n   * each {@link module:engine/model/element~Element} will be returned once, while if the option is `false` they might be returned\n   * twice: for `'elementStart'` and `'elementEnd'`.\n   */\n  function TreeWalker() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, TreeWalker);\n\n    if (!options.boundaries && !options.startPosition) {\n      /**\n       * Neither boundaries nor starting position of a `TreeWalker` have been defined.\n       *\n       * @error model-tree-walker-no-start-position\n       */\n      throw new CKEditorError('model-tree-walker-no-start-position: Neither boundaries nor starting position have been defined.', null);\n    }\n\n    var direction = options.direction || 'forward';\n\n    if (direction != 'forward' && direction != 'backward') {\n      throw new CKEditorError('model-tree-walker-unknown-direction: Only `backward` and `forward` direction allowed.', options, {\n        direction: direction\n      });\n    }\n    /**\n     * Walking direction. Defaults `'forward'`.\n     *\n     * @readonly\n     * @member {'backward'|'forward'} module:engine/model/treewalker~TreeWalker#direction\n     */\n\n\n    this.direction = direction;\n    /**\n     * Iterator boundaries.\n     *\n     * When the iterator is walking `'forward'` on the end of boundary or is walking `'backward'`\n     * on the start of boundary, then `{ done: true }` is returned.\n     *\n     * If boundaries are not defined they are set before first and after last child of the root node.\n     *\n     * @readonly\n     * @member {module:engine/model/range~Range} module:engine/model/treewalker~TreeWalker#boundaries\n     */\n\n    this.boundaries = options.boundaries || null;\n    /**\n     * Iterator position. This is always static position, even if the initial position was a\n     * {@link module:engine/model/liveposition~LivePosition live position}. If start position is not defined then position depends\n     * on {@link #direction}. If direction is `'forward'` position starts form the beginning, when direction\n     * is `'backward'` position starts from the end.\n     *\n     * @readonly\n     * @member {module:engine/model/position~Position} module:engine/model/treewalker~TreeWalker#position\n     */\n\n    if (options.startPosition) {\n      this.position = options.startPosition.clone();\n    } else {\n      this.position = Position._createAt(this.boundaries[this.direction == 'backward' ? 'end' : 'start']);\n    } // Reset position stickiness in case it was set to other value, as the stickiness is kept after cloning.\n\n\n    this.position.stickiness = 'toNone';\n    /**\n     * Flag indicating whether all consecutive characters with the same attributes should be\n     * returned as one {@link module:engine/model/textproxy~TextProxy} (`true`) or one by one (`false`).\n     *\n     * @readonly\n     * @member {Boolean} module:engine/model/treewalker~TreeWalker#singleCharacters\n     */\n\n    this.singleCharacters = !!options.singleCharacters;\n    /**\n     * Flag indicating whether iterator should enter elements or not. If the iterator is shallow child nodes of any\n     * iterated node will not be returned along with `elementEnd` tag.\n     *\n     * @readonly\n     * @member {Boolean} module:engine/model/treewalker~TreeWalker#shallow\n     */\n\n    this.shallow = !!options.shallow;\n    /**\n     * Flag indicating whether iterator should ignore `elementEnd` tags. If the option is true walker will not\n     * return a parent node of the start position. If this option is `true` each {@link module:engine/model/element~Element} will\n     * be returned once, while if the option is `false` they might be returned twice:\n     * for `'elementStart'` and `'elementEnd'`.\n     *\n     * @readonly\n     * @member {Boolean} module:engine/model/treewalker~TreeWalker#ignoreElementEnd\n     */\n\n    this.ignoreElementEnd = !!options.ignoreElementEnd;\n    /**\n     * Start boundary cached for optimization purposes.\n     *\n     * @private\n     * @member {module:engine/model/element~Element} module:engine/model/treewalker~TreeWalker#_boundaryStartParent\n     */\n\n    this._boundaryStartParent = this.boundaries ? this.boundaries.start.parent : null;\n    /**\n     * End boundary cached for optimization purposes.\n     *\n     * @private\n     * @member {module:engine/model/element~Element} module:engine/model/treewalker~TreeWalker#_boundaryEndParent\n     */\n\n    this._boundaryEndParent = this.boundaries ? this.boundaries.end.parent : null;\n    /**\n     * Parent of the most recently visited node. Cached for optimization purposes.\n     *\n     * @private\n     * @member {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment}\n     * module:engine/model/treewalker~TreeWalker#_visitedParent\n     */\n\n    this._visitedParent = this.position.parent;\n  }\n  /**\n   * Iterable interface.\n   *\n   * @returns {Iterable.<module:engine/model/treewalker~TreeWalkerValue>}\n   */\n\n\n  _createClass(TreeWalker, [{\n    key: Symbol.iterator,\n    value: function value() {\n      return this;\n    }\n    /**\n     * Moves {@link #position} in the {@link #direction} skipping values as long as the callback function returns `true`.\n     *\n     * For example:\n     *\n     * \t\twalker.skip( value => value.type == 'text' ); // <paragraph>[]foo</paragraph> -> <paragraph>foo[]</paragraph>\n     * \t\twalker.skip( () => true ); // Move the position to the end: <paragraph>[]foo</paragraph> -> <paragraph>foo</paragraph>[]\n     * \t\twalker.skip( () => false ); // Do not move the position.\n     *\n     * @param {Function} skip Callback function. Gets {@link module:engine/model/treewalker~TreeWalkerValue} and should\n     * return `true` if the value should be skipped or `false` if not.\n     */\n\n  }, {\n    key: \"skip\",\n    value: function skip(_skip) {\n      var done, value, prevPosition, prevVisitedParent;\n\n      do {\n        prevPosition = this.position;\n        prevVisitedParent = this._visitedParent;\n\n        var _this$next = this.next();\n\n        done = _this$next.done;\n        value = _this$next.value;\n      } while (!done && _skip(value));\n\n      if (!done) {\n        this.position = prevPosition;\n        this._visitedParent = prevVisitedParent;\n      }\n    }\n    /**\n     * Gets the next tree walker's value.\n     *\n     * @returns {module:engine/model/treewalker~TreeWalkerValue} Next tree walker's value.\n     */\n\n  }, {\n    key: \"next\",\n    value: function next() {\n      if (this.direction == 'forward') {\n        return this._next();\n      } else {\n        return this._previous();\n      }\n    }\n    /**\n     * Makes a step forward in model. Moves the {@link #position} to the next position and returns the encountered value.\n     *\n     * @private\n     * @returns {Object}\n     * @returns {Boolean} return.done True if iterator is done.\n     * @returns {module:engine/model/treewalker~TreeWalkerValue} return.value Information about taken step.\n     */\n\n  }, {\n    key: \"_next\",\n    value: function _next() {\n      var previousPosition = this.position;\n      var position = this.position.clone();\n      var parent = this._visitedParent; // We are at the end of the root.\n\n      if (parent.parent === null && position.offset === parent.maxOffset) {\n        return {\n          done: true\n        };\n      } // We reached the walker boundary.\n\n\n      if (parent === this._boundaryEndParent && position.offset == this.boundaries.end.offset) {\n        return {\n          done: true\n        };\n      }\n\n      var node = position.textNode ? position.textNode : position.nodeAfter;\n\n      if (node instanceof Element) {\n        if (!this.shallow) {\n          // Manual operations on path internals for optimization purposes. Here and in the rest of the method.\n          position.path.push(0);\n          this._visitedParent = node;\n        } else {\n          position.offset++;\n        }\n\n        this.position = position;\n        return formatReturnValue('elementStart', node, previousPosition, position, 1);\n      } else if (node instanceof Text) {\n        var charactersCount;\n\n        if (this.singleCharacters) {\n          charactersCount = 1;\n        } else {\n          var offset = node.endOffset;\n\n          if (this._boundaryEndParent == parent && this.boundaries.end.offset < offset) {\n            offset = this.boundaries.end.offset;\n          }\n\n          charactersCount = offset - position.offset;\n        }\n\n        var offsetInTextNode = position.offset - node.startOffset;\n        var item = new TextProxy(node, offsetInTextNode, charactersCount);\n        position.offset += charactersCount;\n        this.position = position;\n        return formatReturnValue('text', item, previousPosition, position, charactersCount);\n      } else {\n        // `node` is not set, we reached the end of current `parent`.\n        position.path.pop();\n        position.offset++;\n        this.position = position;\n        this._visitedParent = parent.parent;\n\n        if (this.ignoreElementEnd) {\n          return this._next();\n        } else {\n          return formatReturnValue('elementEnd', parent, previousPosition, position);\n        }\n      }\n    }\n    /**\n     * Makes a step backward in model. Moves the {@link #position} to the previous position and returns the encountered value.\n     *\n     * @private\n     * @returns {Object}\n     * @returns {Boolean} return.done True if iterator is done.\n     * @returns {module:engine/model/treewalker~TreeWalkerValue} return.value Information about taken step.\n     */\n\n  }, {\n    key: \"_previous\",\n    value: function _previous() {\n      var previousPosition = this.position;\n      var position = this.position.clone();\n      var parent = this._visitedParent; // We are at the beginning of the root.\n\n      if (parent.parent === null && position.offset === 0) {\n        return {\n          done: true\n        };\n      } // We reached the walker boundary.\n\n\n      if (parent == this._boundaryStartParent && position.offset == this.boundaries.start.offset) {\n        return {\n          done: true\n        };\n      } // Get node just before current position\n\n\n      var node = position.textNode ? position.textNode : position.nodeBefore;\n\n      if (node instanceof Element) {\n        position.offset--;\n\n        if (!this.shallow) {\n          position.path.push(node.maxOffset);\n          this.position = position;\n          this._visitedParent = node;\n\n          if (this.ignoreElementEnd) {\n            return this._previous();\n          } else {\n            return formatReturnValue('elementEnd', node, previousPosition, position);\n          }\n        } else {\n          this.position = position;\n          return formatReturnValue('elementStart', node, previousPosition, position, 1);\n        }\n      } else if (node instanceof Text) {\n        var charactersCount;\n\n        if (this.singleCharacters) {\n          charactersCount = 1;\n        } else {\n          var offset = node.startOffset;\n\n          if (this._boundaryStartParent == parent && this.boundaries.start.offset > offset) {\n            offset = this.boundaries.start.offset;\n          }\n\n          charactersCount = position.offset - offset;\n        }\n\n        var offsetInTextNode = position.offset - node.startOffset;\n        var item = new TextProxy(node, offsetInTextNode - charactersCount, charactersCount);\n        position.offset -= charactersCount;\n        this.position = position;\n        return formatReturnValue('text', item, previousPosition, position, charactersCount);\n      } else {\n        // `node` is not set, we reached the beginning of current `parent`.\n        position.path.pop();\n        this.position = position;\n        this._visitedParent = parent.parent;\n        return formatReturnValue('elementStart', parent, previousPosition, position, 1);\n      }\n    }\n  }]);\n\n  return TreeWalker;\n}();\n\nexport { TreeWalker as default };\n\nfunction formatReturnValue(type, item, previousPosition, nextPosition, length) {\n  return {\n    done: false,\n    value: {\n      type: type,\n      item: item,\n      previousPosition: previousPosition,\n      nextPosition: nextPosition,\n      length: length\n    }\n  };\n}\n/**\n * Type of the step made by {@link module:engine/model/treewalker~TreeWalker}.\n * Possible values: `'elementStart'` if walker is at the beginning of a node, `'elementEnd'` if walker is at the end of node,\n * `'character'` if walker traversed over a character, or `'text'` if walker traversed over multiple characters (available in\n * character merging mode, see {@link module:engine/model/treewalker~TreeWalker#constructor}).\n *\n * @typedef {'elementStart'|'elementEnd'|'character'|'text'} module:engine/model/treewalker~TreeWalkerValueType\n */\n\n/**\n * Object returned by {@link module:engine/model/treewalker~TreeWalker} when traversing tree model.\n *\n * @typedef {Object} module:engine/model/treewalker~TreeWalkerValue\n * @property {module:engine/model/treewalker~TreeWalkerValueType} type\n * @property {module:engine/model/item~Item} item Item between old and new positions of {@link module:engine/model/treewalker~TreeWalker}.\n * @property {module:engine/model/position~Position} previousPosition Previous position of the iterator.\n * * Forward iteration: For `'elementEnd'` it is the last position inside the element. For all other types it is the\n * position before the item.\n * * Backward iteration: For `'elementStart'` it is the first position inside the element. For all other types it is\n * the position after item.\n * @property {module:engine/model/position~Position} nextPosition Next position of the iterator.\n * * Forward iteration: For `'elementStart'` it is the first position inside the element. For all other types it is\n * the position after the item.\n * * Backward iteration: For `'elementEnd'` it is last position inside element. For all other types it is the position\n * before the item.\n * @property {Number} [length] Length of the item. For `'elementStart'` and `'character'` it is 1. For `'text'` it is\n * the length of the text. For `'elementEnd'` it is `undefined`.\n */\n\n/**\n * Tree walking directions.\n *\n * @typedef {'forward'|'backward'} module:engine/view/treewalker~TreeWalkerDirection\n */","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/utils/deletecontent\n */\nimport LivePosition from \"../liveposition\";\nimport Range from \"../range\";\nimport DocumentSelection from \"../documentselection\";\n/**\n * Deletes content of the selection and merge siblings. The resulting selection is always collapsed.\n *\n * **Note:** Use {@link module:engine/model/model~Model#deleteContent} instead of this function.\n * This function is only exposed to be reusable in algorithms\n * which change the {@link module:engine/model/model~Model#deleteContent}\n * method's behavior.\n *\n * @param {module:engine/model/model~Model} model The model in context of which the insertion\n * should be performed.\n * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n * Selection of which the content should be deleted.\n * @param {module:engine/model/batch~Batch} batch Batch to which the operations will be added.\n * @param {Object} [options]\n * @param {Boolean} [options.leaveUnmerged=false] Whether to merge elements after removing the content of the selection.\n *\n * For example `<heading>x[x</heading><paragraph>y]y</paragraph>` will become:\n *\n * * `<heading>x^y</heading>` with the option disabled (`leaveUnmerged == false`)\n * * `<heading>x^</heading><paragraph>y</paragraph>` with enabled (`leaveUnmerged == true`).\n *\n * Note: {@link module:engine/model/schema~Schema#isObject object} and {@link module:engine/model/schema~Schema#isLimit limit}\n * elements will not be merged.\n *\n * @param {Boolean} [options.doNotResetEntireContent=false] Whether to skip replacing the entire content with a\n * paragraph when the entire content was selected.\n *\n * For example `<heading>[x</heading><paragraph>y]</paragraph>` will become:\n *\n * * `<paragraph>^</paragraph>` with the option disabled (`doNotResetEntireContent == false`)\n * * `<heading>^</heading>` with enabled (`doNotResetEntireContent == true`).\n *\n * @param {Boolean} [options.doNotAutoparagraph=false] Whether to create a paragraph if after content deletion selection is moved\n * to a place where text cannot be inserted.\n *\n * For example `<paragraph>x</paragraph>[<image src=\"foo.jpg\"></image>]` will become:\n *\n * * `<paragraph>x</paragraph><paragraph>[]</paragraph>` with the option disabled (`doNotAutoparagraph == false`)\n * * `<paragraph>x[]</paragraph>` with the option enabled (`doNotAutoparagraph == true`).\n *\n * **Note:** if there is no valid position for the selection, the paragraph will always be created:\n *\n * `[<image src=\"foo.jpg\"></image>]` -> `<paragraph>[]</paragraph>`.\n */\n\nexport default function deleteContent(model, selection) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (selection.isCollapsed) {\n    return;\n  }\n\n  var selRange = selection.getFirstRange(); // If the selection is already removed, don't do anything.\n\n  if (selRange.root.rootName == '$graveyard') {\n    return;\n  }\n\n  var schema = model.schema;\n  model.change(function (writer) {\n    // 1. Replace the entire content with paragraph.\n    // See: https://github.com/ckeditor/ckeditor5-engine/issues/1012#issuecomment-315017594.\n    if (!options.doNotResetEntireContent && shouldEntireContentBeReplacedWithParagraph(schema, selection)) {\n      replaceEntireContentWithParagraph(writer, selection, schema);\n      return;\n    }\n\n    var startPos = selRange.start;\n    var endPos = LivePosition.fromPosition(selRange.end, 'toNext'); // 2. Remove the content if there is any.\n\n    if (!selRange.start.isTouching(selRange.end)) {\n      writer.remove(selRange);\n    } // 3. Merge elements in the right branch to the elements in the left branch.\n    // The only reasonable (in terms of data and selection correctness) case in which we need to do that is:\n    //\n    // <heading type=1>Fo[</heading><paragraph>]ar</paragraph> => <heading type=1>Fo^ar</heading>\n    //\n    // However, the algorithm supports also merging deeper structures (up to the depth of the shallower branch),\n    // as it's hard to imagine what should actually be the default behavior. Usually, specific features will\n    // want to override that behavior anyway.\n\n\n    if (!options.leaveUnmerged) {\n      mergeBranches(writer, startPos, endPos); // TMP this will be replaced with a postfixer.\n      // We need to check and strip disallowed attributes in all nested nodes because after merge\n      // some attributes could end up in a path where are disallowed.\n      //\n      // e.g. bold is disallowed for <H1>\n      // <h1>Fo{o</h1><p>b}a<b>r</b><p> -> <h1>Fo{}a<b>r</b><h1> -> <h1>Fo{}ar<h1>.\n\n      schema.removeDisallowedAttributes(startPos.parent.getChildren(), writer);\n    }\n\n    collapseSelectionAt(writer, selection, startPos); // 4. Add a paragraph to set selection in it.\n    // Check if a text is allowed in the new container. If not, try to create a new paragraph (if it's allowed here).\n\n    if (shouldAutoparagraph(schema, startPos)) {\n      // If auto-paragraphing is off, find the closest valid selection range and collapse the selection there.\n      // If there is no valid selection range, create paragraph anyway and set selection there.\n      var validSelectionRange = schema.getNearestSelectionRange(startPos);\n\n      if (options.doNotAutoparagraph && validSelectionRange) {\n        collapseSelectionAt(writer, selection, validSelectionRange);\n      } else {\n        insertParagraph(writer, startPos, selection);\n      }\n    }\n\n    endPos.detach();\n  });\n} // This function is a result of reaching the Ballmer's peak for just the right amount of time.\n// Even I had troubles documenting it after a while and after reading it again I couldn't believe that it really works.\n\nfunction mergeBranches(writer, startPos, endPos) {\n  var startParent = startPos.parent;\n  var endParent = endPos.parent; // If both positions ended up in the same parent, then there's nothing more to merge:\n  // <$root><p>x[]</p><p>{}y</p></$root> => <$root><p>xy</p>[]{}</$root>\n\n  if (startParent == endParent) {\n    return;\n  } // If one of the positions is a limit element, then there's nothing to merge because we don't want to cross the limit boundaries.\n\n\n  if (writer.model.schema.isLimit(startParent) || writer.model.schema.isLimit(endParent)) {\n    return;\n  } // Check if operations we'll need to do won't need to cross object or limit boundaries.\n  // E.g., we can't merge endParent into startParent in this case:\n  // <limit><startParent>x[]</startParent></limit><endParent>{}</endParent>\n\n\n  if (!checkCanBeMerged(startPos, endPos, writer.model.schema)) {\n    return;\n  } // Remember next positions to merge. For example:\n  // <a><b>x[]</b></a><c><d>{}y</d></c>\n  // will become:\n  // <a><b>xy</b>[]</a><c>{}</c>\n\n\n  startPos = writer.createPositionAfter(startParent);\n  endPos = writer.createPositionBefore(endParent);\n\n  if (!endPos.isEqual(startPos)) {\n    // In this case, before we merge, we need to move `endParent` to the `startPos`:\n    // <a><b>x[]</b></a><c><d>{}y</d></c>\n    // becomes:\n    // <a><b>x</b>[]<d>y</d></a><c>{}</c>\n    writer.insert(endParent, startPos);\n  } // Merge two siblings:\n  // <a>x</a>[]<b>y</b> -> <a>xy</a> (the usual case)\n  // <a><b>x</b>[]<d>y</d></a><c></c> -> <a><b>xy</b>[]</a><c></c> (this is the \"move parent\" case shown above)\n\n\n  writer.merge(startPos); // Remove empty end ancestors:\n  // <a>fo[o</a><b><a><c>bar]</c></a></b>\n  // becomes:\n  // <a>fo[]</a><b><a>{}</a></b>\n  // So we can remove <a> and <b>.\n\n  while (endPos.parent.isEmpty) {\n    var parentToRemove = endPos.parent;\n    endPos = writer.createPositionBefore(parentToRemove);\n    writer.remove(parentToRemove);\n  } // Continue merging next level.\n\n\n  mergeBranches(writer, startPos, endPos);\n}\n\nfunction shouldAutoparagraph(schema, position) {\n  var isTextAllowed = schema.checkChild(position, '$text');\n  var isParagraphAllowed = schema.checkChild(position, 'paragraph');\n  return !isTextAllowed && isParagraphAllowed;\n} // Check if parents of two positions can be merged by checking if there are no limit/object\n// boundaries between those two positions.\n//\n// E.g. in <bQ><p>x[]</p></bQ><widget><caption>{}</caption></widget>\n// we'll check <p>, <bQ>, <widget> and <caption>.\n// Usually, widget and caption are marked as objects/limits in the schema, so in this case merging will be blocked.\n\n\nfunction checkCanBeMerged(leftPos, rightPos, schema) {\n  var rangeToCheck = new Range(leftPos, rightPos);\n\n  var _iterator = _createForOfIteratorHelper(rangeToCheck.getWalker()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var value = _step.value;\n\n      if (schema.isLimit(value.item)) {\n        return false;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return true;\n}\n\nfunction insertParagraph(writer, position, selection) {\n  var paragraph = writer.createElement('paragraph');\n  writer.insert(paragraph, position);\n  collapseSelectionAt(writer, selection, writer.createPositionAt(paragraph, 0));\n}\n\nfunction replaceEntireContentWithParagraph(writer, selection) {\n  var limitElement = writer.model.schema.getLimitElement(selection);\n  writer.remove(writer.createRangeIn(limitElement));\n  insertParagraph(writer, writer.createPositionAt(limitElement, 0), selection);\n} // We want to replace the entire content with a paragraph when:\n// * the entire content is selected,\n// * selection contains at least two elements,\n// * whether the paragraph is allowed in schema in the common ancestor.\n\n\nfunction shouldEntireContentBeReplacedWithParagraph(schema, selection) {\n  var limitElement = schema.getLimitElement(selection);\n\n  if (!selection.containsEntireContent(limitElement)) {\n    return false;\n  }\n\n  var range = selection.getFirstRange();\n\n  if (range.start.parent == range.end.parent) {\n    return false;\n  }\n\n  return schema.checkChild(limitElement, 'paragraph');\n} // Helper function that sets the selection. Depending whether given `selection` is a document selection or not,\n// uses a different method to set it.\n\n\nfunction collapseSelectionAt(writer, selection, positionOrRange) {\n  if (selection instanceof DocumentSelection) {\n    writer.setSelection(positionOrRange);\n  } else {\n    selection.setTo(positionOrRange);\n  }\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/utils/getselectedcontent\n */\n\n/**\n * Gets a clone of the selected content.\n *\n * For example, for the following selection:\n *\n * ```html\n * <p>x</p><quote><p>y</p><h>fir[st</h></quote><p>se]cond</p><p>z</p>\n * ```\n *\n * It will return a document fragment with such a content:\n *\n * ```html\n * <quote><h>st</h></quote><p>se</p>\n * ```\n *\n * @param {module:engine/model/model~Model} model The model in context of which\n * the selection modification should be performed.\n * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n * The selection of which content will be returned.\n * @returns {module:engine/model/documentfragment~DocumentFragment}\n */\nexport default function getSelectedContent(model, selection) {\n  return model.change(function (writer) {\n    var frag = writer.createDocumentFragment();\n    var range = selection.getFirstRange();\n\n    if (!range || range.isCollapsed) {\n      return frag;\n    }\n\n    var root = range.start.root;\n    var commonPath = range.start.getCommonPath(range.end);\n    var commonParent = root.getNodeByPath(commonPath); // ## 1st step\n    //\n    // First, we'll clone a fragment represented by a minimal flat range\n    // containing the original range to be cloned.\n    // E.g. let's consider such a range:\n    //\n    // <p>x</p><quote><p>y</p><h>fir[st</h></quote><p>se]cond</p><p>z</p>\n    //\n    // A minimal flat range containing this one is:\n    //\n    // <p>x</p>[<quote><p>y</p><h>first</h></quote><p>second</p>]<p>z</p>\n    //\n    // We can easily clone this structure, preserving e.g. the <quote> element.\n\n    var flatSubtreeRange;\n\n    if (range.start.parent == range.end.parent) {\n      // The original range is flat, so take it.\n      flatSubtreeRange = range;\n    } else {\n      flatSubtreeRange = writer.createRange(writer.createPositionAt(commonParent, range.start.path[commonPath.length]), writer.createPositionAt(commonParent, range.end.path[commonPath.length] + 1));\n    }\n\n    var howMany = flatSubtreeRange.end.offset - flatSubtreeRange.start.offset; // Clone the whole contents.\n\n    var _iterator = _createForOfIteratorHelper(flatSubtreeRange.getItems({\n      shallow: true\n    })),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var item = _step.value;\n\n        if (item.is('textProxy')) {\n          writer.appendText(item.data, item.getAttributes(), frag);\n        } else {\n          writer.append(item._clone(true), frag);\n        }\n      } // ## 2nd step\n      //\n      // If the original range wasn't flat, then we need to remove the excess nodes from the both ends of the cloned fragment.\n      //\n      // For example, for the range shown in the 1st step comment, we need to remove these pieces:\n      //\n      // <quote>[<p>y</p>]<h>[fir]st</h></quote><p>se[cond]</p>\n      //\n      // So this will be the final copied content:\n      //\n      // <quote><h>st</h></quote><p>se</p>\n      //\n      // In order to do that, we remove content from these two ranges:\n      //\n      // [<quote><p>y</p><h>fir]st</h></quote><p>se[cond</p>]\n\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    if (flatSubtreeRange != range) {\n      // Find the position of the original range in the cloned fragment.\n      var newRange = range._getTransformedByMove(flatSubtreeRange.start, writer.createPositionAt(frag, 0), howMany)[0];\n\n      var leftExcessRange = writer.createRange(writer.createPositionAt(frag, 0), newRange.start);\n      var rightExcessRange = writer.createRange(newRange.end, writer.createPositionAt(frag, 'end'));\n      removeRangeContent(rightExcessRange, writer);\n      removeRangeContent(leftExcessRange, writer);\n    }\n\n    return frag;\n  });\n} // After https://github.com/ckeditor/ckeditor5-engine/issues/690 is fixed,\n// this function will, most likely, be able to rewritten using getMinimalFlatRanges().\n\nfunction removeRangeContent(range, writer) {\n  var parentsToCheck = [];\n  Array.from(range.getItems({\n    direction: 'backward'\n  })) // We should better store ranges because text proxies will lose integrity\n  // with the text nodes when we'll start removing content.\n  .map(function (item) {\n    return writer.createRangeOn(item);\n  }) // Filter only these items which are fully contained in the passed range.\n  //\n  // E.g. for the following range: [<quote><p>y</p><h>fir]st</h>\n  // the walker will return the entire <h> element, when only the \"fir\" item inside it is fully contained.\n  .filter(function (itemRange) {\n    // We should be able to use Range.containsRange, but https://github.com/ckeditor/ckeditor5-engine/issues/691.\n    var contained = (itemRange.start.isAfter(range.start) || itemRange.start.isEqual(range.start)) && (itemRange.end.isBefore(range.end) || itemRange.end.isEqual(range.end));\n    return contained;\n  }).forEach(function (itemRange) {\n    parentsToCheck.push(itemRange.start.parent);\n    writer.remove(itemRange);\n  }); // Remove ancestors of the removed items if they turned to be empty now\n  // (their whole content was contained in the range).\n\n  parentsToCheck.forEach(function (parentToCheck) {\n    var parent = parentToCheck;\n\n    while (parent.parent && parent.isEmpty) {\n      var removeRange = writer.createRangeOn(parent);\n      parent = parent.parent;\n      writer.remove(removeRange);\n    }\n  });\n}","import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/utils/insertcontent\n */\nimport Position from \"../position\";\nimport LivePosition from \"../liveposition\";\nimport Element from \"../element\";\nimport Range from \"../range\";\nimport DocumentSelection from \"../documentselection\";\nimport Selection from \"../selection\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Inserts content into the editor (specified selection) as one would expect the paste\n * functionality to work.\n *\n * If an instance of {@link module:engine/model/selection~Selection} is passed as `selectable` it will be modified\n * to the insertion selection (equal to a range to be selected after insertion).\n *\n * If `selectable` is not passed, the content will be inserted using the current selection of the model document.\n *\n * **Note:** Use {@link module:engine/model/model~Model#insertContent} instead of this function.\n * This function is only exposed to be reusable in algorithms which change the {@link module:engine/model/model~Model#insertContent}\n * method's behavior.\n *\n * @param {module:engine/model/model~Model} model The model in context of which the insertion\n * should be performed.\n * @param {module:engine/model/documentfragment~DocumentFragment|module:engine/model/item~Item} content The content to insert.\n * @param {module:engine/model/selection~Selectable} [selectable=model.document.selection]\n * Selection into which the content should be inserted.\n * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n * @returns {module:engine/model/range~Range} Range which contains all the performed changes. This is a range that, if removed,\n * would return the model to the state before the insertion. If no changes were preformed by `insertContent`, returns a range collapsed\n * at the insertion position.\n */\n\nexport default function insertContent(model, content, selectable, placeOrOffset) {\n  return model.change(function (writer) {\n    var selection;\n\n    if (!selectable) {\n      selection = model.document.selection;\n    } else if (selectable instanceof Selection || selectable instanceof DocumentSelection) {\n      selection = selectable;\n    } else {\n      selection = writer.createSelection(selectable, placeOrOffset);\n    }\n\n    var insertionPosition = selection.getFirstPosition();\n\n    if (!selection.isCollapsed) {\n      model.deleteContent(selection, {\n        doNotAutoparagraph: true\n      });\n    }\n\n    var insertion = new Insertion(model, writer, insertionPosition);\n    var nodesToInsert;\n\n    if (content.is('documentFragment')) {\n      nodesToInsert = content.getChildren();\n    } else {\n      nodesToInsert = [content];\n    }\n\n    insertion.handleNodes(nodesToInsert, {\n      // The set of children being inserted is the only set in this context\n      // so it's the first and last (it's a hack ;)).\n      isFirst: true,\n      isLast: true\n    });\n    var newRange = insertion.getSelectionRange();\n    /* istanbul ignore else */\n\n    if (newRange) {\n      if (selection instanceof DocumentSelection) {\n        writer.setSelection(newRange);\n      } else {\n        selection.setTo(newRange);\n      }\n    } else {// We are not testing else because it's a safe check for unpredictable edge cases:\n      // an insertion without proper range to select.\n      //\n      // @if CK_DEBUG // console.warn( 'Cannot determine a proper selection range after insertion.' );\n    }\n\n    var affectedRange = insertion.getAffectedRange() || model.createRange(insertionPosition);\n    insertion.destroy();\n    return affectedRange;\n  });\n}\n/**\n * Utility class for performing content insertion.\n *\n * @private\n */\n\nvar Insertion = /*#__PURE__*/function () {\n  function Insertion(model, writer, position) {\n    _classCallCheck(this, Insertion);\n\n    /**\n     * The model in context of which the insertion should be performed.\n     *\n     * @member {module:engine/model~Model} #model\n     */\n    this.model = model;\n    /**\n     * Batch to which operations will be added.\n     *\n     * @member {module:engine/controller/writer~Batch} #writer\n     */\n\n    this.writer = writer;\n    /**\n     * The position at which (or near which) the next node will be inserted.\n     *\n     * @member {module:engine/model/position~Position} #position\n     */\n\n    this.position = position;\n    /**\n     * Elements with which the inserted elements can be merged.\n     *\n     *\t\t<p>x^</p><p>y</p> + <p>z</p> (can merge to <p>x</p>)\n     *\t\t<p>x</p><p>^y</p> + <p>z</p> (can merge to <p>y</p>)\n     *\t\t<p>x^y</p> + <p>z</p> (can merge to <p>xy</p> which will be split during the action,\n     *\t\t\t\t\t\t\t\tso both its pieces will be added to this set)\n     *\n     *\n     * @member {Set} #canMergeWith\n     */\n\n    this.canMergeWith = new Set([this.position.parent]);\n    /**\n     * Schema of the model.\n     *\n     * @member {module:engine/model/schema~Schema} #schema\n     */\n\n    this.schema = model.schema;\n    this._filterAttributesOf = [];\n    /**\n     * Beginning of the affected range. See {@link module:engine/model/utils/insertcontent~Insertion#getAffectedRange}.\n     *\n     * @private\n     * @member {module:engine/model/liveposition~LivePosition|null} #_affectedStart\n     */\n\n    this._affectedStart = null;\n    /**\n     * End of the affected range. See {@link module:engine/model/utils/insertcontent~Insertion#getAffectedRange}.\n     *\n     * @private\n     * @member {module:engine/model/liveposition~LivePosition|null} #_affectedEnd\n     */\n\n    this._affectedEnd = null;\n  }\n  /**\n   * Handles insertion of a set of nodes.\n   *\n   * @param {Iterable.<module:engine/model/node~Node>} nodes Nodes to insert.\n   * @param {Object} parentContext Context in which parent of these nodes was supposed to be inserted.\n   * If the parent context is passed it means that the parent element was stripped (was not allowed).\n   */\n\n\n  _createClass(Insertion, [{\n    key: \"handleNodes\",\n    value: function handleNodes(nodes, parentContext) {\n      nodes = Array.from(nodes);\n\n      for (var i = 0; i < nodes.length; i++) {\n        var node = nodes[i];\n\n        this._handleNode(node, {\n          isFirst: i === 0 && parentContext.isFirst,\n          isLast: i === nodes.length - 1 && parentContext.isLast\n        });\n      } // TMP this will become a post-fixer.\n\n\n      this.schema.removeDisallowedAttributes(this._filterAttributesOf, this.writer);\n      this._filterAttributesOf = [];\n    }\n    /**\n     * Returns range to be selected after insertion.\n     * Returns `null` if there is no valid range to select after insertion.\n     *\n     * @returns {module:engine/model/range~Range|null}\n     */\n\n  }, {\n    key: \"getSelectionRange\",\n    value: function getSelectionRange() {\n      if (this.nodeToSelect) {\n        return Range._createOn(this.nodeToSelect);\n      }\n\n      return this.model.schema.getNearestSelectionRange(this.position);\n    }\n    /**\n     * Returns a range which contains all the performed changes. This is a range that, if removed, would return the model to the state\n     * before the insertion. Returns `null` if no changes were done.\n     *\n     * @returns {module:engine/model/range~Range|null}\n     */\n\n  }, {\n    key: \"getAffectedRange\",\n    value: function getAffectedRange() {\n      if (!this._affectedStart) {\n        return null;\n      }\n\n      return new Range(this._affectedStart, this._affectedEnd);\n    }\n    /**\n     * Destroys `Insertion` instance.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      if (this._affectedStart) {\n        this._affectedStart.detach();\n      }\n\n      if (this._affectedEnd) {\n        this._affectedEnd.detach();\n      }\n    }\n    /**\n     * Handles insertion of a single node.\n     *\n     * @private\n     * @param {module:engine/model/node~Node} node\n     * @param {Object} context\n     * @param {Boolean} context.isFirst Whether the given node is the first one in the content to be inserted.\n     * @param {Boolean} context.isLast Whether the given node is the last one in the content to be inserted.\n     */\n\n  }, {\n    key: \"_handleNode\",\n    value: function _handleNode(node, context) {\n      // Let's handle object in a special way.\n      // * They should never be merged with other elements.\n      // * If they are not allowed in any of the selection ancestors, they could be either autoparagraphed or totally removed.\n      if (this.schema.isObject(node)) {\n        this._handleObject(node, context);\n\n        return;\n      } // Try to find a place for the given node.\n      // Split the position.parent's branch up to a point where the node can be inserted.\n      // If it isn't allowed in the whole branch, then of course don't split anything.\n\n\n      var isAllowed = this._checkAndSplitToAllowedPosition(node, context);\n\n      if (!isAllowed) {\n        this._handleDisallowedNode(node, context);\n\n        return;\n      }\n\n      this._insert(node); // After the node was inserted we may try to merge it with its siblings.\n      // This should happen only if it was the first and/or last of the nodes (so only with boundary nodes)\n      // and only if the selection was in those elements initially.\n      //\n      // E.g.:\n      // <p>x^</p> + <p>y</p> => <p>x</p><p>y</p> => <p>xy[]</p>\n      // and:\n      // <p>x^y</p> + <p>z</p> => <p>x</p>^<p>y</p> + <p>z</p> => <p>x</p><p>z</p><p>y</p> => <p>xz[]y</p>\n      // but:\n      // <p>x</p><p>^</p><p>z</p> + <p>y</p> => <p>x</p><p>y</p><p>z</p> (no merging)\n      // <p>x</p>[<img>]<p>z</p> + <p>y</p> => <p>x</p><p>y</p><p>z</p> (no merging, note: after running deleteContents\n      //\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t it's exactly the same case as above)\n\n\n      this._mergeSiblingsOf(node, context);\n    }\n    /**\n     * @private\n     * @param {module:engine/model/element~Element} node The object element.\n     * @param {Object} context\n     */\n\n  }, {\n    key: \"_handleObject\",\n    value: function _handleObject(node, context) {\n      // Try finding it a place in the tree.\n      if (this._checkAndSplitToAllowedPosition(node)) {\n        this._insert(node);\n      } // Try autoparagraphing.\n      else {\n          this._tryAutoparagraphing(node, context);\n        }\n    }\n    /**\n     * @private\n     * @param {module:engine/model/node~Node} node The disallowed node which needs to be handled.\n     * @param {Object} context\n     */\n\n  }, {\n    key: \"_handleDisallowedNode\",\n    value: function _handleDisallowedNode(node, context) {\n      // If the node is an element, try inserting its children (strip the parent).\n      if (node.is('element')) {\n        this.handleNodes(node.getChildren(), context);\n      } // If text is not allowed, try autoparagraphing it.\n      else {\n          this._tryAutoparagraphing(node, context);\n        }\n    }\n    /**\n     * @private\n     * @param {module:engine/model/node~Node} node The node to insert.\n     */\n\n  }, {\n    key: \"_insert\",\n    value: function _insert(node) {\n      /* istanbul ignore if */\n      if (!this.schema.checkChild(this.position, node)) {\n        // Algorithm's correctness check. We should never end up here but it's good to know that we did.\n        // Note that it would often be a silent issue if we insert node in a place where it's not allowed.\n\n        /**\n         * Given node cannot be inserted on the given position.\n         *\n         * @error insertcontent-wrong-position\n         * @param {module:engine/model/node~Node} node Node to insert.\n         * @param {module:engine/model/position~Position} position Position to insert the node at.\n         */\n        throw new CKEditorError('insertcontent-wrong-position: Given node cannot be inserted on the given position.', this, {\n          node: node,\n          position: this.position\n        });\n      }\n\n      var livePos = LivePosition.fromPosition(this.position, 'toNext');\n\n      this._setAffectedBoundaries(this.position);\n\n      this.writer.insert(node, this.position);\n      this.position = livePos.toPosition();\n      livePos.detach(); // The last inserted object should be selected because we can't put a collapsed selection after it.\n\n      if (this.schema.isObject(node) && !this.schema.checkChild(this.position, '$text')) {\n        this.nodeToSelect = node;\n      } else {\n        this.nodeToSelect = null;\n      }\n\n      this._filterAttributesOf.push(node);\n    }\n    /**\n     * Sets `_affectedStart` and `_affectedEnd` to the given `position`. Should be used before a change is done during insertion process to\n     * mark the affected range.\n     *\n     * This method is used before inserting a node or splitting a parent node. `_affectedStart` and `_affectedEnd` are also changed\n     * during merging, but the logic there is more complicated so it is left out of this function.\n     *\n     * @private\n     * @param {module:engine/model/position~Position} position\n     */\n\n  }, {\n    key: \"_setAffectedBoundaries\",\n    value: function _setAffectedBoundaries(position) {\n      // Set affected boundaries stickiness so that those position will \"expand\" when something is inserted in between them:\n      // <paragraph>Foo][bar</paragraph> -> <paragraph>Foo]xx[bar</paragraph>\n      // This is why it cannot be a range but two separate positions.\n      if (!this._affectedStart) {\n        this._affectedStart = LivePosition.fromPosition(position, 'toPrevious');\n      } // If `_affectedEnd` is before the new boundary position, expand `_affectedEnd`. This can happen if first inserted node was\n      // inserted into the parent but the next node is moved-out of that parent:\n      // (1) <paragraph>Foo][</paragraph> -> <paragraph>Foo]xx[</paragraph>\n      // (2) <paragraph>Foo]xx[</paragraph> -> <paragraph>Foo]xx</paragraph><widget></widget>[\n\n\n      if (!this._affectedEnd || this._affectedEnd.isBefore(position)) {\n        if (this._affectedEnd) {\n          this._affectedEnd.detach();\n        }\n\n        this._affectedEnd = LivePosition.fromPosition(position, 'toNext');\n      }\n    }\n    /**\n     * @private\n     * @param {module:engine/model/node~Node} node The node which could potentially be merged.\n     * @param {Object} context\n     */\n\n  }, {\n    key: \"_mergeSiblingsOf\",\n    value: function _mergeSiblingsOf(node, context) {\n      if (!(node instanceof Element)) {\n        return;\n      }\n\n      var mergeLeft = this._canMergeLeft(node, context);\n\n      var mergeRight = this._canMergeRight(node, context);\n\n      var mergePosLeft = LivePosition._createBefore(node);\n\n      mergePosLeft.stickiness = 'toNext';\n\n      var mergePosRight = LivePosition._createAfter(node);\n\n      mergePosRight.stickiness = 'toNext';\n\n      if (mergeLeft) {\n        var livePosition = LivePosition.fromPosition(this.position);\n        livePosition.stickiness = 'toNext'; // If `_affectedStart` is sames as merge position, it means that the element \"marked\" by `_affectedStart` is going to be\n        // removed and its contents will be moved. This won't transform `LivePosition` so `_affectedStart` needs to be moved\n        // by hand to properly reflect affected range. (Due to `_affectedStart` and `_affectedEnd` stickiness, the \"range\" is\n        // shown as `][`).\n        //\n        // Example - insert `<paragraph>Abc</paragraph><paragraph>Xyz</paragraph>` at the end of `<paragraph>Foo^</paragraph>`:\n        //\n        // <paragraph>Foo</paragraph><paragraph>Bar</paragraph>   -->\n        // <paragraph>Foo</paragraph>]<paragraph>Abc</paragraph><paragraph>Xyz</paragraph>[<paragraph>Bar</paragraph>   -->\n        // <paragraph>Foo]Abc</paragraph><paragraph>Xyz</paragraph>[<paragraph>Bar</paragraph>\n        //\n        // Note, that if we are here then something must have been inserted, so `_affectedStart` and `_affectedEnd` have to be set.\n\n        if (this._affectedStart.isEqual(mergePosLeft)) {\n          this._affectedStart.detach();\n\n          this._affectedStart = LivePosition._createAt(mergePosLeft.nodeBefore, 'end', 'toPrevious');\n        }\n\n        this.writer.merge(mergePosLeft); // If only one element (the merged one) is in the \"affected range\", also move the affected range end appropriately.\n        //\n        // Example - insert `<paragraph>Abc</paragraph>` at the of `<paragraph>Foo^</paragraph>`:\n        //\n        // <paragraph>Foo</paragraph><paragraph>Bar</paragraph>   -->\n        // <paragraph>Foo</paragraph>]<paragraph>Abc</paragraph>[<paragraph>Bar</paragraph>   -->\n        // <paragraph>Foo]Abc</paragraph>[<paragraph>Bar</paragraph>   -->\n        // <paragraph>Foo]Abc[</paragraph><paragraph>Bar</paragraph>\n\n        if (mergePosLeft.isEqual(this._affectedEnd) && context.isLast) {\n          this._affectedEnd.detach();\n\n          this._affectedEnd = LivePosition._createAt(mergePosLeft.nodeBefore, 'end', 'toNext');\n        }\n\n        this.position = livePosition.toPosition();\n        livePosition.detach();\n      }\n\n      if (mergeRight) {\n        /* istanbul ignore if */\n        if (!this.position.isEqual(mergePosRight)) {\n          // Algorithm's correctness check. We should never end up here but it's good to know that we did.\n          // At this point the insertion position should be after the node we'll merge. If it isn't,\n          // it should need to be secured as in the left merge case.\n\n          /**\n           * An internal error occured during merging insertion content with siblings.\n           * The insertion position should equal to the merge position.\n           *\n           * @error insertcontent-invalid-insertion-position\n           */\n          throw new CKEditorError('insertcontent-invalid-insertion-position', this);\n        } // Move the position to the previous node, so it isn't moved to the graveyard on merge.\n        // <p>x</p>[]<p>y</p> => <p>x[]</p><p>y</p>\n\n\n        this.position = Position._createAt(mergePosRight.nodeBefore, 'end'); // OK:  <p>xx[]</p> + <p>yy</p> => <p>xx[]yy</p> (when sticks to previous)\n        // NOK: <p>xx[]</p> + <p>yy</p> => <p>xxyy[]</p> (when sticks to next)\n\n        var _livePosition = LivePosition.fromPosition(this.position, 'toPrevious'); // See comment above on moving `_affectedStart`.\n\n\n        if (this._affectedEnd.isEqual(mergePosRight)) {\n          this._affectedEnd.detach();\n\n          this._affectedEnd = LivePosition._createAt(mergePosRight.nodeBefore, 'end', 'toNext');\n        }\n\n        this.writer.merge(mergePosRight); // See comment above on moving `_affectedStart`.\n\n        if (mergePosRight.getShiftedBy(-1).isEqual(this._affectedStart) && context.isFirst) {\n          this._affectedStart.detach();\n\n          this._affectedStart = LivePosition._createAt(mergePosRight.nodeBefore, 0, 'toPrevious');\n        }\n\n        this.position = _livePosition.toPosition();\n\n        _livePosition.detach();\n      }\n\n      if (mergeLeft || mergeRight) {\n        // After merge elements that were marked by _insert() to be filtered might be gone so\n        // we need to mark the new container.\n        this._filterAttributesOf.push(this.position.parent);\n      }\n\n      mergePosLeft.detach();\n      mergePosRight.detach();\n    }\n    /**\n     * Checks whether specified node can be merged with previous sibling element.\n     *\n     * @private\n     * @param {module:engine/model/node~Node} node The node which could potentially be merged.\n     * @param {Object} context\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_canMergeLeft\",\n    value: function _canMergeLeft(node, context) {\n      var previousSibling = node.previousSibling;\n      return context.isFirst && previousSibling instanceof Element && this.canMergeWith.has(previousSibling) && this.model.schema.checkMerge(previousSibling, node);\n    }\n    /**\n     * Checks whether specified node can be merged with next sibling element.\n     *\n     * @private\n     * @param {module:engine/model/node~Node} node The node which could potentially be merged.\n     * @param {Object} context\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_canMergeRight\",\n    value: function _canMergeRight(node, context) {\n      var nextSibling = node.nextSibling;\n      return context.isLast && nextSibling instanceof Element && this.canMergeWith.has(nextSibling) && this.model.schema.checkMerge(node, nextSibling);\n    }\n    /**\n     * Tries wrapping the node in a new paragraph and inserting it this way.\n     *\n     * @private\n     * @param {module:engine/model/node~Node} node The node which needs to be autoparagraphed.\n     * @param {Object} context\n     */\n\n  }, {\n    key: \"_tryAutoparagraphing\",\n    value: function _tryAutoparagraphing(node, context) {\n      var paragraph = this.writer.createElement('paragraph'); // Do not autoparagraph if the paragraph won't be allowed there,\n      // cause that would lead to an infinite loop. The paragraph would be rejected in\n      // the next _handleNode() call and we'd be here again.\n\n      if (this._getAllowedIn(paragraph, this.position.parent) && this.schema.checkChild(paragraph, node)) {\n        paragraph._appendChild(node);\n\n        this._handleNode(paragraph, context);\n      }\n    }\n    /**\n     * @private\n     * @param {module:engine/model/node~Node} node\n     * @returns {Boolean} Whether an allowed position was found.\n     * `false` is returned if the node isn't allowed at any position up in the tree, `true` if was.\n     */\n\n  }, {\n    key: \"_checkAndSplitToAllowedPosition\",\n    value: function _checkAndSplitToAllowedPosition(node) {\n      var allowedIn = this._getAllowedIn(node, this.position.parent);\n\n      if (!allowedIn) {\n        return false;\n      }\n\n      while (allowedIn != this.position.parent) {\n        // If a parent which we'd need to leave is a limit element, break.\n        if (this.schema.isLimit(this.position.parent)) {\n          return false;\n        }\n\n        if (this.position.isAtStart) {\n          // If insertion position is at the beginning of the parent, move it out instead of splitting.\n          // <p>^Foo</p> -> ^<p>Foo</p>\n          var parent = this.position.parent;\n          this.position = this.writer.createPositionBefore(parent); // Special case – parent is empty (<p>^</p>).\n          //\n          // 1. parent.isEmpty\n          // We can remove the element after moving insertion position out of it.\n          //\n          // 2. parent.parent === allowedIn\n          // However parent should remain in place when allowed element is above limit element in document tree.\n          // For example there shouldn't be allowed to remove empty paragraph from tableCell, when is pasted\n          // content allowed in $root.\n\n          if (parent.isEmpty && parent.parent === allowedIn) {\n            this.writer.remove(parent);\n          }\n        } else if (this.position.isAtEnd) {\n          // If insertion position is at the end of the parent, move it out instead of splitting.\n          // <p>Foo^</p> -> <p>Foo</p>^\n          this.position = this.writer.createPositionAfter(this.position.parent);\n        } else {\n          var tempPos = this.writer.createPositionAfter(this.position.parent);\n\n          this._setAffectedBoundaries(this.position);\n\n          this.writer.split(this.position);\n          this.position = tempPos;\n          this.canMergeWith.add(this.position.nodeAfter);\n        }\n      }\n\n      return true;\n    }\n    /**\n     * Gets the element in which the given node is allowed. It checks the passed element and all its ancestors.\n     *\n     * @private\n     * @param {module:engine/model/node~Node} node The node to check.\n     * @param {module:engine/model/element~Element} element The element in which the node's correctness should be checked.\n     * @returns {module:engine/model/element~Element|null}\n     */\n\n  }, {\n    key: \"_getAllowedIn\",\n    value: function _getAllowedIn(node, element) {\n      if (this.schema.checkChild(element, node)) {\n        return element;\n      }\n\n      if (element.parent) {\n        return this._getAllowedIn(node, element.parent);\n      }\n\n      return null;\n    }\n  }]);\n\n  return Insertion;\n}();","import \"core-js/modules/es6.string.includes\";\nimport _typeof from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/typeof\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/utils/modifyselection\n */\nimport Position from \"../position\";\nimport TreeWalker from \"../treewalker\";\nimport Range from \"../range\";\nimport { isInsideSurrogatePair, isInsideCombinedSymbol } from '@ckeditor/ckeditor5-utils/src/unicode';\nimport DocumentSelection from \"../documentselection\";\nvar wordBoundaryCharacters = ' ,.?!:;\"-()';\n/**\n * Modifies the selection. Currently, the supported modifications are:\n *\n * * Extending. The selection focus is moved in the specified `options.direction` with a step specified in `options.unit`.\n * Possible values for `unit` are:\n *  * `'character'` (default) - moves selection by one user-perceived character. In most cases this means moving by one\n *  character in `String` sense. However, unicode also defines \"combing marks\". These are special symbols, that combines\n *  with a symbol before it (\"base character\") to create one user-perceived character. For example, `q̣̇` is a normal\n *  letter `q` with two \"combining marks\": upper dot (`Ux0307`) and lower dot (`Ux0323`). For most actions, i.e. extending\n *  selection by one position, it is correct to include both \"base character\" and all of it's \"combining marks\". That is\n *  why `'character'` value is most natural and common method of modifying selection.\n *  * `'codePoint'` - moves selection by one unicode code point. In contrary to, `'character'` unit, this will insert\n *  selection between \"base character\" and \"combining mark\", because \"combining marks\" have their own unicode code points.\n *  However, for technical reasons, unicode code points with values above `UxFFFF` are represented in native `String` by\n *  two characters, called \"surrogate pairs\". Halves of \"surrogate pairs\" have a meaning only when placed next to each other.\n *  For example `𨭎` is represented in `String` by `\\uD862\\uDF4E`. Both `\\uD862` and `\\uDF4E` do not have any meaning\n *  outside the pair (are rendered as ? when alone). Position between them would be incorrect. In this case, selection\n *  extension will include whole \"surrogate pair\".\n *  * `'word'` - moves selection by a whole word.\n *\n * **Note:** if you extend a forward selection in a backward direction you will in fact shrink it.\n *\n * **Note:** Use {@link module:engine/model/model~Model#modifySelection} instead of this function.\n * This function is only exposed to be reusable in algorithms\n * which change the {@link module:engine/model/model~Model#modifySelection}\n * method's behavior.\n *\n * @param {module:engine/model/model~Model} model The model in context of which\n * the selection modification should be performed.\n * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n * The selection to modify.\n * @param {Object} [options]\n * @param {'forward'|'backward'} [options.direction='forward'] The direction in which the selection should be modified.\n * @param {'character'|'codePoint'|'word'} [options.unit='character'] The unit by which selection should be modified.\n */\n\nexport default function modifySelection(model, selection) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var schema = model.schema;\n  var isForward = options.direction != 'backward';\n  var unit = options.unit ? options.unit : 'character';\n  var focus = selection.focus;\n  var walker = new TreeWalker({\n    boundaries: getSearchRange(focus, isForward),\n    singleCharacters: true,\n    direction: isForward ? 'forward' : 'backward'\n  });\n  var data = {\n    walker: walker,\n    schema: schema,\n    isForward: isForward,\n    unit: unit\n  };\n  var next;\n\n  var _loop = function _loop() {\n    if (next.done) {\n      return {\n        v: void 0\n      };\n    }\n\n    var position = tryExtendingTo(data, next.value);\n\n    if (position) {\n      if (selection instanceof DocumentSelection) {\n        model.change(function (writer) {\n          writer.setSelectionFocus(position);\n        });\n      } else {\n        selection.setFocus(position);\n      }\n\n      return {\n        v: void 0\n      };\n    }\n  };\n\n  while (next = walker.next()) {\n    var _ret = _loop();\n\n    if (_typeof(_ret) === \"object\") return _ret.v;\n  }\n} // Checks whether the selection can be extended to the the walker's next value (next position).\n// @param {{ walker, unit, isForward, schema }} data\n// @param {module:engine/view/treewalker~TreeWalkerValue} value\n\nfunction tryExtendingTo(data, value) {\n  // If found text, we can certainly put the focus in it. Let's just find a correct position\n  // based on the unit.\n  if (value.type == 'text') {\n    if (data.unit === 'word') {\n      return getCorrectWordBreakPosition(data.walker, data.isForward);\n    }\n\n    return getCorrectPosition(data.walker, data.unit, data.isForward);\n  } // Entering an element.\n\n\n  if (value.type == (data.isForward ? 'elementStart' : 'elementEnd')) {\n    // If it's an object, we can select it now.\n    if (data.schema.isObject(value.item)) {\n      return Position._createAt(value.item, data.isForward ? 'after' : 'before');\n    } // If text allowed on this position, extend to this place.\n\n\n    if (data.schema.checkChild(value.nextPosition, '$text')) {\n      return value.nextPosition;\n    }\n  } // Leaving an element.\n  else {\n      // If leaving a limit element, stop.\n      if (data.schema.isLimit(value.item)) {\n        // NOTE: Fast-forward the walker until the end.\n        data.walker.skip(function () {\n          return true;\n        });\n        return;\n      } // If text allowed on this position, extend to this place.\n\n\n      if (data.schema.checkChild(value.nextPosition, '$text')) {\n        return value.nextPosition;\n      }\n    }\n} // Finds a correct position by walking in a text node and checking whether selection can be extended to given position\n// or should be extended further.\n//\n// @param {module:engine/model/treewalker~TreeWalker} walker\n// @param {String} unit The unit by which selection should be modified.\n\n\nfunction getCorrectPosition(walker, unit) {\n  var textNode = walker.position.textNode;\n\n  if (textNode) {\n    var data = textNode.data;\n    var offset = walker.position.offset - textNode.startOffset;\n\n    while (isInsideSurrogatePair(data, offset) || unit == 'character' && isInsideCombinedSymbol(data, offset)) {\n      walker.next();\n      offset = walker.position.offset - textNode.startOffset;\n    }\n  }\n\n  return walker.position;\n} // Finds a correct position of a word break by walking in a text node and checking whether selection can be extended to given position\n// or should be extended further.\n//\n// @param {module:engine/model/treewalker~TreeWalker} walker\n// @param {Boolean} isForward Is the direction in which the selection should be modified is forward.\n\n\nfunction getCorrectWordBreakPosition(walker, isForward) {\n  var textNode = walker.position.textNode;\n\n  if (textNode) {\n    var offset = walker.position.offset - textNode.startOffset;\n\n    while (!isAtWordBoundary(textNode.data, offset, isForward) && !isAtNodeBoundary(textNode, offset, isForward)) {\n      walker.next(); // Check of adjacent text nodes with different attributes (like BOLD).\n      // Example          : 'foofoo []bar<$text bold=\"true\">bar</$text> bazbaz'\n      // should expand to : 'foofoo [bar<$text bold=\"true\">bar</$text>] bazbaz'.\n\n      var nextNode = isForward ? walker.position.nodeAfter : walker.position.nodeBefore; // Scan only text nodes. Ignore inline elements (like `<softBreak>`).\n\n      if (nextNode && nextNode.is('text')) {\n        // Check boundary char of an adjacent text node.\n        var boundaryChar = nextNode.data.charAt(isForward ? 0 : nextNode.data.length - 1); // Go to the next node if the character at the boundary of that node belongs to the same word.\n\n        if (!wordBoundaryCharacters.includes(boundaryChar)) {\n          // If adjacent text node belongs to the same word go to it & reset values.\n          walker.next();\n          textNode = walker.position.textNode;\n        }\n      }\n\n      offset = walker.position.offset - textNode.startOffset;\n    }\n  }\n\n  return walker.position;\n}\n\nfunction getSearchRange(start, isForward) {\n  var root = start.root;\n\n  var searchEnd = Position._createAt(root, isForward ? 'end' : 0);\n\n  if (isForward) {\n    return new Range(start, searchEnd);\n  } else {\n    return new Range(searchEnd, start);\n  }\n} // Checks if selection is on word boundary.\n//\n// @param {String} data The text node value to investigate.\n// @param {Number} offset Position offset.\n// @param {Boolean} isForward Is the direction in which the selection should be modified is forward.\n\n\nfunction isAtWordBoundary(data, offset, isForward) {\n  // The offset to check depends on direction.\n  var offsetToCheck = offset + (isForward ? 0 : -1);\n  return wordBoundaryCharacters.includes(data.charAt(offsetToCheck));\n} // Checks if selection is on node boundary.\n//\n// @param {module:engine/model/text~Text} textNode The text node to investigate.\n// @param {Number} offset Position offset.\n// @param {Boolean} isForward Is the direction in which the selection should be modified is forward.\n\n\nfunction isAtNodeBoundary(textNode, offset, isForward) {\n  return offset === (isForward ? textNode.endOffset : 0);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/utils/selection-post-fixer\n */\nimport Range from \"../range\";\nimport Position from \"../position\";\n/**\n * Injects selection post-fixer to the model.\n *\n * The role of the selection post-fixer is to ensure that the selection is in a correct place\n * after a {@link module:engine/model/model~Model#change `change()`} block was executed.\n *\n * The correct position means that:\n *\n * * All collapsed selection ranges are in a place where the {@link module:engine/model/schema~Schema}\n * allows a `$text`.\n * * None of the selection's non-collapsed ranges crosses a {@link module:engine/model/schema~Schema#isLimit limit element}\n * boundary (a range must be rooted within one limit element).\n * * Only {@link module:engine/model/schema~Schema#isObject object elements} can be selected from the outside\n * (e.g. `[<paragraph>foo</paragraph>]` is invalid). This rule applies independently to both selection ends, so this\n * selection is correct: `<paragraph>f[oo</paragraph><image></image>]`.\n *\n * If the position is not correct, the post-fixer will automatically correct it.\n *\n * ## Fixing a non-collapsed selection\n *\n * See as an example a selection that starts in a P1 element and ends inside the text of a TD element\n * (`[` and `]` are range boundaries and `(l)` denotes an element defined as `isLimit=true`):\n *\n *\t\troot\n *\t\t |- element P1\n *\t\t |   |- \"foo\"                                      root\n *\t\t |- element TABLE (l)                   P1         TABLE             P2\n *\t\t |   |- element TR (l)                 f o[o     TR      TR         b a r\n *\t\t |   |   |- element TD (l)                       TD      TD\n *\t\t |   |       |- \"aaa\"                          a]a a    b b b\n *\t\t |   |- element TR (l)\n *\t\t |   |   |- element TD (l)                           ||\n *\t\t |   |       |- \"bbb\"                                ||\n *\t\t |- element P2                                       VV\n *\t\t |   |- \"bar\"\n *\t\t                                                   root\n *\t\t                                        P1         TABLE]            P2\n *\t\t                                       f o[o     TR      TR         b a r\n *\t\t                                                 TD      TD\n *\t\t                                               a a a    b b b\n *\n * In the example above, the TABLE, TR and TD are defined as `isLimit=true` in the schema. The range which is not contained within\n * a single limit element must be expanded to select the outermost limit element. The range end is inside the text node of the TD element.\n * As the TD element is a child of the TR and TABLE elements, where both are defined as `isLimit=true` in the schema, the range must be\n * expanded to select the whole TABLE element.\n *\n * **Note** If the selection contains multiple ranges, the method returns a minimal set of ranges that are not intersecting after expanding\n * them to select `isLimit=true` elements.\n *\n * @param {module:engine/model/model~Model} model\n */\n\nexport function injectSelectionPostFixer(model) {\n  model.document.registerPostFixer(function (writer) {\n    return selectionPostFixer(writer, model);\n  });\n} // The selection post-fixer.\n//\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/model~Model} model\n\nfunction selectionPostFixer(writer, model) {\n  var selection = model.document.selection;\n  var schema = model.schema;\n  var ranges = [];\n  var wasFixed = false;\n\n  var _iterator = _createForOfIteratorHelper(selection.getRanges()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var modelRange = _step.value;\n      // Go through all ranges in selection and try fixing each of them.\n      // Those ranges might overlap but will be corrected later.\n      var correctedRange = tryFixingRange(modelRange, schema);\n\n      if (correctedRange) {\n        ranges.push(correctedRange);\n        wasFixed = true;\n      } else {\n        ranges.push(modelRange);\n      }\n    } // If any of ranges were corrected update the selection.\n\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  if (wasFixed) {\n    // The above algorithm might create ranges that intersects each other when selection contains more then one range.\n    // This is case happens mostly on Firefox which creates multiple ranges for selected table.\n    var fixedRanges = ranges; // Fixing selection with many ranges usually breaks the selection in Firefox. As only Firefox supports multiple selection ranges\n    // we simply create one continuous range from fixed selection ranges (even if they are not adjacent).\n\n    if (ranges.length > 1) {\n      var selectionStart = ranges[0].start;\n      var selectionEnd = ranges[ranges.length - 1].end;\n      fixedRanges = [new Range(selectionStart, selectionEnd)];\n    }\n\n    writer.setSelection(fixedRanges, {\n      backward: selection.isBackward\n    });\n  }\n} // Tries fixing a range if it's incorrect.\n//\n// @param {module:engine/model/range~Range} range\n// @param {module:engine/model/schema~Schema} schema\n// @returns {module:engine/model/range~Range|null} Returns fixed range or null if range is valid.\n\n\nfunction tryFixingRange(range, schema) {\n  if (range.isCollapsed) {\n    return tryFixingCollapsedRange(range, schema);\n  }\n\n  return tryFixingNonCollapsedRage(range, schema);\n} // Tries to fix collapsed ranges.\n//\n// * Fixes situation when a range is in a place where $text is not allowed\n//\n// @param {module:engine/model/range~Range} range Collapsed range to fix.\n// @param {module:engine/model/schema~Schema} schema\n// @returns {module:engine/model/range~Range|null} Returns fixed range or null if range is valid.\n\n\nfunction tryFixingCollapsedRange(range, schema) {\n  var originalPosition = range.start;\n  var nearestSelectionRange = schema.getNearestSelectionRange(originalPosition); // This might be null ie when editor data is empty.\n  // In such cases there is no need to fix the selection range.\n\n  if (!nearestSelectionRange) {\n    return null;\n  }\n\n  var fixedPosition = nearestSelectionRange.start; // Fixed position is the same as original - no need to return corrected range.\n\n  if (originalPosition.isEqual(fixedPosition)) {\n    return null;\n  } // Check single node selection (happens in tables).\n\n\n  if (fixedPosition.nodeAfter && schema.isLimit(fixedPosition.nodeAfter)) {\n    return new Range(fixedPosition, Position._createAfter(fixedPosition.nodeAfter));\n  }\n\n  return new Range(fixedPosition);\n} // Tries to fix an expanded range.\n//\n// @param {module:engine/model/range~Range} range Expanded range to fix.\n// @param {module:engine/model/schema~Schema} schema\n// @returns {module:engine/model/range~Range|null} Returns fixed range or null if range is valid.\n\n\nfunction tryFixingNonCollapsedRage(range, schema) {\n  var start = range.start;\n  var end = range.end;\n  var isTextAllowedOnStart = schema.checkChild(start, '$text');\n  var isTextAllowedOnEnd = schema.checkChild(end, '$text');\n  var startLimitElement = schema.getLimitElement(start);\n  var endLimitElement = schema.getLimitElement(end); // Ranges which both end are inside the same limit element (or root) might needs only minor fix.\n\n  if (startLimitElement === endLimitElement) {\n    // Range is valid when both position allows to place a text:\n    // - <block>f[oobarba]z</block>\n    // This would be \"fixed\" by a next check but as it will be the same it's better to return null so the selection stays the same.\n    if (isTextAllowedOnStart && isTextAllowedOnEnd) {\n      return null;\n    } // Range that is on non-limit element (or is partially) must be fixed so it is placed inside the block around $text:\n    // - [<block>foo</block>]    ->    <block>[foo]</block>\n    // - [<block>foo]</block>    ->    <block>[foo]</block>\n    // - <block>f[oo</block>]    ->    <block>f[oo]</block>\n    // - [<block>foo</block><object></object>]    ->    <block>[foo</block><object></object>]\n\n\n    if (checkSelectionOnNonLimitElements(start, end, schema)) {\n      var isStartObject = start.nodeAfter && schema.isObject(start.nodeAfter);\n      var fixedStart = isStartObject ? null : schema.getNearestSelectionRange(start, 'forward');\n      var isEndObject = end.nodeBefore && schema.isObject(end.nodeBefore);\n      var fixedEnd = isEndObject ? null : schema.getNearestSelectionRange(end, 'backward'); // The schema.getNearestSelectionRange might return null - if that happens use original position.\n\n      var rangeStart = fixedStart ? fixedStart.start : start;\n      var rangeEnd = fixedEnd ? fixedEnd.start : end;\n      return new Range(rangeStart, rangeEnd);\n    }\n  }\n\n  var isStartInLimit = startLimitElement && !startLimitElement.is('rootElement');\n  var isEndInLimit = endLimitElement && !endLimitElement.is('rootElement'); // At this point we eliminated valid positions on text nodes so if one of range positions is placed inside a limit element\n  // then the range crossed limit element boundaries and needs to be fixed.\n\n  if (isStartInLimit || isEndInLimit) {\n    var bothInSameParent = start.nodeAfter && end.nodeBefore && start.nodeAfter.parent === end.nodeBefore.parent;\n    var expandStart = isStartInLimit && (!bothInSameParent || !isInObject(start.nodeAfter, schema));\n    var expandEnd = isEndInLimit && (!bothInSameParent || !isInObject(end.nodeBefore, schema)); // Although we've already found limit element on start/end positions we must find the outer-most limit element.\n    // as limit elements might be nested directly inside (ie table > tableRow > tableCell).\n\n    var _fixedStart = start;\n    var _fixedEnd = end;\n\n    if (expandStart) {\n      _fixedStart = Position._createBefore(findOutermostLimitAncestor(startLimitElement, schema));\n    }\n\n    if (expandEnd) {\n      _fixedEnd = Position._createAfter(findOutermostLimitAncestor(endLimitElement, schema));\n    }\n\n    return new Range(_fixedStart, _fixedEnd);\n  } // Range was not fixed at this point so it is valid - ie it was placed around limit element already.\n\n\n  return null;\n} // Finds the outer-most ancestor.\n//\n// @param {module:engine/model/node~Node} startingNode\n// @param {module:engine/model/schema~Schema} schema\n// @param {String} expandToDirection Direction of expansion - either 'start' or 'end' of the range.\n// @returns {module:engine/model/node~Node}\n\n\nfunction findOutermostLimitAncestor(startingNode, schema) {\n  var isLimitNode = startingNode;\n  var parent = isLimitNode; // Find outer most isLimit block as such blocks might be nested (ie. in tables).\n\n  while (schema.isLimit(parent) && parent.parent) {\n    isLimitNode = parent;\n    parent = parent.parent;\n  }\n\n  return isLimitNode;\n} // Checks whether any of range boundaries is placed around non-limit elements.\n//\n// @param {module:engine/model/position~Position} start\n// @param {module:engine/model/position~Position} end\n// @param {module:engine/model/schema~Schema} schema\n// @returns {Boolean}\n\n\nfunction checkSelectionOnNonLimitElements(start, end, schema) {\n  var startIsOnBlock = start.nodeAfter && !schema.isLimit(start.nodeAfter) || schema.checkChild(start, '$text');\n  var endIsOnBlock = end.nodeBefore && !schema.isLimit(end.nodeBefore) || schema.checkChild(end, '$text'); // We should fix such selection when one of those nodes needs fixing.\n\n  return startIsOnBlock || endIsOnBlock;\n} // Checks if node exists and if it's an object.\n//\n// @param {module:engine/model/node~Node} node\n// @param {module:engine/model/schema~Schema} schema\n// @returns {Boolean}\n\n\nfunction isInObject(node, schema) {\n  return node && schema.isObject(node);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.string.anchor\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.function.name\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/model/writer\n */\nimport AttributeOperation from \"./operation/attributeoperation\";\nimport DetachOperation from \"./operation/detachoperation\";\nimport InsertOperation from \"./operation/insertoperation\";\nimport MarkerOperation from \"./operation/markeroperation\";\nimport MoveOperation from \"./operation/moveoperation\";\nimport RenameOperation from \"./operation/renameoperation\";\nimport RootAttributeOperation from \"./operation/rootattributeoperation\";\nimport SplitOperation from \"./operation/splitoperation\";\nimport MergeOperation from \"./operation/mergeoperation\";\nimport DocumentFragment from \"./documentfragment\";\nimport Text from \"./text\";\nimport Element from \"./element\";\nimport RootElement from \"./rootelement\";\nimport Position from \"./position\";\nimport Range from \"./range.js\";\nimport DocumentSelection from \"./documentselection\";\nimport toMap from '@ckeditor/ckeditor5-utils/src/tomap';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * The model can only be modified by using the writer. It should be used whenever you want to create a node, modify\n * child nodes, attributes or text, set the selection's position and its attributes.\n *\n * The instance of the writer is only available in the {@link module:engine/model/model~Model#change `change()`} or\n * {@link module:engine/model/model~Model#enqueueChange `enqueueChange()`}.\n *\n *\t\tmodel.change( writer => {\n *\t\t\twriter.insertText( 'foo', paragraph, 'end' );\n *\t\t} );\n *\n * Note that the writer should never be stored and used outside of the `change()` and\n * `enqueueChange()` blocks.\n *\n * Note that writer's methods do not check the {@link module:engine/model/schema~Schema}. It is possible\n * to create incorrect model structures by using the writer. Read more about in\n * {@glink framework/guides/deep-dive/schema#who-checks-the-schema \"Who checks the schema?\"}.\n *\n * @see module:engine/model/model~Model#change\n * @see module:engine/model/model~Model#enqueueChange\n */\n\nvar Writer = /*#__PURE__*/function () {\n  /**\n   * Creates a writer instance.\n   *\n   * **Note:** It is not recommended to use it directly. Use {@link module:engine/model/model~Model#change `Model#change()`} or\n   * {@link module:engine/model/model~Model#enqueueChange `Model#enqueueChange()`} instead.\n   *\n   * @protected\n   * @param {module:engine/model/model~Model} model\n   * @param {module:engine/model/batch~Batch} batch\n   */\n  function Writer(model, batch) {\n    _classCallCheck(this, Writer);\n\n    /**\n     * Instance of the model on which this writer operates.\n     *\n     * @readonly\n     * @type {module:engine/model/model~Model}\n     */\n    this.model = model;\n    /**\n     * The batch to which this writer will add changes.\n     *\n     * @readonly\n     * @type {module:engine/model/batch~Batch}\n     */\n\n    this.batch = batch;\n  }\n  /**\n   * Creates a new {@link module:engine/model/text~Text text node}.\n   *\n   *\t\twriter.createText( 'foo' );\n   *\t\twriter.createText( 'foo', { bold: true } );\n   *\n   * @param {String} data Text data.\n   * @param {Object} [attributes] Text attributes.\n   * @returns {module:engine/model/text~Text} Created text node.\n   */\n\n\n  _createClass(Writer, [{\n    key: \"createText\",\n    value: function createText(data, attributes) {\n      return new Text(data, attributes);\n    }\n    /**\n     * Creates a new {@link module:engine/model/element~Element element}.\n     *\n     *\t\twriter.createElement( 'paragraph' );\n     *\t\twriter.createElement( 'paragraph', { alignment: 'center' } );\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Elements attributes.\n     * @returns {module:engine/model/element~Element} Created element.\n     */\n\n  }, {\n    key: \"createElement\",\n    value: function createElement(name, attributes) {\n      return new Element(name, attributes);\n    }\n    /**\n     * Creates a new {@link module:engine/model/documentfragment~DocumentFragment document fragment}.\n     *\n     * @returns {module:engine/model/documentfragment~DocumentFragment} Created document fragment.\n     */\n\n  }, {\n    key: \"createDocumentFragment\",\n    value: function createDocumentFragment() {\n      return new DocumentFragment();\n    }\n    /**\n     * Inserts item on given position.\n     *\n     *\t\tconst paragraph = writer.createElement( 'paragraph' );\n     *\t\twriter.insert( paragraph, position );\n     *\n     * Instead of using position you can use parent and offset:\n     *\n     *\t\tconst text = writer.createText( 'foo' );\n     *\t\twriter.insert( text, paragraph, 5 );\n     *\n     * You can also use `end` instead of the offset to insert at the end:\n     *\n     *\t\tconst text = writer.createText( 'foo' );\n     *\t\twriter.insert( text, paragraph, 'end' );\n     *\n     * Or insert before or after another element:\n     *\n     *\t\tconst paragraph = writer.createElement( 'paragraph' );\n     *\t\twriter.insert( paragraph, anotherParagraph, 'after' );\n     *\n     * These parameters works the same way as {@link #createPositionAt `writer.createPositionAt()`}.\n     *\n     * Note that if the item already has parent it will be removed from the previous parent.\n     *\n     * Note that you cannot re-insert a node from a document to a different document or a document fragment. In this case,\n     * `model-writer-insert-forbidden-move` is thrown.\n     *\n     * If you want to move {@link module:engine/model/range~Range range} instead of an\n     * {@link module:engine/model/item~Item item} use {@link module:engine/model/writer~Writer#move `Writer#move()`}.\n     *\n     * **Note:** For a paste-like content insertion mechanism see\n     * {@link module:engine/model/model~Model#insertContent `model.insertContent()`}.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/documentfragment~DocumentFragment} item Item or document\n     * fragment to insert.\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * second parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"insert\",\n    value: function insert(item, itemOrPosition) {\n      var offset = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n      this._assertWriterUsedCorrectly();\n\n      if (item instanceof Text && item.data == '') {\n        return;\n      }\n\n      var position = Position._createAt(itemOrPosition, offset); // If item has a parent already.\n\n\n      if (item.parent) {\n        // We need to check if item is going to be inserted within the same document.\n        if (isSameTree(item.root, position.root)) {\n          // If it's we just need to move it.\n          this.move(Range._createOn(item), position);\n          return;\n        } // If it isn't the same root.\n        else {\n            if (item.root.document) {\n              /**\n               * Cannot move a node from a document to a different tree.\n               * It is forbidden to move a node that was already in a document outside of it.\n               *\n               * @error model-writer-insert-forbidden-move\n               */\n              throw new CKEditorError('model-writer-insert-forbidden-move: ' + 'Cannot move a node from a document to a different tree. ' + 'It is forbidden to move a node that was already in a document outside of it.', this);\n            } else {\n              // Move between two different document fragments or from document fragment to a document is possible.\n              // In that case, remove the item from it's original parent.\n              this.remove(item);\n            }\n          }\n      }\n\n      var version = position.root.document ? position.root.document.version : null;\n      var insert = new InsertOperation(position, item, version);\n\n      if (item instanceof Text) {\n        insert.shouldReceiveAttributes = true;\n      }\n\n      this.batch.addOperation(insert);\n      this.model.applyOperation(insert); // When element is a DocumentFragment we need to move its markers to Document#markers.\n\n      if (item instanceof DocumentFragment) {\n        var _iterator = _createForOfIteratorHelper(item.markers),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var _step$value = _slicedToArray(_step.value, 2),\n                markerName = _step$value[0],\n                markerRange = _step$value[1];\n\n            // We need to migrate marker range from DocumentFragment to Document.\n            var rangeRootPosition = Position._createAt(markerRange.root, 0);\n\n            var range = new Range(markerRange.start._getCombined(rangeRootPosition, position), markerRange.end._getCombined(rangeRootPosition, position));\n            var options = {\n              range: range,\n              usingOperation: true,\n              affectsData: true\n            };\n\n            if (this.model.markers.has(markerName)) {\n              this.updateMarker(markerName, options);\n            } else {\n              this.addMarker(markerName, options);\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n    }\n    /**\n     * Creates and inserts text on given position. You can optionally set text attributes:\n     *\n     *\t\twriter.insertText( 'foo', position );\n     *\t\twriter.insertText( 'foo', { bold: true }, position );\n     *\n     * Instead of using position you can use parent and offset or define that text should be inserted at the end\n     * or before or after other node:\n     *\n     *\t\t// Inserts 'foo' in paragraph, at offset 5:\n     *\t\twriter.insertText( 'foo', paragraph, 5 );\n     *\t\t// Inserts 'foo' at the end of a paragraph:\n     *\t\twriter.insertText( 'foo', paragraph, 'end' );\n     *\t\t// Inserts 'foo' after an image:\n     *\t\twriter.insertText( 'foo', image, 'after' );\n     *\n     * These parameters work in the same way as {@link #createPositionAt `writer.createPositionAt()`}.\n     *\n     * @param {String} data Text data.\n     * @param {Object} [attributes] Text attributes.\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * third parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"insertText\",\n    value: function insertText(text, attributes, itemOrPosition, offset) {\n      if (attributes instanceof DocumentFragment || attributes instanceof Element || attributes instanceof Position) {\n        this.insert(this.createText(text), attributes, itemOrPosition);\n      } else {\n        this.insert(this.createText(text, attributes), itemOrPosition, offset);\n      }\n    }\n    /**\n     * Creates and inserts element on given position. You can optionally set attributes:\n     *\n     *\t\twriter.insertElement( 'paragraph', position );\n     *\t\twriter.insertElement( 'paragraph', { alignment: 'center' }, position );\n     *\n     * Instead of using position you can use parent and offset or define that text should be inserted at the end\n     * or before or after other node:\n     *\n     *\t\t// Inserts paragraph in the root at offset 5:\n     *\t\twriter.insertElement( 'paragraph', root, 5 );\n     *\t\t// Inserts paragraph at the end of a blockquote:\n     *\t\twriter.insertElement( 'paragraph', blockquote, 'end' );\n     *\t\t// Inserts after an image:\n     *\t\twriter.insertElement( 'paragraph', image, 'after' );\n     *\n     * These parameters works the same way as {@link #createPositionAt `writer.createPositionAt()`}.\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Elements attributes.\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * third parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"insertElement\",\n    value: function insertElement(name, attributes, itemOrPosition, offset) {\n      if (attributes instanceof DocumentFragment || attributes instanceof Element || attributes instanceof Position) {\n        this.insert(this.createElement(name), attributes, itemOrPosition);\n      } else {\n        this.insert(this.createElement(name, attributes), itemOrPosition, offset);\n      }\n    }\n    /**\n     * Inserts item at the end of the given parent.\n     *\n     *\t\tconst paragraph = writer.createElement( 'paragraph' );\n     *\t\twriter.append( paragraph, root );\n     *\n     * Note that if the item already has parent it will be removed from the previous parent.\n     *\n     * If you want to move {@link module:engine/model/range~Range range} instead of an\n     * {@link module:engine/model/item~Item item} use {@link module:engine/model/writer~Writer#move `Writer#move()`}.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/documentfragment~DocumentFragment}\n     * item Item or document fragment to insert.\n     * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} parent\n     */\n\n  }, {\n    key: \"append\",\n    value: function append(item, parent) {\n      this.insert(item, parent, 'end');\n    }\n    /**\n     * Creates text node and inserts it at the end of the parent. You can optionally set text attributes:\n     *\n     *\t\twriter.appendText( 'foo', paragraph );\n     *\t\twriter.appendText( 'foo', { bold: true }, paragraph );\n     *\n     * @param {String} text Text data.\n     * @param {Object} [attributes] Text attributes.\n     * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} parent\n     */\n\n  }, {\n    key: \"appendText\",\n    value: function appendText(text, attributes, parent) {\n      if (attributes instanceof DocumentFragment || attributes instanceof Element) {\n        this.insert(this.createText(text), attributes, 'end');\n      } else {\n        this.insert(this.createText(text, attributes), parent, 'end');\n      }\n    }\n    /**\n     * Creates element and inserts it at the end of the parent. You can optionally set attributes:\n     *\n     *\t\twriter.appendElement( 'paragraph', root );\n     *\t\twriter.appendElement( 'paragraph', { alignment: 'center' }, root );\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Elements attributes.\n     * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} parent\n     */\n\n  }, {\n    key: \"appendElement\",\n    value: function appendElement(name, attributes, parent) {\n      if (attributes instanceof DocumentFragment || attributes instanceof Element) {\n        this.insert(this.createElement(name), attributes, 'end');\n      } else {\n        this.insert(this.createElement(name, attributes), parent, 'end');\n      }\n    }\n    /**\n     * Sets value of the attribute with given key on a {@link module:engine/model/item~Item model item}\n     * or on a {@link module:engine/model/range~Range range}.\n     *\n     * @param {String} key Attribute key.\n     * @param {*} value Attribute new value.\n     * @param {module:engine/model/item~Item|module:engine/model/range~Range} itemOrRange\n     * Model item or range on which the attribute will be set.\n     */\n\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(key, value, itemOrRange) {\n      this._assertWriterUsedCorrectly();\n\n      if (itemOrRange instanceof Range) {\n        var ranges = itemOrRange.getMinimalFlatRanges();\n\n        var _iterator2 = _createForOfIteratorHelper(ranges),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var range = _step2.value;\n            setAttributeOnRange(this, key, value, range);\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      } else {\n        setAttributeOnItem(this, key, value, itemOrRange);\n      }\n    }\n    /**\n     * Sets values of attributes on a {@link module:engine/model/item~Item model item}\n     * or on a {@link module:engine/model/range~Range range}.\n     *\n     *\t\twriter.setAttributes( {\n     *\t\t\tbold: true,\n     *\t\t\titalic: true\n     *\t\t}, range );\n     *\n     * @param {Object} attributes Attributes keys and values.\n     * @param {module:engine/model/item~Item|module:engine/model/range~Range} itemOrRange\n     * Model item or range on which the attributes will be set.\n     */\n\n  }, {\n    key: \"setAttributes\",\n    value: function setAttributes(attributes, itemOrRange) {\n      var _iterator3 = _createForOfIteratorHelper(toMap(attributes)),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var _step3$value = _slicedToArray(_step3.value, 2),\n              key = _step3$value[0],\n              val = _step3$value[1];\n\n          this.setAttribute(key, val, itemOrRange);\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n    }\n    /**\n     * Removes an attribute with given key from a {@link module:engine/model/item~Item model item}\n     * or from a {@link module:engine/model/range~Range range}.\n     *\n     * @param {String} key Attribute key.\n     * @param {module:engine/model/item~Item|module:engine/model/range~Range} itemOrRange\n     * Model item or range from which the attribute will be removed.\n     */\n\n  }, {\n    key: \"removeAttribute\",\n    value: function removeAttribute(key, itemOrRange) {\n      this._assertWriterUsedCorrectly();\n\n      if (itemOrRange instanceof Range) {\n        var ranges = itemOrRange.getMinimalFlatRanges();\n\n        var _iterator4 = _createForOfIteratorHelper(ranges),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var range = _step4.value;\n            setAttributeOnRange(this, key, null, range);\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n      } else {\n        setAttributeOnItem(this, key, null, itemOrRange);\n      }\n    }\n    /**\n     * Removes all attributes from all elements in the range or from the given item.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/range~Range} itemOrRange\n     * Model item or range from which all attributes will be removed.\n     */\n\n  }, {\n    key: \"clearAttributes\",\n    value: function clearAttributes(itemOrRange) {\n      var _this = this;\n\n      this._assertWriterUsedCorrectly();\n\n      var removeAttributesFromItem = function removeAttributesFromItem(item) {\n        var _iterator5 = _createForOfIteratorHelper(item.getAttributeKeys()),\n            _step5;\n\n        try {\n          for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n            var attribute = _step5.value;\n\n            _this.removeAttribute(attribute, item);\n          }\n        } catch (err) {\n          _iterator5.e(err);\n        } finally {\n          _iterator5.f();\n        }\n      };\n\n      if (!(itemOrRange instanceof Range)) {\n        removeAttributesFromItem(itemOrRange);\n      } else {\n        var _iterator6 = _createForOfIteratorHelper(itemOrRange.getItems()),\n            _step6;\n\n        try {\n          for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n            var item = _step6.value;\n            removeAttributesFromItem(item);\n          }\n        } catch (err) {\n          _iterator6.e(err);\n        } finally {\n          _iterator6.f();\n        }\n      }\n    }\n    /**\n     * Moves all items in the source range to the target position.\n     *\n     *\t\twriter.move( sourceRange, targetPosition );\n     *\n     * Instead of the target position you can use parent and offset or define that range should be moved to the end\n     * or before or after chosen item:\n     *\n     *\t\t// Moves all items in the range to the paragraph at offset 5:\n     *\t\twriter.move( sourceRange, paragraph, 5 );\n     *\t\t// Moves all items in the range to the end of a blockquote:\n     *\t\twriter.move( sourceRange, blockquote, 'end' );\n     *\t\t// Moves all items in the range to a position after an image:\n     *\t\twriter.move( sourceRange, image, 'after' );\n     *\n     * These parameters works the same way as {@link #createPositionAt `writer.createPositionAt()`}.\n     *\n     * Note that items can be moved only within the same tree. It means that you can move items within the same root\n     * (element or document fragment) or between {@link module:engine/model/document~Document#roots documents roots},\n     * but you can not move items from document fragment to the document or from one detached element to another. Use\n     * {@link module:engine/model/writer~Writer#insert} in such cases.\n     *\n     * @param {module:engine/model/range~Range} range Source range.\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * second parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"move\",\n    value: function move(range, itemOrPosition, offset) {\n      this._assertWriterUsedCorrectly();\n\n      if (!(range instanceof Range)) {\n        /**\n         * Invalid range to move.\n         *\n         * @error writer-move-invalid-range\n         */\n        throw new CKEditorError('writer-move-invalid-range: Invalid range to move.', this);\n      }\n\n      if (!range.isFlat) {\n        /**\n         * Range to move is not flat.\n         *\n         * @error writer-move-range-not-flat\n         */\n        throw new CKEditorError('writer-move-range-not-flat: Range to move is not flat.', this);\n      }\n\n      var position = Position._createAt(itemOrPosition, offset); // Do not move anything if the move target is same as moved range start.\n\n\n      if (position.isEqual(range.start)) {\n        return;\n      } // If part of the marker is removed, create additional marker operation for undo purposes.\n\n\n      this._addOperationForAffectedMarkers('move', range);\n\n      if (!isSameTree(range.root, position.root)) {\n        /**\n         * Range is going to be moved within not the same document. Please use\n         * {@link module:engine/model/writer~Writer#insert insert} instead.\n         *\n         * @error writer-move-different-document\n         */\n        throw new CKEditorError('writer-move-different-document: Range is going to be moved between different documents.', this);\n      }\n\n      var version = range.root.document ? range.root.document.version : null;\n      var operation = new MoveOperation(range.start, range.end.offset - range.start.offset, position, version);\n      this.batch.addOperation(operation);\n      this.model.applyOperation(operation);\n    }\n    /**\n     * Removes given model {@link module:engine/model/item~Item item} or {@link module:engine/model/range~Range range}.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/range~Range} itemOrRange Model item or range to remove.\n     */\n\n  }, {\n    key: \"remove\",\n    value: function remove(itemOrRange) {\n      this._assertWriterUsedCorrectly();\n\n      var rangeToRemove = itemOrRange instanceof Range ? itemOrRange : Range._createOn(itemOrRange);\n      var ranges = rangeToRemove.getMinimalFlatRanges().reverse();\n\n      var _iterator7 = _createForOfIteratorHelper(ranges),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var flat = _step7.value;\n\n          // If part of the marker is removed, create additional marker operation for undo purposes.\n          this._addOperationForAffectedMarkers('move', flat);\n\n          applyRemoveOperation(flat.start, flat.end.offset - flat.start.offset, this.batch, this.model);\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n    }\n    /**\n     * Merges two siblings at the given position.\n     *\n     * Node before and after the position have to be an element. Otherwise `writer-merge-no-element-before` or\n     * `writer-merge-no-element-after` error will be thrown.\n     *\n     * @param {module:engine/model/position~Position} position Position between merged elements.\n     */\n\n  }, {\n    key: \"merge\",\n    value: function merge(position) {\n      this._assertWriterUsedCorrectly();\n\n      var nodeBefore = position.nodeBefore;\n      var nodeAfter = position.nodeAfter; // If part of the marker is removed, create additional marker operation for undo purposes.\n\n      this._addOperationForAffectedMarkers('merge', position);\n\n      if (!(nodeBefore instanceof Element)) {\n        /**\n         * Node before merge position must be an element.\n         *\n         * @error writer-merge-no-element-before\n         */\n        throw new CKEditorError('writer-merge-no-element-before: Node before merge position must be an element.', this);\n      }\n\n      if (!(nodeAfter instanceof Element)) {\n        /**\n         * Node after merge position must be an element.\n         *\n         * @error writer-merge-no-element-after\n         */\n        throw new CKEditorError('writer-merge-no-element-after: Node after merge position must be an element.', this);\n      }\n\n      if (!position.root.document) {\n        this._mergeDetached(position);\n      } else {\n        this._merge(position);\n      }\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createPositionFromPath `Model#createPositionFromPath()`}.\n     *\n     * @param {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment} root Root of the position.\n     * @param {Array.<Number>} path Position path. See {@link module:engine/model/position~Position#path}.\n     * @param {module:engine/model/position~PositionStickiness} [stickiness='toNone'] Position stickiness.\n     * See {@link module:engine/model/position~PositionStickiness}.\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"createPositionFromPath\",\n    value: function createPositionFromPath(root, path, stickiness) {\n      return this.model.createPositionFromPath(root, path, stickiness);\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createPositionAt `Model#createPositionAt()`}.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/model/item~Item model item}.\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"createPositionAt\",\n    value: function createPositionAt(itemOrPosition, offset) {\n      return this.model.createPositionAt(itemOrPosition, offset);\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createPositionAfter `Model#createPositionAfter()`}.\n     *\n     * @param {module:engine/model/item~Item} item Item after which the position should be placed.\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"createPositionAfter\",\n    value: function createPositionAfter(item) {\n      return this.model.createPositionAfter(item);\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createPositionBefore `Model#createPositionBefore()`}.\n     *\n     * @param {module:engine/model/item~Item} item Item after which the position should be placed.\n     * @returns {module:engine/model/position~Position}\n     */\n\n  }, {\n    key: \"createPositionBefore\",\n    value: function createPositionBefore(item) {\n      return this.model.createPositionBefore(item);\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createRange `Model#createRange()`}.\n     *\n     * @param {module:engine/model/position~Position} start Start position.\n     * @param {module:engine/model/position~Position} [end] End position. If not set, range will be collapsed at `start` position.\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange(start, end) {\n      return this.model.createRange(start, end);\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createRangeIn `Model#createRangeIn()`}.\n     *\n     * @param {module:engine/model/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"createRangeIn\",\n    value: function createRangeIn(element) {\n      return this.model.createRangeIn(element);\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createRangeOn `Model#createRangeOn()`}.\n     *\n     * @param {module:engine/model/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/model/range~Range}\n     */\n\n  }, {\n    key: \"createRangeOn\",\n    value: function createRangeOn(element) {\n      return this.model.createRangeOn(element);\n    }\n    /**\n     * Shortcut for {@link module:engine/model/model~Model#createSelection `Model#createSelection()`}.\n     *\n     * @param {module:engine/model/selection~Selectable} selectable\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     * @returns {module:engine/model/selection~Selection}\n     */\n\n  }, {\n    key: \"createSelection\",\n    value: function createSelection(selectable, placeOrOffset, options) {\n      return this.model.createSelection(selectable, placeOrOffset, options);\n    }\n    /**\n     * Performs merge action in a detached tree.\n     *\n     * @private\n     * @param {module:engine/model/position~Position} position Position between merged elements.\n     */\n\n  }, {\n    key: \"_mergeDetached\",\n    value: function _mergeDetached(position) {\n      var nodeBefore = position.nodeBefore;\n      var nodeAfter = position.nodeAfter;\n      this.move(Range._createIn(nodeAfter), Position._createAt(nodeBefore, 'end'));\n      this.remove(nodeAfter);\n    }\n    /**\n     * Performs merge action in a non-detached tree.\n     *\n     * @private\n     * @param {module:engine/model/position~Position} position Position between merged elements.\n     */\n\n  }, {\n    key: \"_merge\",\n    value: function _merge(position) {\n      var targetPosition = Position._createAt(position.nodeBefore, 'end');\n\n      var sourcePosition = Position._createAt(position.nodeAfter, 0);\n\n      var graveyard = position.root.document.graveyard;\n      var graveyardPosition = new Position(graveyard, [0]);\n      var version = position.root.document.version;\n      var merge = new MergeOperation(sourcePosition, position.nodeAfter.maxOffset, targetPosition, graveyardPosition, version);\n      this.batch.addOperation(merge);\n      this.model.applyOperation(merge);\n    }\n    /**\n     * Renames the given element.\n     *\n     * @param {module:engine/model/element~Element} element The element to rename.\n     * @param {String} newName New element name.\n     */\n\n  }, {\n    key: \"rename\",\n    value: function rename(element, newName) {\n      this._assertWriterUsedCorrectly();\n\n      if (!(element instanceof Element)) {\n        /**\n         * Trying to rename an object which is not an instance of Element.\n         *\n         * @error writer-rename-not-element-instance\n         */\n        throw new CKEditorError('writer-rename-not-element-instance: Trying to rename an object which is not an instance of Element.', this);\n      }\n\n      var version = element.root.document ? element.root.document.version : null;\n      var renameOperation = new RenameOperation(Position._createBefore(element), element.name, newName, version);\n      this.batch.addOperation(renameOperation);\n      this.model.applyOperation(renameOperation);\n    }\n    /**\n     * Splits elements starting from the given position and going to the top of the model tree as long as given\n     * `limitElement` is reached. When `limitElement` is not defined then only the parent of the given position will be split.\n     *\n     * The element needs to have a parent. It cannot be a root element nor a document fragment.\n     * The `writer-split-element-no-parent` error will be thrown if you try to split an element with no parent.\n     *\n     * @param {module:engine/model/position~Position} position Position of split.\n     * @param {module:engine/model/node~Node} [limitElement] Stop splitting when this element will be reached.\n     * @returns {Object} result Split result.\n     * @returns {module:engine/model/position~Position} result.position Position between split elements.\n     * @returns {module:engine/model/range~Range} result.range Range that stars from the end of the first split element and ends\n     * at the beginning of the first copy element.\n     */\n\n  }, {\n    key: \"split\",\n    value: function split(position, limitElement) {\n      this._assertWriterUsedCorrectly();\n\n      var splitElement = position.parent;\n\n      if (!splitElement.parent) {\n        /**\n         * Element with no parent can not be split.\n         *\n         * @error writer-split-element-no-parent\n         */\n        throw new CKEditorError('writer-split-element-no-parent: Element with no parent can not be split.', this);\n      } // When limit element is not defined lets set splitElement parent as limit.\n\n\n      if (!limitElement) {\n        limitElement = splitElement.parent;\n      }\n\n      if (!position.parent.getAncestors({\n        includeSelf: true\n      }).includes(limitElement)) {\n        throw new CKEditorError('writer-split-invalid-limit-element: Limit element is not a position ancestor.', this);\n      } // We need to cache elements that will be created as a result of the first split because\n      // we need to create a range from the end of the first split element to the beginning of the\n      // first copy element. This should be handled by LiveRange but it doesn't work on detached nodes.\n\n\n      var firstSplitElement, firstCopyElement;\n\n      do {\n        var version = splitElement.root.document ? splitElement.root.document.version : null;\n        var howMany = splitElement.maxOffset - position.offset;\n        var split = new SplitOperation(position, howMany, null, version);\n        this.batch.addOperation(split);\n        this.model.applyOperation(split); // Cache result of the first split.\n\n        if (!firstSplitElement && !firstCopyElement) {\n          firstSplitElement = splitElement;\n          firstCopyElement = position.parent.nextSibling;\n        }\n\n        position = this.createPositionAfter(position.parent);\n        splitElement = position.parent;\n      } while (splitElement !== limitElement);\n\n      return {\n        position: position,\n        range: new Range(Position._createAt(firstSplitElement, 'end'), Position._createAt(firstCopyElement, 0))\n      };\n    }\n    /**\n     * Wraps the given range with the given element or with a new element (if a string was passed).\n     *\n     * **Note:** range to wrap should be a \"flat range\" (see {@link module:engine/model/range~Range#isFlat `Range#isFlat`}).\n     * If not, an error will be thrown.\n     *\n     * @param {module:engine/model/range~Range} range Range to wrap.\n     * @param {module:engine/model/element~Element|String} elementOrString Element or name of element to wrap the range with.\n     */\n\n  }, {\n    key: \"wrap\",\n    value: function wrap(range, elementOrString) {\n      this._assertWriterUsedCorrectly();\n\n      if (!range.isFlat) {\n        /**\n         * Range to wrap is not flat.\n         *\n         * @error writer-wrap-range-not-flat\n         */\n        throw new CKEditorError('writer-wrap-range-not-flat: Range to wrap is not flat.', this);\n      }\n\n      var element = elementOrString instanceof Element ? elementOrString : new Element(elementOrString);\n\n      if (element.childCount > 0) {\n        /**\n         * Element to wrap with is not empty.\n         *\n         * @error writer-wrap-element-not-empty\n         */\n        throw new CKEditorError('writer-wrap-element-not-empty: Element to wrap with is not empty.', this);\n      }\n\n      if (element.parent !== null) {\n        /**\n         * Element to wrap with is already attached to a tree model.\n         *\n         * @error writer-wrap-element-attached\n         */\n        throw new CKEditorError('writer-wrap-element-attached: Element to wrap with is already attached to tree model.', this);\n      }\n\n      this.insert(element, range.start); // Shift the range-to-wrap because we just inserted an element before that range.\n\n      var shiftedRange = new Range(range.start.getShiftedBy(1), range.end.getShiftedBy(1));\n      this.move(shiftedRange, Position._createAt(element, 0));\n    }\n    /**\n     * Unwraps children of the given element – all its children are moved before it and then the element is removed.\n     * Throws error if you try to unwrap an element which does not have a parent.\n     *\n     * @param {module:engine/model/element~Element} element Element to unwrap.\n     */\n\n  }, {\n    key: \"unwrap\",\n    value: function unwrap(element) {\n      this._assertWriterUsedCorrectly();\n\n      if (element.parent === null) {\n        /**\n         * Trying to unwrap an element which has no parent.\n         *\n         * @error writer-unwrap-element-no-parent\n         */\n        throw new CKEditorError('writer-unwrap-element-no-parent: Trying to unwrap an element which has no parent.', this);\n      }\n\n      this.move(Range._createIn(element), this.createPositionAfter(element));\n      this.remove(element);\n    }\n    /**\n     * Adds a {@link module:engine/model/markercollection~Marker marker}. Marker is a named range, which tracks\n     * changes in the document and updates its range automatically, when model tree changes.\n     *\n     * As the first parameter you can set marker name.\n     *\n     * The required `options.usingOperation` parameter lets you decide if the marker should be managed by operations or not. See\n     * {@link module:engine/model/markercollection~Marker marker class description} to learn about the difference between\n     * markers managed by operations and not-managed by operations.\n     *\n     * The `options.affectsData` parameter, which defaults to `false`, allows you to define if a marker affects the data. It should be\n     * `true` when the marker change changes the data returned by the\n     * {@link module:core/editor/utils/dataapimixin~DataApi#getData `editor.getData()`} method.\n     * When set to `true` it fires the {@link module:engine/model/document~Document#event:change:data `change:data`} event.\n     * When set to `false` it fires the {@link module:engine/model/document~Document#event:change `change`} event.\n     *\n     * Create marker directly base on marker's name:\n     *\n     *\t\taddMarker( markerName, { range, usingOperation: false } );\n     *\n     * Create marker using operation:\n     *\n     *\t\taddMarker( markerName, { range, usingOperation: true } );\n     *\n     * Create marker that affects the editor data:\n     *\n     *\t\taddMarker( markerName, { range, usingOperation: false, affectsData: true } );\n     *\n     * Note: For efficiency reasons, it's best to create and keep as little markers as possible.\n     *\n     * @see module:engine/model/markercollection~Marker\n     * @param {String} name Name of a marker to create - must be unique.\n     * @param {Object} options\n     * @param {Boolean} options.usingOperation Flag indicating that the marker should be added by MarkerOperation.\n     * See {@link module:engine/model/markercollection~Marker#managedUsingOperations}.\n     * @param {module:engine/model/range~Range} options.range Marker range.\n     * @param {Boolean} [options.affectsData=false] Flag indicating that the marker changes the editor data.\n     * @returns {module:engine/model/markercollection~Marker} Marker that was set.\n     */\n\n  }, {\n    key: \"addMarker\",\n    value: function addMarker(name, options) {\n      this._assertWriterUsedCorrectly();\n\n      if (!options || typeof options.usingOperation != 'boolean') {\n        /**\n         * The `options.usingOperation` parameter is required when adding a new marker.\n         *\n         * @error writer-addMarker-no-usingOperation\n         */\n        throw new CKEditorError('writer-addMarker-no-usingOperation: The options.usingOperation parameter is required when adding a new marker.', this);\n      }\n\n      var usingOperation = options.usingOperation;\n      var range = options.range;\n      var affectsData = options.affectsData === undefined ? false : options.affectsData;\n\n      if (this.model.markers.has(name)) {\n        /**\n         * Marker with provided name already exists.\n         *\n         * @error writer-addMarker-marker-exists\n         */\n        throw new CKEditorError('writer-addMarker-marker-exists: Marker with provided name already exists.', this);\n      }\n\n      if (!range) {\n        /**\n         * Range parameter is required when adding a new marker.\n         *\n         * @error writer-addMarker-no-range\n         */\n        throw new CKEditorError('writer-addMarker-no-range: Range parameter is required when adding a new marker.', this);\n      }\n\n      if (!usingOperation) {\n        return this.model.markers._set(name, range, usingOperation, affectsData);\n      }\n\n      applyMarkerOperation(this, name, null, range, affectsData);\n      return this.model.markers.get(name);\n    }\n    /**\n     * Adds, updates or refreshes a {@link module:engine/model/markercollection~Marker marker}. Marker is a named range, which tracks\n     * changes in the document and updates its range automatically, when model tree changes. Still, it is possible to change the\n     * marker's range directly using this method.\n     *\n     * As the first parameter you can set marker name or instance. If none of them is provided, new marker, with a unique\n     * name is created and returned.\n     *\n     * As the second parameter you can set the new marker data or leave this parameter as empty which will just refresh\n     * the marker by triggering downcast conversion for it. Refreshing the marker is useful when you want to change\n     * the marker {@link module:engine/view/element~Element view element} without changing any marker data.\n     *\n     * \t\tlet isCommentActive = false;\n     *\n     * \t\tmodel.conversion.markerToHighlight( {\n     * \t\t\tmodel: 'comment',\n     *\t\t\tview: data => {\n     *\t\t\t\tconst classes = [ 'comment-marker' ];\n     *\n     *\t\t\t\tif ( isCommentActive ) {\n     *\t\t\t\t\tclasses.push( 'comment-marker--active' );\n     *\t\t\t\t}\n     *\n     *\t\t\t\treturn { classes };\n     *\t\t\t}\n     * \t\t} );\n     *\n     * \t\t// Change the property that indicates if marker is displayed as active or not.\n     * \t\tisCommentActive = true;\n     *\n     * \t\t// And refresh the marker to convert it with additional class.\n     * \t\tmodel.change( writer => writer.updateMarker( 'comment' ) );\n     *\n     * The `options.usingOperation` parameter lets you change if the marker should be managed by operations or not. See\n     * {@link module:engine/model/markercollection~Marker marker class description} to learn about the difference between\n     * markers managed by operations and not-managed by operations. It is possible to change this option for an existing marker.\n     *\n     * The `options.affectsData` parameter, which defaults to `false`, allows you to define if a marker affects the data. It should be\n     * `true` when the marker change changes the data returned by\n     * the {@link module:core/editor/utils/dataapimixin~DataApi#getData `editor.getData()`} method.\n     * When set to `true` it fires the {@link module:engine/model/document~Document#event:change:data `change:data`} event.\n     * When set to `false` it fires the {@link module:engine/model/document~Document#event:change `change`} event.\n     *\n     * Update marker directly base on marker's name:\n     *\n     *\t\tupdateMarker( markerName, { range } );\n     *\n     * Update marker using operation:\n     *\n     *\t\tupdateMarker( marker, { range, usingOperation: true } );\n     *\t\tupdateMarker( markerName, { range, usingOperation: true } );\n     *\n     * Change marker's option (start using operations to manage it):\n     *\n     *\t\tupdateMarker( marker, { usingOperation: true } );\n     *\n     * Change marker's option (inform the engine, that the marker does not affect the data anymore):\n     *\n     *\t\tupdateMarker( markerName, { affectsData: false } );\n     *\n     * @see module:engine/model/markercollection~Marker\n     * @param {String|module:engine/model/markercollection~Marker} markerOrName Name of a marker to update, or a marker instance.\n     * @param {Object} [options] If options object is not defined then marker will be refreshed by triggering\n     * downcast conversion for this marker with the same data.\n     * @param {module:engine/model/range~Range} [options.range] Marker range to update.\n     * @param {Boolean} [options.usingOperation] Flag indicated whether the marker should be added by MarkerOperation.\n     * See {@link module:engine/model/markercollection~Marker#managedUsingOperations}.\n     * @param {Boolean} [options.affectsData] Flag indicating that the marker changes the editor data.\n     */\n\n  }, {\n    key: \"updateMarker\",\n    value: function updateMarker(markerOrName, options) {\n      this._assertWriterUsedCorrectly();\n\n      var markerName = typeof markerOrName == 'string' ? markerOrName : markerOrName.name;\n      var currentMarker = this.model.markers.get(markerName);\n\n      if (!currentMarker) {\n        /**\n         * Marker with provided name does not exists.\n         *\n         * @error writer-updateMarker-marker-not-exists\n         */\n        throw new CKEditorError('writer-updateMarker-marker-not-exists: Marker with provided name does not exists.', this);\n      }\n\n      if (!options) {\n        this.model.markers._refresh(currentMarker);\n\n        return;\n      }\n\n      var hasUsingOperationDefined = typeof options.usingOperation == 'boolean';\n      var affectsDataDefined = typeof options.affectsData == 'boolean'; // Use previously defined marker's affectsData if the property is not provided.\n\n      var affectsData = affectsDataDefined ? options.affectsData : currentMarker.affectsData;\n\n      if (!hasUsingOperationDefined && !options.range && !affectsDataDefined) {\n        /**\n         * One of the options is required - provide range, usingOperations or affectsData.\n         *\n         * @error writer-updateMarker-wrong-options\n         */\n        throw new CKEditorError('writer-updateMarker-wrong-options: One of the options is required - provide range, usingOperations or affectsData.', this);\n      }\n\n      var currentRange = currentMarker.getRange();\n      var updatedRange = options.range ? options.range : currentRange;\n\n      if (hasUsingOperationDefined && options.usingOperation !== currentMarker.managedUsingOperations) {\n        // The marker type is changed so it's necessary to create proper operations.\n        if (options.usingOperation) {\n          // If marker changes to a managed one treat this as synchronizing existing marker.\n          // Create `MarkerOperation` with `oldRange` set to `null`, so reverse operation will remove the marker.\n          applyMarkerOperation(this, markerName, null, updatedRange, affectsData);\n        } else {\n          // If marker changes to a marker that do not use operations then we need to create additional operation\n          // that removes that marker first.\n          applyMarkerOperation(this, markerName, currentRange, null, affectsData); // Although not managed the marker itself should stay in model and its range should be preserver or changed to passed range.\n\n          this.model.markers._set(markerName, updatedRange, undefined, affectsData);\n        }\n\n        return;\n      } // Marker's type doesn't change so update it accordingly.\n\n\n      if (currentMarker.managedUsingOperations) {\n        applyMarkerOperation(this, markerName, currentRange, updatedRange, affectsData);\n      } else {\n        this.model.markers._set(markerName, updatedRange, undefined, affectsData);\n      }\n    }\n    /**\n     * Removes given {@link module:engine/model/markercollection~Marker marker} or marker with given name.\n     * The marker is removed accordingly to how it has been created, so if the marker was created using operation,\n     * it will be destroyed using operation.\n     *\n     * @param {module:engine/model/markercollection~Marker|String} markerOrName Marker or marker name to remove.\n     */\n\n  }, {\n    key: \"removeMarker\",\n    value: function removeMarker(markerOrName) {\n      this._assertWriterUsedCorrectly();\n\n      var name = typeof markerOrName == 'string' ? markerOrName : markerOrName.name;\n\n      if (!this.model.markers.has(name)) {\n        /**\n         * Trying to remove marker which does not exist.\n         *\n         * @error writer-removeMarker-no-marker\n         */\n        throw new CKEditorError('writer-removeMarker-no-marker: Trying to remove marker which does not exist.', this);\n      }\n\n      var marker = this.model.markers.get(name);\n\n      if (!marker.managedUsingOperations) {\n        this.model.markers._remove(name);\n\n        return;\n      }\n\n      var oldRange = marker.getRange();\n      applyMarkerOperation(this, name, oldRange, null, marker.affectsData);\n    }\n    /**\n     * Sets the document's selection (ranges and direction) to the specified location based on the given\n     * {@link module:engine/model/selection~Selectable selectable} or creates an empty selection if no arguments were passed.\n     *\n     *\t\t// Sets selection to the given range.\n     *\t\tconst range = writer.createRange( start, end );\n     *\t\twriter.setSelection( range );\n     *\n     *\t\t// Sets selection to given ranges.\n     *\t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n     *\t\twriter.setSelection( range );\n     *\n     *\t\t// Sets selection to other selection.\n     *\t\tconst otherSelection = writer.createSelection();\n     *\t\twriter.setSelection( otherSelection );\n     *\n     *\t\t// Sets selection to the given document selection.\n     *\t\tconst documentSelection = model.document.selection;\n     *\t\twriter.setSelection( documentSelection );\n     *\n     *\t\t// Sets collapsed selection at the given position.\n     *\t\tconst position = writer.createPosition( root, path );\n     *\t\twriter.setSelection( position );\n     *\n     *\t\t// Sets collapsed selection at the position of the given node and an offset.\n     *\t\twriter.setSelection( paragraph, offset );\n     *\n     * Creates a range inside an {@link module:engine/model/element~Element element} which starts before the first child of\n    \t * that element and ends after the last child of that element.\n     *\n     *\t\twriter.setSelection( paragraph, 'in' );\n     *\n     * Creates a range on an {@link module:engine/model/item~Item item} which starts before the item and ends just after the item.\n     *\n     *\t\twriter.setSelection( paragraph, 'on' );\n     *\n     *\t\t// Removes all selection's ranges.\n     *\t\twriter.setSelection( null );\n     *\n     * `Writer#setSelection()` allow passing additional options (`backward`) as the last argument.\n     *\n     *\t\t// Sets selection as backward.\n     *\t\twriter.setSelection( range, { backward: true } );\n     *\n     * Throws `writer-incorrect-use` error when the writer is used outside the `change()` block.\n     *\n     * @param {module:engine/model/selection~Selectable} selectable\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     */\n\n  }, {\n    key: \"setSelection\",\n    value: function setSelection(selectable, placeOrOffset, options) {\n      this._assertWriterUsedCorrectly();\n\n      this.model.document.selection._setTo(selectable, placeOrOffset, options);\n    }\n    /**\n     * Moves {@link module:engine/model/documentselection~DocumentSelection#focus} to the specified location.\n     *\n     * The location can be specified in the same form as\n     * {@link #createPositionAt `writer.createPositionAt()`} parameters.\n     *\n     * @param {module:engine/model/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset=0] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/model/item~Item model item}.\n     */\n\n  }, {\n    key: \"setSelectionFocus\",\n    value: function setSelectionFocus(itemOrPosition, offset) {\n      this._assertWriterUsedCorrectly();\n\n      this.model.document.selection._setFocus(itemOrPosition, offset);\n    }\n    /**\n     * Sets attribute(s) on the selection. If attribute with the same key already is set, it's value is overwritten.\n     *\n     * Using key and value pair:\n     *\n     * \twriter.setSelectionAttribute( 'italic', true );\n     *\n     * Using key-value object:\n     *\n     * \twriter.setSelectionAttribute( { italic: true, bold: false } );\n     *\n     * Using iterable object:\n     *\n     * \twriter.setSelectionAttribute( new Map( [ [ 'italic', true ] ] ) );\n     *\n     * @param {String|Object|Iterable.<*>} keyOrObjectOrIterable Key of the attribute to set\n     * or object / iterable of key => value attribute pairs.\n     * @param {*} [value] Attribute value.\n     */\n\n  }, {\n    key: \"setSelectionAttribute\",\n    value: function setSelectionAttribute(keyOrObjectOrIterable, value) {\n      this._assertWriterUsedCorrectly();\n\n      if (typeof keyOrObjectOrIterable === 'string') {\n        this._setSelectionAttribute(keyOrObjectOrIterable, value);\n      } else {\n        var _iterator8 = _createForOfIteratorHelper(toMap(keyOrObjectOrIterable)),\n            _step8;\n\n        try {\n          for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n            var _step8$value = _slicedToArray(_step8.value, 2),\n                key = _step8$value[0],\n                _value = _step8$value[1];\n\n            this._setSelectionAttribute(key, _value);\n          }\n        } catch (err) {\n          _iterator8.e(err);\n        } finally {\n          _iterator8.f();\n        }\n      }\n    }\n    /**\n     * Removes attribute(s) with given key(s) from the selection.\n     *\n     * Remove one attribute:\n     *\n     *\t\twriter.removeSelectionAttribute( 'italic' );\n     *\n     * Remove multiple attributes:\n     *\n     *\t\twriter.removeSelectionAttribute( [ 'italic', 'bold' ] );\n     *\n     * @param {String|Iterable.<String>} keyOrIterableOfKeys Key of the attribute to remove or an iterable of attribute keys to remove.\n     */\n\n  }, {\n    key: \"removeSelectionAttribute\",\n    value: function removeSelectionAttribute(keyOrIterableOfKeys) {\n      this._assertWriterUsedCorrectly();\n\n      if (typeof keyOrIterableOfKeys === 'string') {\n        this._removeSelectionAttribute(keyOrIterableOfKeys);\n      } else {\n        var _iterator9 = _createForOfIteratorHelper(keyOrIterableOfKeys),\n            _step9;\n\n        try {\n          for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n            var key = _step9.value;\n\n            this._removeSelectionAttribute(key);\n          }\n        } catch (err) {\n          _iterator9.e(err);\n        } finally {\n          _iterator9.f();\n        }\n      }\n    }\n    /**\n     * Temporarily changes the {@link module:engine/model/documentselection~DocumentSelection#isGravityOverridden gravity}\n     * of the selection from left to right.\n     *\n     * The gravity defines from which direction the selection inherits its attributes. If it's the default left gravity,\n     * then the selection (after being moved by the user) inherits attributes from its left-hand side.\n     * This method allows to temporarily override this behavior by forcing the gravity to the right.\n     *\n     * For the following model fragment:\n     *\n     *\t\t<$text bold=\"true\" linkHref=\"url\">bar[]</$text><$text bold=\"true\">biz</$text>\n     *\n     * * Default gravity: selection will have the `bold` and `linkHref` attributes.\n     * * Overridden gravity: selection will have `bold` attribute.\n     *\n     * **Note**: It returns an unique identifier which is required to restore the gravity. It guarantees the symmetry\n     * of the process.\n     *\n     * @returns {String} The unique id which allows restoring the gravity.\n     */\n\n  }, {\n    key: \"overrideSelectionGravity\",\n    value: function overrideSelectionGravity() {\n      return this.model.document.selection._overrideGravity();\n    }\n    /**\n     * Restores {@link ~Writer#overrideSelectionGravity} gravity to default.\n     *\n     * Restoring the gravity is only possible using the unique identifier returned by\n     * {@link ~Writer#overrideSelectionGravity}. Note that the gravity remains overridden as long as won't be restored\n     * the same number of times it was overridden.\n     *\n     * @param {String} uid The unique id returned by {@link ~Writer#overrideSelectionGravity}.\n     */\n\n  }, {\n    key: \"restoreSelectionGravity\",\n    value: function restoreSelectionGravity(uid) {\n      this.model.document.selection._restoreGravity(uid);\n    }\n    /**\n     * @private\n     * @param {String} key Key of the attribute to remove.\n     * @param {*} value Attribute value.\n     */\n\n  }, {\n    key: \"_setSelectionAttribute\",\n    value: function _setSelectionAttribute(key, value) {\n      var selection = this.model.document.selection; // Store attribute in parent element if the selection is collapsed in an empty node.\n\n      if (selection.isCollapsed && selection.anchor.parent.isEmpty) {\n        var storeKey = DocumentSelection._getStoreAttributeKey(key);\n\n        this.setAttribute(storeKey, value, selection.anchor.parent);\n      }\n\n      selection._setAttribute(key, value);\n    }\n    /**\n     * @private\n     * @param {String} key Key of the attribute to remove.\n     */\n\n  }, {\n    key: \"_removeSelectionAttribute\",\n    value: function _removeSelectionAttribute(key) {\n      var selection = this.model.document.selection; // Remove stored attribute from parent element if the selection is collapsed in an empty node.\n\n      if (selection.isCollapsed && selection.anchor.parent.isEmpty) {\n        var storeKey = DocumentSelection._getStoreAttributeKey(key);\n\n        this.removeAttribute(storeKey, selection.anchor.parent);\n      }\n\n      selection._removeAttribute(key);\n    }\n    /**\n     * Throws `writer-detached-writer-tries-to-modify-model` error when the writer is used outside of the `change()` block.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_assertWriterUsedCorrectly\",\n    value: function _assertWriterUsedCorrectly() {\n      /**\n       * Trying to use a writer outside a {@link module:engine/model/model~Model#change `change()`} or\n       * {@link module:engine/model/model~Model#enqueueChange `enqueueChange()`} blocks.\n       *\n       * The writer can only be used inside these blocks which ensures that the model\n       * can only be changed during such \"sessions\".\n       *\n       * @error writer-incorrect-use\n       */\n      if (this.model._currentWriter !== this) {\n        throw new CKEditorError('writer-incorrect-use: Trying to use a writer outside the change() block.', this);\n      }\n    }\n    /**\n     * For given action `type` and `positionOrRange` where the action happens, this function finds all affected markers\n     * and applies a marker operation with the new marker range equal to the current range. Thanks to this, the marker range\n     * can be later correctly processed during undo.\n     *\n     * @private\n     * @param {'move'|'merge'} type Writer action type.\n     * @param {module:engine/model/position~Position|module:engine/model/range~Range} positionOrRange Position or range\n     * where the writer action happens.\n     */\n\n  }, {\n    key: \"_addOperationForAffectedMarkers\",\n    value: function _addOperationForAffectedMarkers(type, positionOrRange) {\n      var _iterator10 = _createForOfIteratorHelper(this.model.markers),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var marker = _step10.value;\n\n          if (!marker.managedUsingOperations) {\n            continue;\n          }\n\n          var markerRange = marker.getRange();\n          var isAffected = false;\n\n          if (type == 'move') {\n            isAffected = positionOrRange.containsPosition(markerRange.start) || positionOrRange.start.isEqual(markerRange.start) || positionOrRange.containsPosition(markerRange.end) || positionOrRange.end.isEqual(markerRange.end);\n          } else {\n            // if type == 'merge'.\n            var elementBefore = positionOrRange.nodeBefore;\n            var elementAfter = positionOrRange.nodeAfter; //               Start:  <p>Foo[</p><p>Bar]</p>\n            //         After merge:  <p>Foo[Bar]</p>\n            // After undoing split:  <p>Foo</p><p>[Bar]</p>     <-- incorrect, needs remembering for undo.\n            //\n\n            var affectedInLeftElement = markerRange.start.parent == elementBefore && markerRange.start.isAtEnd; //               Start:  <p>[Foo</p><p>]Bar</p>\n            //         After merge:  <p>[Foo]Bar</p>\n            // After undoing split:  <p>[Foo]</p><p>Bar</p>     <-- incorrect, needs remembering for undo.\n            //\n\n            var affectedInRightElement = markerRange.end.parent == elementAfter && markerRange.end.offset == 0; //               Start:  <p>[Foo</p>]<p>Bar</p>\n            //         After merge:  <p>[Foo]Bar</p>\n            // After undoing split:  <p>[Foo]</p><p>Bar</p>     <-- incorrect, needs remembering for undo.\n            //\n\n            var affectedAfterLeftElement = markerRange.end.nodeAfter == elementAfter; //               Start:  <p>Foo</p>[<p>Bar]</p>\n            //         After merge:  <p>Foo[Bar]</p>\n            // After undoing split:  <p>Foo</p><p>[Bar]</p>     <-- incorrect, needs remembering for undo.\n            //\n\n            var affectedBeforeRightElement = markerRange.start.nodeAfter == elementAfter;\n            isAffected = affectedInLeftElement || affectedInRightElement || affectedAfterLeftElement || affectedBeforeRightElement;\n          }\n\n          if (isAffected) {\n            this.updateMarker(marker.name, {\n              range: markerRange\n            });\n          }\n        }\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n    }\n  }]);\n\n  return Writer;\n}(); // Sets given attribute to each node in given range. When attribute value is null then attribute will be removed.\n//\n// Because attribute operation needs to have the same attribute value on the whole range, this function splits\n// the range into smaller parts.\n//\n// Given `range` must be flat.\n//\n// @private\n// @param {module:engine/model/writer~Writer} writer\n// @param {String} key Attribute key.\n// @param {*} value Attribute new value.\n// @param {module:engine/model/range~Range} range Model range on which the attribute will be set.\n\n\nexport { Writer as default };\n\nfunction setAttributeOnRange(writer, key, value, range) {\n  var model = writer.model;\n  var doc = model.document; // Position of the last split, the beginning of the new range.\n\n  var lastSplitPosition = range.start; // Currently position in the scanning range. Because we need value after the position, it is not a current\n  // position of the iterator but the previous one (we need to iterate one more time to get the value after).\n\n  var position; // Value before the currently position.\n\n  var valueBefore; // Value after the currently position.\n\n  var valueAfter;\n\n  var _iterator11 = _createForOfIteratorHelper(range.getWalker({\n    shallow: true\n  })),\n      _step11;\n\n  try {\n    for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n      var val = _step11.value;\n      valueAfter = val.item.getAttribute(key); // At the first run of the iterator the position in undefined. We also do not have a valueBefore, but\n      // because valueAfter may be null, valueBefore may be equal valueAfter ( undefined == null ).\n\n      if (position && valueBefore != valueAfter) {\n        // if valueBefore == value there is nothing to change, so we add operation only if these values are different.\n        if (valueBefore != value) {\n          addOperation();\n        }\n\n        lastSplitPosition = position;\n      }\n\n      position = val.nextPosition;\n      valueBefore = valueAfter;\n    } // Because position in the loop is not the iterator position (see let position comment), the last position in\n    // the while loop will be last but one position in the range. We need to check the last position manually.\n\n  } catch (err) {\n    _iterator11.e(err);\n  } finally {\n    _iterator11.f();\n  }\n\n  if (position instanceof Position && position != lastSplitPosition && valueBefore != value) {\n    addOperation();\n  }\n\n  function addOperation() {\n    var range = new Range(lastSplitPosition, position);\n    var version = range.root.document ? doc.version : null;\n    var operation = new AttributeOperation(range, key, valueBefore, value, version);\n    writer.batch.addOperation(operation);\n    model.applyOperation(operation);\n  }\n} // Sets given attribute to the given node. When attribute value is null then attribute will be removed.\n//\n// @private\n// @param {module:engine/model/writer~Writer} writer\n// @param {String} key Attribute key.\n// @param {*} value Attribute new value.\n// @param {module:engine/model/item~Item} item Model item on which the attribute will be set.\n\n\nfunction setAttributeOnItem(writer, key, value, item) {\n  var model = writer.model;\n  var doc = model.document;\n  var previousValue = item.getAttribute(key);\n  var range, operation;\n\n  if (previousValue != value) {\n    var isRootChanged = item.root === item;\n\n    if (isRootChanged) {\n      // If we change attributes of root element, we have to use `RootAttributeOperation`.\n      var version = item.document ? doc.version : null;\n      operation = new RootAttributeOperation(item, key, previousValue, value, version);\n    } else {\n      range = new Range(Position._createBefore(item), writer.createPositionAfter(item));\n\n      var _version = range.root.document ? doc.version : null;\n\n      operation = new AttributeOperation(range, key, previousValue, value, _version);\n    }\n\n    writer.batch.addOperation(operation);\n    model.applyOperation(operation);\n  }\n} // Creates and applies marker operation to {@link module:engine/model/operation/operation~Operation operation}.\n//\n// @private\n// @param {module:engine/model/writer~Writer} writer\n// @param {String} name Marker name.\n// @param {module:engine/model/range~Range} oldRange Marker range before the change.\n// @param {module:engine/model/range~Range} newRange Marker range after the change.\n// @param {Boolean} affectsData\n\n\nfunction applyMarkerOperation(writer, name, oldRange, newRange, affectsData) {\n  var model = writer.model;\n  var doc = model.document;\n  var operation = new MarkerOperation(name, oldRange, newRange, model.markers, affectsData, doc.version);\n  writer.batch.addOperation(operation);\n  model.applyOperation(operation);\n} // Creates `MoveOperation` or `DetachOperation` that removes `howMany` nodes starting from `position`.\n// The operation will be applied on given model instance and added to given operation instance.\n//\n// @private\n// @param {module:engine/model/position~Position} position Position from which nodes are removed.\n// @param {Number} howMany Number of nodes to remove.\n// @param {Batch} batch Batch to which the operation will be added.\n// @param {module:engine/model/model~Model} model Model instance on which operation will be applied.\n\n\nfunction applyRemoveOperation(position, howMany, batch, model) {\n  var operation;\n\n  if (position.root.document) {\n    var doc = model.document;\n    var graveyardPosition = new Position(doc.graveyard, [0]);\n    operation = new MoveOperation(position, howMany, graveyardPosition, doc.version);\n  } else {\n    operation = new DetachOperation(position, howMany);\n  }\n\n  batch.addOperation(operation);\n  model.applyOperation(operation);\n} // Returns `true` if both root elements are the same element or both are documents root elements.\n//\n// Elements in the same tree can be moved (for instance you can move element form one documents root to another, or\n// within the same document fragment), but when element supposed to be moved from document fragment to the document, or\n// to another document it should be removed and inserted to avoid problems with OT. This is because features like undo or\n// collaboration may track changes on the document but ignore changes on detached fragments and should not get\n// unexpected `move` operation.\n\n\nfunction isSameTree(rootA, rootB) {\n  // If it is the same root this is the same tree.\n  if (rootA === rootB) {\n    return true;\n  } // If both roots are documents root it is operation within the document what we still treat as the same tree.\n\n\n  if (rootA instanceof RootElement && rootB instanceof RootElement) {\n    return true;\n  }\n\n  return false;\n}","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/utils/bindtwostepcarettoattribute\n */\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport priorities from '@ckeditor/ckeditor5-utils/src/priorities';\n/**\n * This helper enables the two-step caret (phantom) movement behavior for the given {@link module:engine/model/model~Model}\n * attribute on arrow right (<kbd>→</kbd>) and left (<kbd>←</kbd>) key press.\n *\n * Thanks to this (phantom) caret movement the user is able to type before/after as well as at the\n * beginning/end of an attribute.\n *\n * **Note:** This helper support right–to–left (Arabic, Hebrew, etc.) content by mirroring its behavior\n * but for the sake of simplicity examples showcase only left–to–right use–cases.\n *\n * # Forward movement\n *\n * ## \"Entering\" an attribute:\n *\n * When this behavior is enabled for the `a` attribute and the selection is right before it\n * (at the attribute boundary), pressing the right arrow key will not move the selection but update its\n * attributes accordingly:\n *\n * * When enabled:\n *\n *   \t\tfoo{}<$text a=\"true\">bar</$text>\n *\n *    <kbd>→</kbd>\n *\n *   \t\tfoo<$text a=\"true\">{}bar</$text>\n *\n * * When disabled:\n *\n *   \t\tfoo{}<$text a=\"true\">bar</$text>\n *\n *   <kbd>→</kbd>\n *\n *   \t\tfoo<$text a=\"true\">b{}ar</$text>\n *\n *\n * ## \"Leaving\" an attribute:\n *\n * * When enabled:\n *\n *   \t\t<$text a=\"true\">bar{}</$text>baz\n *\n *    <kbd>→</kbd>\n *\n *   \t\t<$text a=\"true\">bar</$text>{}baz\n *\n * * When disabled:\n *\n *   \t\t<$text a=\"true\">bar{}</$text>baz\n *\n *   <kbd>→</kbd>\n *\n *   \t\t<$text a=\"true\">bar</$text>b{}az\n *\n * # Backward movement\n *\n * * When enabled:\n *\n *   \t\t<$text a=\"true\">bar</$text>{}baz\n *\n *    <kbd>←</kbd>\n *\n *   \t\t<$text a=\"true\">bar{}</$text>baz\n *\n * * When disabled:\n *\n *   \t\t<$text a=\"true\">bar</$text>{}baz\n *\n *   <kbd>←</kbd>\n *\n *   \t\t<$text a=\"true\">ba{}r</$text>b{}az\n *\n * @param {Object} options Helper options.\n * @param {module:engine/view/view~View} options.view View controller instance.\n * @param {module:engine/model/model~Model} options.model Data model instance.\n * @param {module:utils/dom/emittermixin~Emitter} options.emitter The emitter to which this behavior should be added\n * (e.g. a plugin instance).\n * @param {String} options.attribute Attribute for which this behavior will be added.\n * @param {module:utils/locale~Locale} options.locale The {@link module:core/editor/editor~Editor#locale} instance.\n */\n\nexport default function bindTwoStepCaretToAttribute(_ref) {\n  var view = _ref.view,\n      model = _ref.model,\n      emitter = _ref.emitter,\n      attribute = _ref.attribute,\n      locale = _ref.locale;\n  var twoStepCaretHandler = new TwoStepCaretHandler(model, emitter, attribute);\n  var modelSelection = model.document.selection; // Listen to keyboard events and handle the caret movement according to the 2-step caret logic.\n  //\n  // Note: This listener has the \"high+1\" priority:\n  // * \"high\" because of the filler logic implemented in the renderer which also engages on #keydown.\n  // When the gravity is overridden the attributes of the (model) selection attributes are reset.\n  // It may end up with the filler kicking in and breaking the selection.\n  // * \"+1\" because we would like to avoid collisions with other features (like Widgets), which\n  // take over the keydown events with the \"high\" priority. Two-step caret movement takes precedence\n  // over Widgets in that matter.\n  //\n  // Find out more in https://github.com/ckeditor/ckeditor5-engine/issues/1301.\n\n  emitter.listenTo(view.document, 'keydown', function (evt, data) {\n    // This implementation works only for collapsed selection.\n    if (!modelSelection.isCollapsed) {\n      return;\n    } // When user tries to expand the selection or jump over the whole word or to the beginning/end then\n    // two-steps movement is not necessary.\n\n\n    if (data.shiftKey || data.altKey || data.ctrlKey) {\n      return;\n    }\n\n    var arrowRightPressed = data.keyCode == keyCodes.arrowright;\n    var arrowLeftPressed = data.keyCode == keyCodes.arrowleft; // When neither left or right arrow has been pressed then do noting.\n\n    if (!arrowRightPressed && !arrowLeftPressed) {\n      return;\n    }\n\n    var position = modelSelection.getFirstPosition();\n    var contentDirection = locale.contentLanguageDirection;\n    var isMovementHandled;\n\n    if (contentDirection === 'ltr' && arrowRightPressed || contentDirection === 'rtl' && arrowLeftPressed) {\n      isMovementHandled = twoStepCaretHandler.handleForwardMovement(position, data);\n    } else {\n      isMovementHandled = twoStepCaretHandler.handleBackwardMovement(position, data);\n    } // Stop the keydown event if the two-step caret movement handled it. Avoid collisions\n    // with other features which may also take over the caret movement (e.g. Widget).\n\n\n    if (isMovementHandled) {\n      evt.stop();\n    }\n  }, {\n    priority: priorities.get('high') + 1\n  });\n}\n/**\n * This is a protected helper–class for {@link module:engine/utils/bindtwostepcarettoattribute}.\n * It handles the state of the 2-step caret movement for a single {@link module:engine/model/model~Model}\n * attribute upon the `keypress` in the {@link module:engine/view/view~View}.\n *\n * @protected\n */\n\nexport var TwoStepCaretHandler = /*#__PURE__*/function () {\n  /*\n   * Creates two step handler instance.\n   *\n   * @param {module:engine/model/model~Model} model Data model instance.\n   * @param {module:utils/dom/emittermixin~Emitter} emitter The emitter to which this behavior should be added\n   * (e.g. a plugin instance).\n   * @param {String} attribute Attribute for which the behavior will be added.\n   */\n  function TwoStepCaretHandler(model, emitter, attribute) {\n    var _this = this;\n\n    _classCallCheck(this, TwoStepCaretHandler);\n\n    /**\n     * The model instance this class instance operates on.\n     *\n     * @readonly\n     * @member {module:engine/model/model~Model#schema}\n     */\n    this.model = model;\n    /**\n     * The Attribute this class instance operates on.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    this.attribute = attribute;\n    /**\n     * A reference to the document selection.\n     *\n     * @private\n     * @member {module:engine/model/selection~Selection}\n     */\n\n    this._modelSelection = model.document.selection;\n    /**\n     * The current UID of the overridden gravity, as returned by\n     * {@link module:engine/model/writer~Writer#overrideSelectionGravity}.\n     *\n     * @private\n     * @member {String}\n     */\n\n    this._overrideUid = null;\n    /**\n     * A flag indicating that the automatic gravity restoration for this attribute\n     * should not happen upon the next\n     * {@link module:engine/model/selection~Selection#event:change:range} event.\n     *\n     * @private\n     * @member {String}\n     */\n\n    this._isNextGravityRestorationSkipped = false; // The automatic gravity restoration logic.\n\n    emitter.listenTo(this._modelSelection, 'change:range', function (evt, data) {\n      // Skipping the automatic restoration is needed if the selection should change\n      // but the gravity must remain overridden afterwards. See the #handleBackwardMovement\n      // to learn more.\n      if (_this._isNextGravityRestorationSkipped) {\n        _this._isNextGravityRestorationSkipped = false;\n        return;\n      } // Skip automatic restore when the gravity is not overridden — simply, there's nothing to restore\n      // at this moment.\n\n\n      if (!_this._isGravityOverridden) {\n        return;\n      } // Skip automatic restore when the change is indirect AND the selection is at the attribute boundary.\n      // It means that e.g. if the change was external (collaboration) and the user had their\n      // selection around the link, its gravity should remain intact in this change:range event.\n\n\n      if (!data.directChange && isAtBoundary(_this._modelSelection.getFirstPosition(), attribute)) {\n        return;\n      }\n\n      _this._restoreGravity();\n    });\n  }\n  /**\n   * Updates the document selection and the view according to the two–step caret movement state\n   * when moving **forwards**. Executed upon `keypress` in the {@link module:engine/view/view~View}.\n   *\n   * @param {module:engine/model/position~Position} position The model position at the moment of the key press.\n   * @param {module:engine/view/observer/domeventdata~DomEventData} data Data of the key press.\n   * @returns {Boolean} `true` when the handler prevented caret movement\n   */\n\n\n  _createClass(TwoStepCaretHandler, [{\n    key: \"handleForwardMovement\",\n    value: function handleForwardMovement(position, data) {\n      var attribute = this.attribute; // DON'T ENGAGE 2-SCM if gravity is already overridden. It means that we just entered\n      //\n      // \t\t<paragraph>foo<$text attribute>{}bar</$text>baz</paragraph>\n      //\n      // or left the attribute\n      //\n      // \t\t<paragraph>foo<$text attribute>bar</$text>{}baz</paragraph>\n      //\n      // and the gravity will be restored automatically.\n\n      if (this._isGravityOverridden) {\n        return;\n      } // DON'T ENGAGE 2-SCM when the selection is at the beginning of the block AND already has the\n      // attribute:\n      // * when the selection was initially set there using the mouse,\n      // * when the editor has just started\n      //\n      //\t\t<paragraph><$text attribute>{}bar</$text>baz</paragraph>\n      //\n\n\n      if (position.isAtStart && this._hasSelectionAttribute) {\n        return;\n      } // ENGAGE 2-SCM when about to leave one attribute value and enter another:\n      //\n      // \t\t<paragraph><$text attribute=\"1\">foo{}</$text><$text attribute=\"2\">bar</$text></paragraph>\n      //\n      // but DON'T when already in between of them (no attribute selection):\n      //\n      // \t\t<paragraph><$text attribute=\"1\">foo</$text>{}<$text attribute=\"2\">bar</$text></paragraph>\n      //\n\n\n      if (isBetweenDifferentValues(position, attribute) && this._hasSelectionAttribute) {\n        this._preventCaretMovement(data);\n\n        this._removeSelectionAttribute();\n\n        return true;\n      } // ENGAGE 2-SCM when entering an attribute:\n      //\n      // \t\t<paragraph>foo{}<$text attribute>bar</$text>baz</paragraph>\n      //\n\n\n      if (isAtStartBoundary(position, attribute)) {\n        this._preventCaretMovement(data);\n\n        this._overrideGravity();\n\n        return true;\n      } // ENGAGE 2-SCM when leaving an attribute:\n      //\n      //\t\t<paragraph>foo<$text attribute>bar{}</$text>baz</paragraph>\n      //\n\n\n      if (isAtEndBoundary(position, attribute) && this._hasSelectionAttribute) {\n        this._preventCaretMovement(data);\n\n        this._overrideGravity();\n\n        return true;\n      }\n    }\n    /**\n     * Updates the document selection and the view according to the two–step caret movement state\n     * when moving **backwards**. Executed upon `keypress` in the {@link module:engine/view/view~View}.\n     *\n     * @param {module:engine/model/position~Position} position The model position at the moment of the key press.\n     * @param {module:engine/view/observer/domeventdata~DomEventData} data Data of the key press.\n     * @returns {Boolean} `true` when the handler prevented caret movement\n     */\n\n  }, {\n    key: \"handleBackwardMovement\",\n    value: function handleBackwardMovement(position, data) {\n      var attribute = this.attribute; // When the gravity is already overridden...\n\n      if (this._isGravityOverridden) {\n        // ENGAGE 2-SCM & REMOVE SELECTION ATTRIBUTE\n        // when about to leave one attribute value and enter another:\n        //\n        // \t\t<paragraph><$text attribute=\"1\">foo</$text><$text attribute=\"2\">{}bar</$text></paragraph>\n        //\n        // but DON'T when already in between of them (no attribute selection):\n        //\n        // \t\t<paragraph><$text attribute=\"1\">foo</$text>{}<$text attribute=\"2\">bar</$text></paragraph>\n        //\n        if (isBetweenDifferentValues(position, attribute) && this._hasSelectionAttribute) {\n          this._preventCaretMovement(data);\n\n          this._restoreGravity();\n\n          this._removeSelectionAttribute();\n\n          return true;\n        } // ENGAGE 2-SCM when at any boundary of the attribute:\n        //\n        // \t\t<paragraph>foo<$text attribute>bar</$text>{}baz</paragraph>\n        // \t\t<paragraph>foo<$text attribute>{}bar</$text>baz</paragraph>\n        //\n        else {\n            this._preventCaretMovement(data);\n\n            this._restoreGravity(); // REMOVE SELECTION ATRIBUTE at the beginning of the block.\n            // It's like restoring gravity but towards a non-existent content when\n            // the gravity is overridden:\n            //\n            // \t\t<paragraph><$text attribute>{}bar</$text></paragraph>\n            //\n            // becomes:\n            //\n            // \t\t<paragraph>{}<$text attribute>bar</$text></paragraph>\n            //\n\n\n            if (position.isAtStart) {\n              this._removeSelectionAttribute();\n            }\n\n            return true;\n          }\n      } else {\n        // ENGAGE 2-SCM when between two different attribute values but selection has no attribute:\n        //\n        // \t\t<paragraph><$text attribute=\"1\">foo</$text>{}<$text attribute=\"2\">bar</$text></paragraph>\n        //\n        if (isBetweenDifferentValues(position, attribute) && !this._hasSelectionAttribute) {\n          this._preventCaretMovement(data);\n\n          this._setSelectionAttributeFromTheNodeBefore(position);\n\n          return true;\n        } // End of block boundary cases:\n        //\n        // \t\t<paragraph><$text attribute>bar{}</$text></paragraph>\n        // \t\t<paragraph><$text attribute>bar</$text>{}</paragraph>\n        //\n\n\n        if (position.isAtEnd && isAtEndBoundary(position, attribute)) {\n          // DON'T ENGAGE 2-SCM if the selection has the attribute already.\n          // This is a common selection if set using the mouse.\n          //\n          // \t\t<paragraph><$text attribute>bar{}</$text></paragraph>\n          //\n          if (this._hasSelectionAttribute) {\n            // DON'T ENGAGE 2-SCM if the attribute at the end of the block which has length == 1.\n            // Make sure the selection will not the attribute after it moves backwards.\n            //\n            // \t\t<paragraph>foo<$text attribute>b{}</$text></paragraph>\n            //\n            if (isStepAfterTheAttributeBoundary(position, attribute)) {\n              // Skip the automatic gravity restore upon the next selection#change:range event.\n              // If not skipped, it would automatically restore the gravity, which should remain\n              // overridden.\n              this._skipNextAutomaticGravityRestoration();\n\n              this._overrideGravity(); // Don't return \"true\" here because we didn't call _preventCaretMovement.\n              // Returning here will destabilize the filler logic, which also listens to\n              // keydown (and the event would be stopped).\n\n            }\n\n            return;\n          } // ENGAGE 2-SCM if the selection has no attribute. This may happen when the user\n          // left the attribute using a FORWARD 2-SCM.\n          //\n          // \t\t<paragraph><$text attribute>bar</$text>{}</paragraph>\n          //\n          else {\n              this._preventCaretMovement(data);\n\n              this._setSelectionAttributeFromTheNodeBefore(position);\n\n              return true;\n            }\n        } // REMOVE SELECTION ATRIBUTE when restoring gravity towards a non-existent content at the\n        // beginning of the block.\n        //\n        // \t\t<paragraph>{}<$text attribute>bar</$text></paragraph>\n        //\n\n\n        if (position.isAtStart) {\n          if (this._hasSelectionAttribute) {\n            this._removeSelectionAttribute();\n\n            this._preventCaretMovement(data);\n\n            return true;\n          }\n\n          return;\n        } // DON'T ENGAGE 2-SCM when about to enter of leave an attribute.\n        // We need to check if the caret is a one position before the attribute boundary:\n        //\n        // \t\t<paragraph>foo<$text attribute>b{}ar</$text>baz</paragraph>\n        // \t\t<paragraph>foo<$text attribute>bar</$text>b{}az</paragraph>\n        //\n\n\n        if (isStepAfterTheAttributeBoundary(position, attribute)) {\n          // Skip the automatic gravity restore upon the next selection#change:range event.\n          // If not skipped, it would automatically restore the gravity, which should remain\n          // overridden.\n          this._skipNextAutomaticGravityRestoration();\n\n          this._overrideGravity(); // Don't return \"true\" here because we didn't call _preventCaretMovement.\n          // Returning here will destabilize the filler logic, which also listens to\n          // keydown (and the event would be stopped).\n\n        }\n      }\n    }\n    /**\n     * `true` when the gravity is overridden for the {@link #attribute}.\n     *\n     * @readonly\n     * @private\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"_overrideGravity\",\n\n    /**\n     * Overrides the gravity using the {@link module:engine/model/writer~Writer model writer}\n     * and stores the information about this fact in the {@link #_overrideUid}.\n     *\n     * A shorthand for {@link module:engine/model/writer~Writer#overrideSelectionGravity}.\n     *\n     * @private\n     */\n    value: function _overrideGravity() {\n      this._overrideUid = this.model.change(function (writer) {\n        return writer.overrideSelectionGravity();\n      });\n    }\n    /**\n     * Restores the gravity using the {@link module:engine/model/writer~Writer model writer}.\n     *\n     * A shorthand for {@link module:engine/model/writer~Writer#restoreSelectionGravity}.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_restoreGravity\",\n    value: function _restoreGravity() {\n      var _this2 = this;\n\n      this.model.change(function (writer) {\n        writer.restoreSelectionGravity(_this2._overrideUid);\n        _this2._overrideUid = null;\n      });\n    }\n    /**\n     * Prevents the caret movement in the view by calling `preventDefault` on the event data.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_preventCaretMovement\",\n    value: function _preventCaretMovement(data) {\n      data.preventDefault();\n    }\n    /**\n     * Removes the {@link #attribute} from the selection using using the\n     * {@link module:engine/model/writer~Writer model writer}.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_removeSelectionAttribute\",\n    value: function _removeSelectionAttribute() {\n      var _this3 = this;\n\n      this.model.change(function (writer) {\n        writer.removeSelectionAttribute(_this3.attribute);\n      });\n    }\n    /**\n     * Applies the {@link #attribute} to the current selection using using the\n     * value from the node before the current position. Uses\n     * the {@link module:engine/model/writer~Writer model writer}.\n     *\n     * @private\n     * @param {module:engine/model/position~Position} position\n     */\n\n  }, {\n    key: \"_setSelectionAttributeFromTheNodeBefore\",\n    value: function _setSelectionAttributeFromTheNodeBefore(position) {\n      var _this4 = this;\n\n      var attribute = this.attribute;\n      this.model.change(function (writer) {\n        writer.setSelectionAttribute(_this4.attribute, position.nodeBefore.getAttribute(attribute));\n      });\n    }\n    /**\n     * Skips the next automatic selection gravity restoration upon the\n     * {@link module:engine/model/selection~Selection#event:change:range} event.\n     *\n     * See {@link #_isNextGravityRestorationSkipped}.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_skipNextAutomaticGravityRestoration\",\n    value: function _skipNextAutomaticGravityRestoration() {\n      this._isNextGravityRestorationSkipped = true;\n    }\n  }, {\n    key: \"_isGravityOverridden\",\n    get: function get() {\n      return !!this._overrideUid;\n    }\n    /**\n     * `true` when the {@link module:engine/model/selection~Selection} has the {@link #attribute}.\n     *\n     * @readonly\n     * @private\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"_hasSelectionAttribute\",\n    get: function get() {\n      return this._modelSelection.hasAttribute(this.attribute);\n    }\n  }]);\n\n  return TwoStepCaretHandler;\n}(); // @param {module:engine/model/position~Position} position\n// @param {String} attribute\n// @returns {Boolean} `true` when position between the nodes sticks to the bound of text with given attribute.\n\nfunction isAtBoundary(position, attribute) {\n  return isAtStartBoundary(position, attribute) || isAtEndBoundary(position, attribute);\n} // @param {module:engine/model/position~Position} position\n// @param {String} attribute\n\n\nfunction isAtStartBoundary(position, attribute) {\n  var nodeBefore = position.nodeBefore,\n      nodeAfter = position.nodeAfter;\n  var isAttrBefore = nodeBefore ? nodeBefore.hasAttribute(attribute) : false;\n  var isAttrAfter = nodeAfter ? nodeAfter.hasAttribute(attribute) : false;\n  return isAttrAfter && (!isAttrBefore || nodeBefore.getAttribute(attribute) !== nodeAfter.getAttribute(attribute));\n} // @param {module:engine/model/position~Position} position\n// @param {String} attribute\n\n\nfunction isAtEndBoundary(position, attribute) {\n  var nodeBefore = position.nodeBefore,\n      nodeAfter = position.nodeAfter;\n  var isAttrBefore = nodeBefore ? nodeBefore.hasAttribute(attribute) : false;\n  var isAttrAfter = nodeAfter ? nodeAfter.hasAttribute(attribute) : false;\n  return isAttrBefore && (!isAttrAfter || nodeBefore.getAttribute(attribute) !== nodeAfter.getAttribute(attribute));\n} // @param {module:engine/model/position~Position} position\n// @param {String} attribute\n\n\nfunction isBetweenDifferentValues(position, attribute) {\n  var nodeBefore = position.nodeBefore,\n      nodeAfter = position.nodeAfter;\n  var isAttrBefore = nodeBefore ? nodeBefore.hasAttribute(attribute) : false;\n  var isAttrAfter = nodeAfter ? nodeAfter.hasAttribute(attribute) : false;\n\n  if (!isAttrAfter || !isAttrBefore) {\n    return;\n  }\n\n  return nodeAfter.getAttribute(attribute) !== nodeBefore.getAttribute(attribute);\n} // @param {module:engine/model/position~Position} position\n// @param {String} attribute\n\n\nfunction isStepAfterTheAttributeBoundary(position, attribute) {\n  return isAtBoundary(position.getShiftedBy(-1), attribute);\n}","import \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/attributeelement\n */\nimport Element from \"./element\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror'; // Default attribute priority.\n\nvar DEFAULT_PRIORITY = 10;\n/**\n * Attribute elements are used to represent formatting elements in the view (think – `<b>`, `<span style=\"font-size: 2em\">`, etc.).\n * Most often they are created when downcasting model text attributes.\n *\n * Editing engine does not define a fixed HTML DTD. This is why a feature developer needs to choose between various\n * types (container element, {@link module:engine/view/attributeelement~AttributeElement attribute element},\n * {@link module:engine/view/emptyelement~EmptyElement empty element}, etc) when developing a feature.\n *\n * To create a new attribute element instance use the\n * {@link module:engine/view/downcastwriter~DowncastWriter#createAttributeElement `DowncastWriter#createAttributeElement()`} method.\n *\n * @extends module:engine/view/element~Element\n */\n\nvar AttributeElement = /*#__PURE__*/function (_Element) {\n  _inherits(AttributeElement, _Element);\n\n  var _super = _createSuper(AttributeElement);\n\n  /**\n   * Creates an attribute element.\n   *\n   * @see module:engine/view/downcastwriter~DowncastWriter#createAttributeElement\n   * @see module:engine/view/element~Element\n   * @protected\n   */\n  function AttributeElement(name, attrs, children) {\n    var _this;\n\n    _classCallCheck(this, AttributeElement);\n\n    _this = _super.call(this, name, attrs, children);\n    /**\n     * Returns block {@link module:engine/view/filler filler} offset or `null` if block filler is not needed.\n     *\n     * @method #getFillerOffset\n     * @returns {Number|null} Block filler offset or `null` if block filler is not needed.\n     */\n\n    _this.getFillerOffset = getFillerOffset;\n    /**\n     * Element priority. Decides in what order elements are wrapped by {@link module:engine/view/downcastwriter~DowncastWriter}.\n     *\n     * @protected\n     * @member {Number}\n     */\n\n    _this._priority = DEFAULT_PRIORITY;\n    /**\n     * Element identifier. If set, it is used by {@link module:engine/view/element~Element#isSimilar},\n     * and then two elements are considered similar if, and only if they have the same `_id`.\n     *\n     * @protected\n     * @member {String|Number}\n     */\n\n    _this._id = null;\n    /**\n     * Keeps all the attribute elements that have the same {@link module:engine/view/attributeelement~AttributeElement#id ids}\n     * and still exist in the view tree.\n     *\n     * This property is managed by {@link module:engine/view/downcastwriter~DowncastWriter}.\n     *\n     * @protected\n     * @member {Set.<module:engine/view/attributeelement~AttributeElement>|null}\n     */\n\n    _this._clonesGroup = null;\n    return _this;\n  }\n  /**\n   * Element priority. Decides in what order elements are wrapped by {@link module:engine/view/downcastwriter~DowncastWriter}.\n   *\n   * @readonly\n   * @type {Number}\n   */\n\n\n  _createClass(AttributeElement, [{\n    key: \"getElementsWithSameId\",\n\n    /**\n     * Returns all {@link module:engine/view/attributeelement~AttributeElement attribute elements} that has the\n     * same {@link module:engine/view/attributeelement~AttributeElement#id id} and are in the view tree (were not removed).\n     *\n     * Note: If this element has been removed from the tree, returned set will not include it.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError attribute-element-get-elements-with-same-id-no-id}\n     * if this element has no `id`.\n     *\n     * @returns {Set.<module:engine/view/attributeelement~AttributeElement>} Set containing all the attribute elements\n     * with the same `id` that were added and not removed from the view tree.\n     */\n    value: function getElementsWithSameId() {\n      if (this.id === null) {\n        /**\n         * Cannot get elements with the same id for an attribute element without id.\n         *\n         * @error attribute-element-get-elements-with-same-id-no-id\n         */\n        throw new CKEditorError('attribute-element-get-elements-with-same-id-no-id: ' + 'Cannot get elements with the same id for an attribute element without id.', this);\n      }\n\n      return new Set(this._clonesGroup);\n    }\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\tattributeElement.is( 'attributeElement' ); // -> true\n     *\t\tattributeElement.is( 'element' ); // -> true\n     *\t\tattributeElement.is( 'node' ); // -> true\n     *\t\tattributeElement.is( 'view:attributeElement' ); // -> true\n     *\t\tattributeElement.is( 'view:element' ); // -> true\n     *\t\tattributeElement.is( 'view:node' ); // -> true\n     *\n     *\t\tattributeElement.is( 'model:element' ); // -> false\n     *\t\tattributeElement.is( 'documentFragment' ); // -> false\n     *\n     * Assuming that the object being checked is an attribute element, you can also check its\n     * {@link module:engine/view/attributeelement~AttributeElement#name name}:\n     *\n     *\t\tattributeElement.is( 'b' ); // -> true if this is a bold element\n     *\t\tattributeElement.is( 'attributeElement', 'b' ); // -> same as above\n     *\t\ttext.is( 'b' ); -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type Type to check when `name` parameter is present.\n     * Otherwise, it acts like the `name` parameter.\n     * @param {String} [name] Element name.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type && type.replace(/^view:/, '');\n\n      if (!name) {\n        return cutType == 'attributeElement' || _get(_getPrototypeOf(AttributeElement.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'attributeElement' && name == this.name || _get(_getPrototypeOf(AttributeElement.prototype), \"is\", this).call(this, type, name);\n      }\n    }\n    /**\n     * Checks if this element is similar to other element.\n     *\n     * If none of elements has set {@link module:engine/view/attributeelement~AttributeElement#id}, then both elements\n     * should have the same name, attributes and priority to be considered as similar. Two similar elements can contain\n     * different set of children nodes.\n     *\n     * If at least one element has {@link module:engine/view/attributeelement~AttributeElement#id} set, then both\n     * elements have to have the same {@link module:engine/view/attributeelement~AttributeElement#id} value to be\n     * considered similar.\n     *\n     * Similarity is important for {@link module:engine/view/downcastwriter~DowncastWriter}. For example:\n     *\n     * * two following similar elements can be merged together into one, longer element,\n     * * {@link module:engine/view/downcastwriter~DowncastWriter#unwrap} checks similarity of passed element and processed element to\n     * decide whether processed element should be unwrapped,\n     * * etc.\n     *\n     * @param {module:engine/view/element~Element} otherElement\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isSimilar\",\n    value: function isSimilar(otherElement) {\n      // If any element has an `id` set, just compare the ids.\n      if (this.id !== null || otherElement.id !== null) {\n        return this.id === otherElement.id;\n      }\n\n      return _get(_getPrototypeOf(AttributeElement.prototype), \"isSimilar\", this).call(this, otherElement) && this.priority == otherElement.priority;\n    }\n    /**\n     * Clones provided element with priority.\n     *\n     * @protected\n     * @param {Boolean} deep If set to `true` clones element and all its children recursively. When set to `false`,\n     * element will be cloned without any children.\n     * @returns {module:engine/view/attributeelement~AttributeElement} Clone of this element.\n     */\n\n  }, {\n    key: \"_clone\",\n    value: function _clone(deep) {\n      var cloned = _get(_getPrototypeOf(AttributeElement.prototype), \"_clone\", this).call(this, deep); // Clone priority too.\n\n\n      cloned._priority = this._priority; // And id too.\n\n      cloned._id = this._id;\n      return cloned;\n    }\n  }, {\n    key: \"priority\",\n    get: function get() {\n      return this._priority;\n    }\n    /**\n     * Element identifier. If set, it is used by {@link module:engine/view/element~Element#isSimilar},\n     * and then two elements are considered similar if, and only if they have the same `id`.\n     *\n     * @readonly\n     * @type {String|Number}\n     */\n\n  }, {\n    key: \"id\",\n    get: function get() {\n      return this._id;\n    }\n  }]);\n\n  return AttributeElement;\n}(Element);\n/**\n * Default attribute priority.\n *\n * @member {Number} module:engine/view/attributeelement~AttributeElement.DEFAULT_PRIORITY\n */\n\n\nexport { AttributeElement as default };\nAttributeElement.DEFAULT_PRIORITY = DEFAULT_PRIORITY; // Returns block {@link module:engine/view/filler~Filler filler} offset or `null` if block filler is not needed.\n//\n// @returns {Number|null} Block filler offset or `null` if block filler is not needed.\n\nfunction getFillerOffset() {\n  // <b>foo</b> does not need filler.\n  if (nonUiChildrenCount(this)) {\n    return null;\n  }\n\n  var element = this.parent; // <p><b></b></p> needs filler -> <p><b><br></b></p>\n\n  while (element && element.is('attributeElement')) {\n    if (nonUiChildrenCount(element) > 1) {\n      return null;\n    }\n\n    element = element.parent;\n  }\n\n  if (!element || nonUiChildrenCount(element) > 1) {\n    return null;\n  } // Render block filler at the end of element (after all ui elements).\n\n\n  return this.childCount;\n} // Returns total count of children that are not {@link module:engine/view/uielement~UIElement UIElements}.\n//\n// @param {module:engine/view/element~Element} element\n// @returns {Number}\n\n\nfunction nonUiChildrenCount(element) {\n  return Array.from(element.getChildren()).filter(function (element) {\n    return !element.is('uiElement');\n  }).length;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/containerelement\n */\nimport Element from \"./element\";\n/**\n * Containers are elements which define document structure. They define boundaries for\n * {@link module:engine/view/attributeelement~AttributeElement attributes}. They are mostly used for block elements like `<p>` or `<div>`.\n *\n * Editing engine does not define a fixed HTML DTD. This is why a feature developer needs to choose between various\n * types (container element, {@link module:engine/view/attributeelement~AttributeElement attribute element},\n * {@link module:engine/view/emptyelement~EmptyElement empty element}, etc) when developing a feature.\n *\n * The container element should be your default choice when writing a converter, unless:\n *\n * * this element represents a model text attribute (then use {@link module:engine/view/attributeelement~AttributeElement}),\n * * this is an empty element like `<img>` (then use {@link module:engine/view/emptyelement~EmptyElement}),\n * * this is a root element,\n * * this is a nested editable element (then use  {@link module:engine/view/editableelement~EditableElement}).\n *\n * To create a new container element instance use the\n * {@link module:engine/view/downcastwriter~DowncastWriter#createContainerElement `DowncastWriter#createContainerElement()`}\n * method.\n *\n * @extends module:engine/view/element~Element\n */\n\nvar ContainerElement = /*#__PURE__*/function (_Element) {\n  _inherits(ContainerElement, _Element);\n\n  var _super = _createSuper(ContainerElement);\n\n  /**\n   * Creates a container element.\n   *\n   * @see module:engine/view/downcastwriter~DowncastWriter#createContainerElement\n   * @see module:engine/view/element~Element\n   * @protected\n   */\n  function ContainerElement(name, attrs, children) {\n    var _this;\n\n    _classCallCheck(this, ContainerElement);\n\n    _this = _super.call(this, name, attrs, children);\n    /**\n     * Returns block {@link module:engine/view/filler filler} offset or `null` if block filler is not needed.\n     *\n     * @method #getFillerOffset\n     * @returns {Number|null} Block filler offset or `null` if block filler is not needed.\n     */\n\n    _this.getFillerOffset = getFillerOffset;\n    return _this;\n  }\n  /**\n   * Checks whether this object is of the given.\n   *\n   *\t\tcontainerElement.is( 'containerElement' ); // -> true\n   *\t\tcontainerElement.is( 'element' ); // -> true\n   *\t\tcontainerElement.is( 'node' ); // -> true\n   *\t\tcontainerElement.is( 'view:containerElement' ); // -> true\n   *\t\tcontainerElement.is( 'view:element' ); // -> true\n   *\t\tcontainerElement.is( 'view:node' ); // -> true\n   *\n   *\t\tcontainerElement.is( 'model:element' ); // -> false\n   *\t\tcontainerElement.is( 'documentFragment' ); // -> false\n   *\n   * Assuming that the object being checked is a container element, you can also check its\n   * {@link module:engine/view/containerelement~ContainerElement#name name}:\n   *\n   *\t\tcontainerElement.is( 'div' ); // -> true if this is a div container element\n   *\t\tcontainerElement.is( 'contaienrElement', 'div' ); // -> same as above\n   *\t\ttext.is( 'div' ); -> false\n   *\n   * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n   *\n   * @param {String} type Type to check when `name` parameter is present.\n   * Otherwise, it acts like the `name` parameter.\n   * @param {String} [name] Element name.\n   * @returns {Boolean}\n   */\n\n\n  _createClass(ContainerElement, [{\n    key: \"is\",\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type && type.replace(/^view:/, '');\n\n      if (!name) {\n        return cutType == 'containerElement' || _get(_getPrototypeOf(ContainerElement.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'containerElement' && name == this.name || _get(_getPrototypeOf(ContainerElement.prototype), \"is\", this).call(this, type, name);\n      }\n    }\n  }]);\n\n  return ContainerElement;\n}(Element);\n/**\n * Returns block {@link module:engine/view/filler filler} offset or `null` if block filler is not needed.\n *\n * @returns {Number|null} Block filler offset or `null` if block filler is not needed.\n */\n\n\nexport { ContainerElement as default };\nexport function getFillerOffset() {\n  var children = _toConsumableArray(this.getChildren());\n\n  var lastChild = children[this.childCount - 1]; // Block filler is required after a `<br>` if it's the last element in its container. See #1422.\n\n  if (lastChild && lastChild.is('element', 'br')) {\n    return this.childCount;\n  }\n\n  var _iterator = _createForOfIteratorHelper(children),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var child = _step.value;\n\n      // If there's any non-UI element – don't render the bogus.\n      if (!child.is('uiElement')) {\n        return null;\n      }\n    } // If there are only UI elements – render the bogus at the end of the element.\n\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return this.childCount;\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/document\n */\nimport DocumentSelection from \"./documentselection\";\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\n/**\n * Document class creates an abstract layer over the content editable area, contains a tree of view elements and\n * {@link module:engine/view/documentselection~DocumentSelection view selection} associated with this document.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar Document = /*#__PURE__*/function () {\n  /**\n   * Creates a Document instance.\n   */\n  function Document() {\n    _classCallCheck(this, Document);\n\n    /**\n     * Selection done on this document.\n     *\n     * @readonly\n     * @member {module:engine/view/documentselection~DocumentSelection} module:engine/view/document~Document#selection\n     */\n    this.selection = new DocumentSelection();\n    /**\n     * Roots of the view tree. Collection of the {@link module:engine/view/element~Element view elements}.\n     *\n     * View roots are created as a result of binding between {@link module:engine/view/document~Document#roots} and\n     * {@link module:engine/model/document~Document#roots} and this is handled by\n     * {@link module:engine/controller/editingcontroller~EditingController}, so to create view root we need to create\n     * model root using {@link module:engine/model/document~Document#createRoot}.\n     *\n     * @readonly\n     * @member {module:utils/collection~Collection} module:engine/view/document~Document#roots\n     */\n\n    this.roots = new Collection({\n      idProperty: 'rootName'\n    });\n    /**\n     * Defines whether document is in read-only mode.\n     *\n     * When document is read-ony then all roots are read-only as well and caret placed inside this root is hidden.\n     *\n     * @observable\n     * @member {Boolean} #isReadOnly\n     */\n\n    this.set('isReadOnly', false);\n    /**\n     * True if document is focused.\n     *\n     * This property is updated by the {@link module:engine/view/observer/focusobserver~FocusObserver}.\n     * If the {@link module:engine/view/observer/focusobserver~FocusObserver} is disabled this property will not change.\n     *\n     * @readonly\n     * @observable\n     * @member {Boolean} module:engine/view/document~Document#isFocused\n     */\n\n    this.set('isFocused', false);\n    /**\n     * True if composition is in progress inside the document.\n     *\n     * This property is updated by the {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n     * If the {@link module:engine/view/observer/compositionobserver~CompositionObserver} is disabled this property will not change.\n     *\n     * @readonly\n     * @observable\n     * @member {Boolean} module:engine/view/document~Document#isComposing\n     */\n\n    this.set('isComposing', false);\n    /**\n     * Post-fixer callbacks registered to the view document.\n     *\n     * @private\n     * @member {Set}\n     */\n\n    this._postFixers = new Set();\n  }\n  /**\n   * Gets a {@link module:engine/view/document~Document#roots view root element} with the specified name. If the name is not\n   * specific \"main\" root is returned.\n   *\n   * @param {String} [name='main'] Name of the root.\n   * @returns {module:engine/view/rooteditableelement~RootEditableElement|null} The view root element with the specified name\n   * or null when there is no root of given name.\n   */\n\n\n  _createClass(Document, [{\n    key: \"getRoot\",\n    value: function getRoot() {\n      var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'main';\n      return this.roots.get(name);\n    }\n    /**\n     * Allows registering post-fixer callbacks. A post-fixers mechanism allows to update the view tree just before it is rendered\n     * to the DOM.\n     *\n     * Post-fixers are executed right after all changes from the outermost change block were applied but\n     * before the {@link module:engine/view/view~View#event:render render event} is fired. If a post-fixer callback made\n     * a change, it should return `true`. When this happens, all post-fixers are fired again to check if something else should\n     * not be fixed in the new document tree state.\n     *\n     * View post-fixers are useful when you want to apply some fixes whenever the view structure changes. Keep in mind that\n     * changes executed in a view post-fixer should not break model-view mapping.\n     *\n     * The types of changes which should be safe:\n     *\n     * * adding or removing attribute from elements,\n     * * changes inside of {@link module:engine/view/uielement~UIElement UI elements},\n     * * {@link module:engine/model/differ~Differ#refreshItem marking some of the model elements to be re-converted}.\n     *\n     * Try to avoid changes which touch view structure:\n     *\n     * * you should not add or remove nor wrap or unwrap any view elements,\n     * * you should not change the editor data model in a view post-fixer.\n     *\n     * As a parameter, a post-fixer callback receives a {@link module:engine/view/downcastwriter~DowncastWriter downcast writer}.\n     *\n     * Typically, a post-fixer will look like this:\n     *\n     *\t\teditor.editing.view.document.registerPostFixer( writer => {\n     *\t\t\tif ( checkSomeCondition() ) {\n     *\t\t\t\twriter.doSomething();\n     *\n     *\t\t\t\t// Let other post-fixers know that something changed.\n     *\t\t\t\treturn true;\n     *\t\t\t}\n     *\t\t} );\n     *\n     * Note that nothing happens right after you register a post-fixer (e.g. execute such a code in the console).\n     * That is because adding a post-fixer does not execute it.\n     * The post-fixer will be executed as soon as any change in the document needs to cause its rendering.\n     * If you want to re-render the editor's view after registering the post-fixer then you should do it manually by calling\n     * {@link module:engine/view/view~View#forceRender `view.forceRender()`}.\n     *\n     * If you need to register a callback which is executed when DOM elements are already updated,\n     * use {@link module:engine/view/view~View#event:render render event}.\n     *\n     * @param {Function} postFixer\n     */\n\n  }, {\n    key: \"registerPostFixer\",\n    value: function registerPostFixer(postFixer) {\n      this._postFixers.add(postFixer);\n    }\n    /**\n     * Destroys this instance. Makes sure that all observers are destroyed and listeners removed.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.roots.map(function (root) {\n        return root.destroy();\n      });\n      this.stopListening();\n    }\n    /**\n     * Performs post-fixer loops. Executes post-fixer callbacks as long as none of them has done any changes to the model.\n     *\n     * @protected\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer\n     */\n\n  }, {\n    key: \"_callPostFixers\",\n    value: function _callPostFixers(writer) {\n      var wasFixed = false;\n\n      do {\n        var _iterator = _createForOfIteratorHelper(this._postFixers),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var callback = _step.value;\n            wasFixed = callback(writer);\n\n            if (wasFixed) {\n              break;\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      } while (wasFixed);\n    }\n    /**\n     * Event fired whenever document content layout changes. It is fired whenever content is\n     * {@link module:engine/view/view~View#event:render rendered}, but should be also fired by observers in case of\n     * other actions which may change layout, for instance when image loads.\n     *\n     * @event layoutChanged\n     */\n\n  }]);\n\n  return Document;\n}();\n\nexport { Document as default };\nmix(Document, ObservableMixin);\n/**\n * Enum representing type of the change.\n *\n * Possible values:\n *\n * * `children` - for child list changes,\n * * `attributes` - for element attributes changes,\n * * `text` - for text nodes changes.\n *\n * @typedef {String} module:engine/view/document~ChangeType\n */","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/documentfragment\n */\nimport Text from \"./text\";\nimport TextProxy from \"./textproxy\";\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\n/**\n * Document fragment.\n *\n * To create a new document fragment instance use the\n * {@link module:engine/view/upcastwriter~UpcastWriter#createDocumentFragment `UpcastWriter#createDocumentFragment()`}\n * method.\n */\n\nvar DocumentFragment = /*#__PURE__*/function () {\n  /**\n   * Creates new DocumentFragment instance.\n   *\n   * @protected\n   * @param {module:engine/view/node~Node|Iterable.<module:engine/view/node~Node>} [children]\n   * A list of nodes to be inserted into the created document fragment.\n   */\n  function DocumentFragment(children) {\n    _classCallCheck(this, DocumentFragment);\n\n    /**\n     * Array of child nodes.\n     *\n     * @protected\n     * @member {Array.<module:engine/view/element~Element>} module:engine/view/documentfragment~DocumentFragment#_children\n     */\n    this._children = [];\n\n    if (children) {\n      this._insertChild(0, children);\n    }\n  }\n  /**\n   * Iterable interface.\n   *\n   * Iterates over nodes added to this document fragment.\n   *\n   * @returns {Iterable.<module:engine/view/node~Node>}\n   */\n\n\n  _createClass(DocumentFragment, [{\n    key: Symbol.iterator,\n    value: function value() {\n      return this._children[Symbol.iterator]();\n    }\n    /**\n     * Number of child nodes in this document fragment.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n  }, {\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\tdocFrag.is( 'documentFragment' ); // -> true\n     *\t\tdocFrag.is( 'view:documentFragment' ); // -> true\n     *\n     *\t\tdocFrag.is( 'model:documentFragment' ); // -> false\n     *\t\tdocFrag.is( 'element' ); // -> false\n     *\t\tdocFrag.is( 'node' ); // -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n    value: function is(type) {\n      return type == 'documentFragment' || type == 'view:documentFragment';\n    }\n    /**\n     * {@link module:engine/view/documentfragment~DocumentFragment#_insertChild Insert} a child node or a list of child nodes at the end\n     * and sets the parent of these nodes to this fragment.\n     *\n     * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.\n     * @returns {Number} Number of appended nodes.\n     */\n\n  }, {\n    key: \"_appendChild\",\n    value: function _appendChild(items) {\n      return this._insertChild(this.childCount, items);\n    }\n    /**\n     * Gets child at the given index.\n     *\n     * @param {Number} index Index of child.\n     * @returns {module:engine/view/node~Node} Child node.\n     */\n\n  }, {\n    key: \"getChild\",\n    value: function getChild(index) {\n      return this._children[index];\n    }\n    /**\n     * Gets index of the given child node. Returns `-1` if child node is not found.\n     *\n     * @param {module:engine/view/node~Node} node Child node.\n     * @returns {Number} Index of the child node.\n     */\n\n  }, {\n    key: \"getChildIndex\",\n    value: function getChildIndex(node) {\n      return this._children.indexOf(node);\n    }\n    /**\n     * Gets child nodes iterator.\n     *\n     * @returns {Iterable.<module:engine/view/node~Node>} Child nodes iterator.\n     */\n\n  }, {\n    key: \"getChildren\",\n    value: function getChildren() {\n      return this._children[Symbol.iterator]();\n    }\n    /**\n     * Inserts a child node or a list of child nodes on the given index and sets the parent of these nodes to\n     * this fragment.\n     *\n     * @param {Number} index Position where nodes should be inserted.\n     * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.\n     * @returns {Number} Number of inserted nodes.\n     */\n\n  }, {\n    key: \"_insertChild\",\n    value: function _insertChild(index, items) {\n      this._fireChange('children', this);\n\n      var count = 0;\n      var nodes = normalize(items);\n\n      var _iterator = _createForOfIteratorHelper(nodes),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var node = _step.value;\n\n          // If node that is being added to this element is already inside another element, first remove it from the old parent.\n          if (node.parent !== null) {\n            node._remove();\n          }\n\n          node.parent = this;\n\n          this._children.splice(index, 0, node);\n\n          index++;\n          count++;\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return count;\n    }\n    /**\n     * Removes number of child nodes starting at the given index and set the parent of these nodes to `null`.\n     *\n     * @param {Number} index Number of the first node to remove.\n     * @param {Number} [howMany=1] Number of nodes to remove.\n     * @returns {Array.<module:engine/view/node~Node>} The array of removed nodes.\n     */\n\n  }, {\n    key: \"_removeChildren\",\n    value: function _removeChildren(index) {\n      var howMany = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n      this._fireChange('children', this);\n\n      for (var i = index; i < index + howMany; i++) {\n        this._children[i].parent = null;\n      }\n\n      return this._children.splice(index, howMany);\n    }\n    /**\n     * Fires `change` event with given type of the change.\n     *\n     * @private\n     * @param {module:engine/view/document~ChangeType} type Type of the change.\n     * @param {module:engine/view/node~Node} node Changed node.\n     * @fires module:engine/view/node~Node#change\n     */\n\n  }, {\n    key: \"_fireChange\",\n    value: function _fireChange(type, node) {\n      this.fire('change:' + type, node);\n    }\n  }, {\n    key: \"childCount\",\n    get: function get() {\n      return this._children.length;\n    }\n    /**\n     * Is `true` if there are no nodes inside this document fragment, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isEmpty\",\n    get: function get() {\n      return this.childCount === 0;\n    }\n    /**\n     * Artificial root of `DocumentFragment`. Returns itself. Added for compatibility reasons.\n     *\n     * @readonly\n     * @type {module:engine/model/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      return this;\n    }\n    /**\n     * Artificial parent of `DocumentFragment`. Returns `null`. Added for compatibility reasons.\n     *\n     * @readonly\n     * @type {null}\n     */\n\n  }, {\n    key: \"parent\",\n    get: function get() {\n      return null;\n    }\n  }]);\n\n  return DocumentFragment;\n}();\n\nexport { DocumentFragment as default };\nmix(DocumentFragment, EmitterMixin); // Converts strings to Text and non-iterables to arrays.\n//\n// @param {String|module:engine/view/item~Item|Iterable.<String|module:engine/view/item~Item>}\n// @returns {Iterable.<module:engine/view/node~Node>}\n\nfunction normalize(nodes) {\n  // Separate condition because string is iterable.\n  if (typeof nodes == 'string') {\n    return [new Text(nodes)];\n  }\n\n  if (!isIterable(nodes)) {\n    nodes = [nodes];\n  } // Array.from to enable .map() on non-arrays.\n\n\n  return Array.from(nodes).map(function (node) {\n    if (typeof node == 'string') {\n      return new Text(node);\n    }\n\n    if (node instanceof TextProxy) {\n      return new Text(node.data);\n    }\n\n    return node;\n  });\n}","import \"core-js/modules/es6.string.anchor\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"regenerator-runtime/runtime\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/documentselection\n */\nimport Selection from \"./selection\";\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\n/**\n * Class representing the document selection in the view.\n *\n * Its instance is available in {@link module:engine/view/document~Document#selection `Document#selection`}.\n *\n * It is similar to {@link module:engine/view/selection~Selection} but\n * it has a read-only API and can be modified only by the writer available in\n * the {@link module:engine/view/view~View#change `View#change()`} block\n * (so via {@link module:engine/view/downcastwriter~DowncastWriter#setSelection `DowncastWriter#setSelection()`}).\n */\n\nvar DocumentSelection = /*#__PURE__*/function () {\n  /**\n   * Creates new DocumentSelection instance.\n   *\n   * \t\t// Creates empty selection without ranges.\n   *\t\tconst selection = new DocumentSelection();\n   *\n   *\t\t// Creates selection at the given range.\n   *\t\tconst range = writer.createRange( start, end );\n   *\t\tconst selection = new DocumentSelection( range );\n   *\n   *\t\t// Creates selection at the given ranges\n   * \t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( start2, end2 ) ];\n   *\t\tconst selection = new DocumentSelection( ranges );\n   *\n   *\t\t// Creates selection from the other selection.\n   *\t\tconst otherSelection = writer.createSelection();\n   *\t\tconst selection = new DocumentSelection( otherSelection );\n   *\n   * \t\t// Creates selection at the given position.\n   *\t\tconst position = writer.createPositionAt( root, offset );\n   *\t\tconst selection = new DocumentSelection( position );\n   *\n   *\t\t// Creates collapsed selection at the position of given item and offset.\n   *\t\tconst paragraph = writer.createContainerElement( 'paragraph' );\n   *\t\tconst selection = new DocumentSelection( paragraph, offset );\n   *\n   *\t\t// Creates a range inside an {@link module:engine/view/element~Element element} which starts before the\n   *\t\t// first child of that element and ends after the last child of that element.\n   *\t\tconst selection = new DocumentSelection( paragraph, 'in' );\n   *\n   *\t\t// Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends\n   *\t\t// just after the item.\n   *\t\tconst selection = new DocumentSelection( paragraph, 'on' );\n   *\n   * `Selection`'s constructor allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n   *\n   *\t\t// Creates backward selection.\n   *\t\tconst selection = new DocumentSelection( range, { backward: true } );\n   *\n   * Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n   * This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n   * represented in other way, for example by applying proper CSS class.\n   *\n   * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM\n   * (and be  properly handled by screen readers).\n   *\n   *\t\t// Creates fake selection with label.\n   *\t\tconst selection = new DocumentSelection( range, { fake: true, label: 'foo' } );\n   *\n   * @param {module:engine/view/selection~Selectable} [selectable=null]\n   * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.\n   * @param {Object} [options]\n   * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n   * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n   * @param {String} [options.label] Label for the fake selection.\n   */\n  function DocumentSelection() {\n    var selectable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    var placeOrOffset = arguments.length > 1 ? arguments[1] : undefined;\n    var options = arguments.length > 2 ? arguments[2] : undefined;\n\n    _classCallCheck(this, DocumentSelection);\n\n    /**\n     * Selection is used internally (`DocumentSelection` is a proxy to that selection).\n     *\n     * @private\n     * @member {module:engine/view/selection~Selection}\n     */\n    this._selection = new Selection(); // Delegate change event to be fired on DocumentSelection instance.\n\n    this._selection.delegate('change').to(this); // Set selection data.\n\n\n    this._selection.setTo(selectable, placeOrOffset, options);\n  }\n  /**\n   * Returns true if selection instance is marked as `fake`.\n   *\n   * @see #_setTo\n   * @returns {Boolean}\n   */\n\n\n  _createClass(DocumentSelection, [{\n    key: \"getRanges\",\n\n    /**\n     * Returns an iterable that contains copies of all ranges added to the selection.\n     *\n     * @returns {Iterable.<module:engine/view/range~Range>}\n     */\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getRanges() {\n      return regeneratorRuntime.wrap(function getRanges$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              return _context.delegateYield(this._selection.getRanges(), \"t0\", 1);\n\n            case 1:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, getRanges, this);\n    })\n    /**\n     * Returns copy of the first range in the selection. First range is the one which\n     * {@link module:engine/view/range~Range#start start} position {@link module:engine/view/position~Position#isBefore is before} start\n     * position of all other ranges (not to confuse with the first range added to the selection).\n     * Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/range~Range|null}\n     */\n\n  }, {\n    key: \"getFirstRange\",\n    value: function getFirstRange() {\n      return this._selection.getFirstRange();\n    }\n    /**\n     * Returns copy of the last range in the selection. Last range is the one which {@link module:engine/view/range~Range#end end}\n     * position {@link module:engine/view/position~Position#isAfter is after} end position of all other ranges (not to confuse\n     * with the last range added to the selection). Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/range~Range|null}\n     */\n\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      return this._selection.getLastRange();\n    }\n    /**\n     * Returns copy of the first position in the selection. First position is the position that\n     * {@link module:engine/view/position~Position#isBefore is before} any other position in the selection ranges.\n     * Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/position~Position|null}\n     */\n\n  }, {\n    key: \"getFirstPosition\",\n    value: function getFirstPosition() {\n      return this._selection.getFirstPosition();\n    }\n    /**\n     * Returns copy of the last position in the selection. Last position is the position that\n     * {@link module:engine/view/position~Position#isAfter is after} any other position in the selection ranges.\n     * Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/position~Position|null}\n     */\n\n  }, {\n    key: \"getLastPosition\",\n    value: function getLastPosition() {\n      return this._selection.getLastPosition();\n    }\n    /**\n     * Returns the selected element. {@link module:engine/view/element~Element Element} is considered as selected if there is only\n     * one range in the selection, and that range contains exactly one element.\n     * Returns `null` if there is no selected element.\n     *\n     * @returns {module:engine/view/element~Element|null}\n     */\n\n  }, {\n    key: \"getSelectedElement\",\n    value: function getSelectedElement() {\n      return this._selection.getSelectedElement();\n    }\n    /**\n     * Checks whether, this selection is equal to given selection. Selections are equal if they have same directions,\n     * same number of ranges and all ranges from one selection equal to a range from other selection.\n     *\n     * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} otherSelection\n     * Selection to compare with.\n     * @returns {Boolean} `true` if selections are equal, `false` otherwise.\n     */\n\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(otherSelection) {\n      return this._selection.isEqual(otherSelection);\n    }\n    /**\n     * Checks whether this selection is similar to given selection. Selections are similar if they have same directions, same\n     * number of ranges, and all {@link module:engine/view/range~Range#getTrimmed trimmed} ranges from one selection are\n     * equal to any trimmed range from other selection.\n     *\n     * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} otherSelection\n     * Selection to compare with.\n     * @returns {Boolean} `true` if selections are similar, `false` otherwise.\n     */\n\n  }, {\n    key: \"isSimilar\",\n    value: function isSimilar(otherSelection) {\n      return this._selection.isSimilar(otherSelection);\n    }\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\tdocSelection.is( 'selection' ); // -> true\n     *\t\tdocSelection.is( 'documentSelection' ); // -> true\n     *\t\tdocSelection.is( 'view:selection' ); // -> true\n     *\t\tdocSelection.is( 'view:documentSelection' ); // -> true\n     *\n     *\t\tdocSelection.is( 'model:documentSelection' ); // -> false\n     *\t\tdocSelection.is( 'element' ); // -> false\n     *\t\tdocSelection.is( 'node' ); // -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'selection' || type == 'documentSelection' || type == 'view:selection' || type == 'view:documentSelection';\n    }\n    /**\n     * Sets this selection's ranges and direction to the specified location based on the given\n     * {@link module:engine/view/selection~Selectable selectable}.\n     *\n     *\t\t// Sets selection to the given range.\n     *\t\tconst range = writer.createRange( start, end );\n     *\t\tdocumentSelection._setTo( range );\n     *\n     *\t\t// Sets selection to given ranges.\n     * \t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( start2, end2 ) ];\n     *\t\tdocumentSelection._setTo( range );\n     *\n     *\t\t// Sets selection to the other selection.\n     *\t\tconst otherSelection = writer.createSelection();\n     *\t\tdocumentSelection._setTo( otherSelection );\n     *\n     * \t\t// Sets collapsed selection at the given position.\n     *\t\tconst position = writer.createPositionAt( root, offset );\n     *\t\tdocumentSelection._setTo( position );\n     *\n     * \t\t// Sets collapsed selection at the position of given item and offset.\n     *\t\tdocumentSelection._setTo( paragraph, offset );\n     *\n     * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     *\t\tdocumentSelection._setTo( paragraph, 'in' );\n     *\n     * Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends just after the item.\n     *\n     *\t\tdocumentSelection._setTo( paragraph, 'on' );\n     *\n     * \t\t// Clears selection. Removes all ranges.\n     *\t\tdocumentSelection._setTo( null );\n     *\n     * `Selection#_setTo()` method allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n     *\n     *\t\t// Sets selection as backward.\n     *\t\tdocumentSelection._setTo( range, { backward: true } );\n     *\n     * Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n     * This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n     * represented in other way, for example by applying proper CSS class.\n     *\n     * Additionally fake's selection label can be provided. It will be used to des cribe fake selection in DOM\n     * (and be  properly handled by screen readers).\n     *\n     *\t\t// Creates fake selection with label.\n     *\t\tdocumentSelection._setTo( range, { fake: true, label: 'foo' } );\n     *\n     * @protected\n     * @fires change\n     * @param {module:engine/view/selection~Selectable} selectable\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n     * @param {String} [options.label] Label for the fake selection.\n     */\n\n  }, {\n    key: \"_setTo\",\n    value: function _setTo(selectable, placeOrOffset, options) {\n      this._selection.setTo(selectable, placeOrOffset, options);\n    }\n    /**\n     * Moves {@link #focus} to the specified location.\n     *\n     * The location can be specified in the same form as {@link module:engine/view/view~View#createPositionAt view.createPositionAt()}\n     * parameters.\n     *\n     * @protected\n     * @fires change\n     * @param {module:engine/view/item~Item|module:engine/view/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/view/item~Item view item}.\n     */\n\n  }, {\n    key: \"_setFocus\",\n    value: function _setFocus(itemOrPosition, offset) {\n      this._selection.setFocus(itemOrPosition, offset);\n    }\n    /**\n     * Fired whenever selection ranges are changed through {@link ~DocumentSelection Selection API}.\n     *\n     * @event change\n     */\n\n  }, {\n    key: \"isFake\",\n    get: function get() {\n      return this._selection.isFake;\n    }\n    /**\n     * Returns fake selection label.\n     *\n     * @see #_setTo\n     * @returns {String}\n     */\n\n  }, {\n    key: \"fakeSelectionLabel\",\n    get: function get() {\n      return this._selection.fakeSelectionLabel;\n    }\n    /**\n     * Selection anchor. Anchor may be described as a position where the selection starts. Together with\n     * {@link #focus focus} they define the direction of selection, which is important\n     * when expanding/shrinking selection. Anchor is always the start or end of the most recent added range.\n     * It may be a bit unintuitive when there are multiple ranges in selection.\n     *\n     * @see #focus\n     * @type {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"anchor\",\n    get: function get() {\n      return this._selection.anchor;\n    }\n    /**\n     * Selection focus. Focus is a position where the selection ends.\n     *\n     * @see #anchor\n     * @type {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"focus\",\n    get: function get() {\n      return this._selection.focus;\n    }\n    /**\n     * Returns whether the selection is collapsed. Selection is collapsed when there is exactly one range which is\n     * collapsed.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    get: function get() {\n      return this._selection.isCollapsed;\n    }\n    /**\n     * Returns number of ranges in selection.\n     *\n     * @type {Number}\n     */\n\n  }, {\n    key: \"rangeCount\",\n    get: function get() {\n      return this._selection.rangeCount;\n    }\n    /**\n     * Specifies whether the {@link #focus} precedes {@link #anchor}.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isBackward\",\n    get: function get() {\n      return this._selection.isBackward;\n    }\n    /**\n     * {@link module:engine/view/editableelement~EditableElement EditableElement} instance that contains this selection, or `null`\n     * if the selection is not inside an editable element.\n     *\n     * @type {module:engine/view/editableelement~EditableElement|null}\n     */\n\n  }, {\n    key: \"editableElement\",\n    get: function get() {\n      return this._selection.editableElement;\n    }\n    /**\n     * Used for the compatibility with the {@link module:engine/view/selection~Selection#isEqual} method.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_ranges\",\n    get: function get() {\n      return this._selection._ranges;\n    }\n  }]);\n\n  return DocumentSelection;\n}();\n\nexport { DocumentSelection as default };\nmix(DocumentSelection, EmitterMixin);","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.weak-map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/domconverter\n */\n\n/* globals document, Node, NodeFilter, Text */\nimport ViewText from \"./text\";\nimport ViewElement from \"./element\";\nimport ViewPosition from \"./position\";\nimport ViewRange from \"./range\";\nimport ViewSelection from \"./selection\";\nimport ViewDocumentFragment from \"./documentfragment\";\nimport ViewTreeWalker from \"./treewalker\";\nimport { BR_FILLER, getDataWithoutFiller, INLINE_FILLER_LENGTH, isInlineFiller, NBSP_FILLER, startsWithFiller } from \"./filler\";\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport indexOf from '@ckeditor/ckeditor5-utils/src/dom/indexof';\nimport getAncestors from '@ckeditor/ckeditor5-utils/src/dom/getancestors';\nimport getCommonAncestor from '@ckeditor/ckeditor5-utils/src/dom/getcommonancestor';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport { isElement } from 'lodash-es'; // eslint-disable-next-line new-cap\n\nvar BR_FILLER_REF = BR_FILLER(document);\n/**\n * DomConverter is a set of tools to do transformations between DOM nodes and view nodes. It also handles\n * {@link module:engine/view/domconverter~DomConverter#bindElements binding} these nodes.\n *\n * The instance of DOMConverter is available in {@link module:engine/view/view~View#domConverter `editor.editing.view.domConverter`}.\n *\n * DomConverter does not check which nodes should be rendered (use {@link module:engine/view/renderer~Renderer}), does not keep a\n * state of a tree nor keeps synchronization between tree view and DOM tree (use {@link module:engine/view/document~Document}).\n *\n * DomConverter keeps DOM elements to View element bindings, so when the converter will be destroyed, the binding will\n * be lost. Two converters will keep separate binding maps, so one tree view can be bound with two DOM trees.\n */\n\nvar DomConverter = /*#__PURE__*/function () {\n  /**\n   * Creates DOM converter.\n   *\n   * @param {Object} options Object with configuration options.\n   * @param {module:engine/view/filler~BlockFillerMode} [options.blockFillerMode='br'] The type of the block filler to use.\n   */\n  function DomConverter() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, DomConverter);\n\n    /**\n     * The mode of a block filler used by DOM converter.\n     *\n     * @readonly\n     * @member {'br'|'nbsp'} module:engine/view/domconverter~DomConverter#blockFillerMode\n     */\n    this.blockFillerMode = options.blockFillerMode || 'br';\n    /**\n     * Elements which are considered pre-formatted elements.\n     *\n     * @readonly\n     * @member {Array.<String>} module:engine/view/domconverter~DomConverter#preElements\n     */\n\n    this.preElements = ['pre'];\n    /**\n     * Elements which are considered block elements (and hence should be filled with a\n     * {@link #isBlockFiller block filler}).\n     *\n     * Whether an element is considered a block element also affects handling of trailing whitespaces.\n     *\n     * You can extend this array if you introduce support for block elements which are not yet recognized here.\n     *\n     * @readonly\n     * @member {Array.<String>} module:engine/view/domconverter~DomConverter#blockElements\n     */\n\n    this.blockElements = ['p', 'div', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'dd', 'dt', 'figcaption'];\n    /**\n     * Block {@link module:engine/view/filler filler} creator, which is used to create all block fillers during the\n     * view to DOM conversion and to recognize block fillers during the DOM to view conversion.\n     *\n     * @readonly\n     * @private\n     * @member {Function} module:engine/view/domconverter~DomConverter#_blockFiller\n     */\n\n    this._blockFiller = this.blockFillerMode == 'br' ? BR_FILLER : NBSP_FILLER;\n    /**\n     * DOM to View mapping.\n     *\n     * @private\n     * @member {WeakMap} module:engine/view/domconverter~DomConverter#_domToViewMapping\n     */\n\n    this._domToViewMapping = new WeakMap();\n    /**\n     * View to DOM mapping.\n     *\n     * @private\n     * @member {WeakMap} module:engine/view/domconverter~DomConverter#_viewToDomMapping\n     */\n\n    this._viewToDomMapping = new WeakMap();\n    /**\n     * Holds mapping between fake selection containers and corresponding view selections.\n     *\n     * @private\n     * @member {WeakMap} module:engine/view/domconverter~DomConverter#_fakeSelectionMapping\n     */\n\n    this._fakeSelectionMapping = new WeakMap();\n  }\n  /**\n   * Binds given DOM element that represents fake selection to a **position** of a\n   * {@link module:engine/view/documentselection~DocumentSelection document selection}.\n   * Document selection copy is stored and can be retrieved by\n   * {@link module:engine/view/domconverter~DomConverter#fakeSelectionToView} method.\n   *\n   * @param {HTMLElement} domElement\n   * @param {module:engine/view/documentselection~DocumentSelection} viewDocumentSelection\n   */\n\n\n  _createClass(DomConverter, [{\n    key: \"bindFakeSelection\",\n    value: function bindFakeSelection(domElement, viewDocumentSelection) {\n      this._fakeSelectionMapping.set(domElement, new ViewSelection(viewDocumentSelection));\n    }\n    /**\n     * Returns {@link module:engine/view/selection~Selection view selection} instance corresponding to\n     * given DOM element that represents fake selection. Returns `undefined` if binding to given DOM element does not exists.\n     *\n     * @param {HTMLElement} domElement\n     * @returns {module:engine/view/selection~Selection|undefined}\n     */\n\n  }, {\n    key: \"fakeSelectionToView\",\n    value: function fakeSelectionToView(domElement) {\n      return this._fakeSelectionMapping.get(domElement);\n    }\n    /**\n     * Binds DOM and View elements, so it will be possible to get corresponding elements using\n     * {@link module:engine/view/domconverter~DomConverter#mapDomToView} and\n     * {@link module:engine/view/domconverter~DomConverter#mapViewToDom}.\n     *\n     * @param {HTMLElement} domElement DOM element to bind.\n     * @param {module:engine/view/element~Element} viewElement View element to bind.\n     */\n\n  }, {\n    key: \"bindElements\",\n    value: function bindElements(domElement, viewElement) {\n      this._domToViewMapping.set(domElement, viewElement);\n\n      this._viewToDomMapping.set(viewElement, domElement);\n    }\n    /**\n     * Unbinds given `domElement` from the view element it was bound to. Unbinding is deep, meaning that all children of\n     * `domElement` will be unbound too.\n     *\n     * @param {HTMLElement} domElement DOM element to unbind.\n     */\n\n  }, {\n    key: \"unbindDomElement\",\n    value: function unbindDomElement(domElement) {\n      var viewElement = this._domToViewMapping.get(domElement);\n\n      if (viewElement) {\n        this._domToViewMapping.delete(domElement);\n\n        this._viewToDomMapping.delete(viewElement); // Use Array.from because of MS Edge (#923).\n\n\n        for (var _i = 0, _Array$from = Array.from(domElement.childNodes); _i < _Array$from.length; _i++) {\n          var child = _Array$from[_i];\n          this.unbindDomElement(child);\n        }\n      }\n    }\n    /**\n     * Binds DOM and View document fragments, so it will be possible to get corresponding document fragments using\n     * {@link module:engine/view/domconverter~DomConverter#mapDomToView} and\n     * {@link module:engine/view/domconverter~DomConverter#mapViewToDom}.\n     *\n     * @param {DocumentFragment} domFragment DOM document fragment to bind.\n     * @param {module:engine/view/documentfragment~DocumentFragment} viewFragment View document fragment to bind.\n     */\n\n  }, {\n    key: \"bindDocumentFragments\",\n    value: function bindDocumentFragments(domFragment, viewFragment) {\n      this._domToViewMapping.set(domFragment, viewFragment);\n\n      this._viewToDomMapping.set(viewFragment, domFragment);\n    }\n    /**\n     * Converts view to DOM. For all text nodes, not bound elements and document fragments new items will\n     * be created. For bound elements and document fragments function will return corresponding items.\n     *\n     * @param {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment} viewNode\n     * View node or document fragment to transform.\n     * @param {Document} domDocument Document which will be used to create DOM nodes.\n     * @param {Object} [options] Conversion options.\n     * @param {Boolean} [options.bind=false] Determines whether new elements will be bound.\n     * @param {Boolean} [options.withChildren=true] If `true`, node's and document fragment's children will be converted too.\n     * @returns {Node|DocumentFragment} Converted node or DocumentFragment.\n     */\n\n  }, {\n    key: \"viewToDom\",\n    value: function viewToDom(viewNode, domDocument) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n      if (viewNode.is('text')) {\n        var textData = this._processDataFromViewText(viewNode);\n\n        return domDocument.createTextNode(textData);\n      } else {\n        if (this.mapViewToDom(viewNode)) {\n          return this.mapViewToDom(viewNode);\n        }\n\n        var domElement;\n\n        if (viewNode.is('documentFragment')) {\n          // Create DOM document fragment.\n          domElement = domDocument.createDocumentFragment();\n\n          if (options.bind) {\n            this.bindDocumentFragments(domElement, viewNode);\n          }\n        } else if (viewNode.is('uiElement')) {\n          // UIElement has its own render() method (see #799).\n          domElement = viewNode.render(domDocument);\n\n          if (options.bind) {\n            this.bindElements(domElement, viewNode);\n          }\n\n          return domElement;\n        } else {\n          // Create DOM element.\n          if (viewNode.hasAttribute('xmlns')) {\n            domElement = domDocument.createElementNS(viewNode.getAttribute('xmlns'), viewNode.name);\n          } else {\n            domElement = domDocument.createElement(viewNode.name);\n          }\n\n          if (options.bind) {\n            this.bindElements(domElement, viewNode);\n          } // Copy element's attributes.\n\n\n          var _iterator = _createForOfIteratorHelper(viewNode.getAttributeKeys()),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var key = _step.value;\n              domElement.setAttribute(key, viewNode.getAttribute(key));\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        }\n\n        if (options.withChildren || options.withChildren === undefined) {\n          var _iterator2 = _createForOfIteratorHelper(this.viewChildrenToDom(viewNode, domDocument, options)),\n              _step2;\n\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n              var child = _step2.value;\n              domElement.appendChild(child);\n            }\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n        }\n\n        return domElement;\n      }\n    }\n    /**\n     * Converts children of the view element to DOM using the\n     * {@link module:engine/view/domconverter~DomConverter#viewToDom} method.\n     * Additionally, this method adds block {@link module:engine/view/filler filler} to the list of children, if needed.\n     *\n     * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} viewElement Parent view element.\n     * @param {Document} domDocument Document which will be used to create DOM nodes.\n     * @param {Object} options See {@link module:engine/view/domconverter~DomConverter#viewToDom} options parameter.\n     * @returns {Iterable.<Node>} DOM nodes.\n     */\n\n  }, {\n    key: \"viewChildrenToDom\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function viewChildrenToDom(viewElement, domDocument) {\n      var options,\n          fillerPositionOffset,\n          offset,\n          _iterator3,\n          _step3,\n          childView,\n          _args = arguments;\n\n      return regeneratorRuntime.wrap(function viewChildrenToDom$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              options = _args.length > 2 && _args[2] !== undefined ? _args[2] : {};\n              fillerPositionOffset = viewElement.getFillerOffset && viewElement.getFillerOffset();\n              offset = 0;\n              _iterator3 = _createForOfIteratorHelper(viewElement.getChildren());\n              _context.prev = 4;\n\n              _iterator3.s();\n\n            case 6:\n              if ((_step3 = _iterator3.n()).done) {\n                _context.next = 16;\n                break;\n              }\n\n              childView = _step3.value;\n\n              if (!(fillerPositionOffset === offset)) {\n                _context.next = 11;\n                break;\n              }\n\n              _context.next = 11;\n              return this._blockFiller(domDocument);\n\n            case 11:\n              _context.next = 13;\n              return this.viewToDom(childView, domDocument, options);\n\n            case 13:\n              offset++;\n\n            case 14:\n              _context.next = 6;\n              break;\n\n            case 16:\n              _context.next = 21;\n              break;\n\n            case 18:\n              _context.prev = 18;\n              _context.t0 = _context[\"catch\"](4);\n\n              _iterator3.e(_context.t0);\n\n            case 21:\n              _context.prev = 21;\n\n              _iterator3.f();\n\n              return _context.finish(21);\n\n            case 24:\n              if (!(fillerPositionOffset === offset)) {\n                _context.next = 27;\n                break;\n              }\n\n              _context.next = 27;\n              return this._blockFiller(domDocument);\n\n            case 27:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, viewChildrenToDom, this, [[4, 18, 21, 24]]);\n    })\n    /**\n     * Converts view {@link module:engine/view/range~Range} to DOM range.\n     * Inline and block {@link module:engine/view/filler fillers} are handled during the conversion.\n     *\n     * @param {module:engine/view/range~Range} viewRange View range.\n     * @returns {Range} DOM range.\n     */\n\n  }, {\n    key: \"viewRangeToDom\",\n    value: function viewRangeToDom(viewRange) {\n      var domStart = this.viewPositionToDom(viewRange.start);\n      var domEnd = this.viewPositionToDom(viewRange.end);\n      var domRange = document.createRange();\n      domRange.setStart(domStart.parent, domStart.offset);\n      domRange.setEnd(domEnd.parent, domEnd.offset);\n      return domRange;\n    }\n    /**\n     * Converts view {@link module:engine/view/position~Position} to DOM parent and offset.\n     *\n     * Inline and block {@link module:engine/view/filler fillers} are handled during the conversion.\n     * If the converted position is directly before inline filler it is moved inside the filler.\n     *\n     * @param {module:engine/view/position~Position} viewPosition View position.\n     * @returns {Object|null} position DOM position or `null` if view position could not be converted to DOM.\n     * @returns {Node} position.parent DOM position parent.\n     * @returns {Number} position.offset DOM position offset.\n     */\n\n  }, {\n    key: \"viewPositionToDom\",\n    value: function viewPositionToDom(viewPosition) {\n      var viewParent = viewPosition.parent;\n\n      if (viewParent.is('text')) {\n        var domParent = this.findCorrespondingDomText(viewParent);\n\n        if (!domParent) {\n          // Position is in a view text node that has not been rendered to DOM yet.\n          return null;\n        }\n\n        var offset = viewPosition.offset;\n\n        if (startsWithFiller(domParent)) {\n          offset += INLINE_FILLER_LENGTH;\n        }\n\n        return {\n          parent: domParent,\n          offset: offset\n        };\n      } else {\n        // viewParent is instance of ViewElement.\n        var _domParent, domBefore, domAfter;\n\n        if (viewPosition.offset === 0) {\n          _domParent = this.mapViewToDom(viewParent);\n\n          if (!_domParent) {\n            // Position is in a view element that has not been rendered to DOM yet.\n            return null;\n          }\n\n          domAfter = _domParent.childNodes[0];\n        } else {\n          var nodeBefore = viewPosition.nodeBefore;\n          domBefore = nodeBefore.is('text') ? this.findCorrespondingDomText(nodeBefore) : this.mapViewToDom(viewPosition.nodeBefore);\n\n          if (!domBefore) {\n            // Position is after a view element that has not been rendered to DOM yet.\n            return null;\n          }\n\n          _domParent = domBefore.parentNode;\n          domAfter = domBefore.nextSibling;\n        } // If there is an inline filler at position return position inside the filler. We should never return\n        // the position before the inline filler.\n\n\n        if (isText(domAfter) && startsWithFiller(domAfter)) {\n          return {\n            parent: domAfter,\n            offset: INLINE_FILLER_LENGTH\n          };\n        }\n\n        var _offset = domBefore ? indexOf(domBefore) + 1 : 0;\n\n        return {\n          parent: _domParent,\n          offset: _offset\n        };\n      }\n    }\n    /**\n     * Converts DOM to view. For all text nodes, not bound elements and document fragments new items will\n     * be created. For bound elements and document fragments function will return corresponding items. For\n     * {@link module:engine/view/filler fillers} `null` will be returned.\n     * For all DOM elements rendered by {@link module:engine/view/uielement~UIElement} that UIElement will be returned.\n     *\n     * @param {Node|DocumentFragment} domNode DOM node or document fragment to transform.\n     * @param {Object} [options] Conversion options.\n     * @param {Boolean} [options.bind=false] Determines whether new elements will be bound.\n     * @param {Boolean} [options.withChildren=true] If `true`, node's and document fragment's children will be converted too.\n     * @param {Boolean} [options.keepOriginalCase=false] If `false`, node's tag name will be converter to lower case.\n     * @returns {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment|null} Converted node or document fragment\n     * or `null` if DOM node is a {@link module:engine/view/filler filler} or the given node is an empty text node.\n     */\n\n  }, {\n    key: \"domToView\",\n    value: function domToView(domNode) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      if (this.isBlockFiller(domNode, this.blockFillerMode)) {\n        return null;\n      } // When node is inside UIElement return that UIElement as it's view representation.\n\n\n      var uiElement = this.getParentUIElement(domNode, this._domToViewMapping);\n\n      if (uiElement) {\n        return uiElement;\n      }\n\n      if (isText(domNode)) {\n        if (isInlineFiller(domNode)) {\n          return null;\n        } else {\n          var textData = this._processDataFromDomText(domNode);\n\n          return textData === '' ? null : new ViewText(textData);\n        }\n      } else if (this.isComment(domNode)) {\n        return null;\n      } else {\n        if (this.mapDomToView(domNode)) {\n          return this.mapDomToView(domNode);\n        }\n\n        var viewElement;\n\n        if (this.isDocumentFragment(domNode)) {\n          // Create view document fragment.\n          viewElement = new ViewDocumentFragment();\n\n          if (options.bind) {\n            this.bindDocumentFragments(domNode, viewElement);\n          }\n        } else {\n          // Create view element.\n          var viewName = options.keepOriginalCase ? domNode.tagName : domNode.tagName.toLowerCase();\n          viewElement = new ViewElement(viewName);\n\n          if (options.bind) {\n            this.bindElements(domNode, viewElement);\n          } // Copy element's attributes.\n\n\n          var attrs = domNode.attributes;\n\n          for (var i = attrs.length - 1; i >= 0; i--) {\n            viewElement._setAttribute(attrs[i].name, attrs[i].value);\n          }\n        }\n\n        if (options.withChildren || options.withChildren === undefined) {\n          var _iterator4 = _createForOfIteratorHelper(this.domChildrenToView(domNode, options)),\n              _step4;\n\n          try {\n            for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n              var child = _step4.value;\n\n              viewElement._appendChild(child);\n            }\n          } catch (err) {\n            _iterator4.e(err);\n          } finally {\n            _iterator4.f();\n          }\n        }\n\n        return viewElement;\n      }\n    }\n    /**\n     * Converts children of the DOM element to view nodes using\n     * the {@link module:engine/view/domconverter~DomConverter#domToView} method.\n     * Additionally this method omits block {@link module:engine/view/filler filler}, if it exists in the DOM parent.\n     *\n     * @param {HTMLElement} domElement Parent DOM element.\n     * @param {Object} options See {@link module:engine/view/domconverter~DomConverter#domToView} options parameter.\n     * @returns {Iterable.<module:engine/view/node~Node>} View nodes.\n     */\n\n  }, {\n    key: \"domChildrenToView\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function domChildrenToView(domElement) {\n      var options,\n          i,\n          domChild,\n          viewChild,\n          _args2 = arguments;\n      return regeneratorRuntime.wrap(function domChildrenToView$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              options = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : {};\n              i = 0;\n\n            case 2:\n              if (!(i < domElement.childNodes.length)) {\n                _context2.next = 11;\n                break;\n              }\n\n              domChild = domElement.childNodes[i];\n              viewChild = this.domToView(domChild, options);\n\n              if (!(viewChild !== null)) {\n                _context2.next = 8;\n                break;\n              }\n\n              _context2.next = 8;\n              return viewChild;\n\n            case 8:\n              i++;\n              _context2.next = 2;\n              break;\n\n            case 11:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, domChildrenToView, this);\n    })\n    /**\n     * Converts DOM selection to view {@link module:engine/view/selection~Selection}.\n     * Ranges which cannot be converted will be omitted.\n     *\n     * @param {Selection} domSelection DOM selection.\n     * @returns {module:engine/view/selection~Selection} View selection.\n     */\n\n  }, {\n    key: \"domSelectionToView\",\n    value: function domSelectionToView(domSelection) {\n      // DOM selection might be placed in fake selection container.\n      // If container contains fake selection - return corresponding view selection.\n      if (domSelection.rangeCount === 1) {\n        var container = domSelection.getRangeAt(0).startContainer; // The DOM selection might be moved to the text node inside the fake selection container.\n\n        if (isText(container)) {\n          container = container.parentNode;\n        }\n\n        var viewSelection = this.fakeSelectionToView(container);\n\n        if (viewSelection) {\n          return viewSelection;\n        }\n      }\n\n      var isBackward = this.isDomSelectionBackward(domSelection);\n      var viewRanges = [];\n\n      for (var i = 0; i < domSelection.rangeCount; i++) {\n        // DOM Range have correct start and end, no matter what is the DOM Selection direction. So we don't have to fix anything.\n        var domRange = domSelection.getRangeAt(i);\n        var viewRange = this.domRangeToView(domRange);\n\n        if (viewRange) {\n          viewRanges.push(viewRange);\n        }\n      }\n\n      return new ViewSelection(viewRanges, {\n        backward: isBackward\n      });\n    }\n    /**\n     * Converts DOM Range to view {@link module:engine/view/range~Range}.\n     * If the start or end position can not be converted `null` is returned.\n     *\n     * @param {Range} domRange DOM range.\n     * @returns {module:engine/view/range~Range|null} View range.\n     */\n\n  }, {\n    key: \"domRangeToView\",\n    value: function domRangeToView(domRange) {\n      var viewStart = this.domPositionToView(domRange.startContainer, domRange.startOffset);\n      var viewEnd = this.domPositionToView(domRange.endContainer, domRange.endOffset);\n\n      if (viewStart && viewEnd) {\n        return new ViewRange(viewStart, viewEnd);\n      }\n\n      return null;\n    }\n    /**\n     * Converts DOM parent and offset to view {@link module:engine/view/position~Position}.\n     *\n     * If the position is inside a {@link module:engine/view/filler filler} which has no corresponding view node,\n     * position of the filler will be converted and returned.\n     *\n     * If the position is inside DOM element rendered by {@link module:engine/view/uielement~UIElement}\n     * that position will be converted to view position before that UIElement.\n     *\n     * If structures are too different and it is not possible to find corresponding position then `null` will be returned.\n     *\n     * @param {Node} domParent DOM position parent.\n     * @param {Number} domOffset DOM position offset.\n     * @returns {module:engine/view/position~Position} viewPosition View position.\n     */\n\n  }, {\n    key: \"domPositionToView\",\n    value: function domPositionToView(domParent, domOffset) {\n      if (this.isBlockFiller(domParent, this.blockFillerMode)) {\n        return this.domPositionToView(domParent.parentNode, indexOf(domParent));\n      } // If position is somewhere inside UIElement - return position before that element.\n\n\n      var viewElement = this.mapDomToView(domParent);\n\n      if (viewElement && viewElement.is('uiElement')) {\n        return ViewPosition._createBefore(viewElement);\n      }\n\n      if (isText(domParent)) {\n        if (isInlineFiller(domParent)) {\n          return this.domPositionToView(domParent.parentNode, indexOf(domParent));\n        }\n\n        var viewParent = this.findCorrespondingViewText(domParent);\n        var offset = domOffset;\n\n        if (!viewParent) {\n          return null;\n        }\n\n        if (startsWithFiller(domParent)) {\n          offset -= INLINE_FILLER_LENGTH;\n          offset = offset < 0 ? 0 : offset;\n        }\n\n        return new ViewPosition(viewParent, offset);\n      } // domParent instanceof HTMLElement.\n      else {\n          if (domOffset === 0) {\n            var _viewParent = this.mapDomToView(domParent);\n\n            if (_viewParent) {\n              return new ViewPosition(_viewParent, 0);\n            }\n          } else {\n            var domBefore = domParent.childNodes[domOffset - 1];\n            var viewBefore = isText(domBefore) ? this.findCorrespondingViewText(domBefore) : this.mapDomToView(domBefore); // TODO #663\n\n            if (viewBefore && viewBefore.parent) {\n              return new ViewPosition(viewBefore.parent, viewBefore.index + 1);\n            }\n          }\n\n          return null;\n        }\n    }\n    /**\n     * Returns corresponding view {@link module:engine/view/element~Element Element} or\n     * {@link module:engine/view/documentfragment~DocumentFragment} for provided DOM element or\n     * document fragment. If there is no view item {@link module:engine/view/domconverter~DomConverter#bindElements bound}\n     * to the given DOM - `undefined` is returned.\n     * For all DOM elements rendered by {@link module:engine/view/uielement~UIElement} that UIElement will be returned.\n     *\n     * @param {DocumentFragment|Element} domElementOrDocumentFragment DOM element or document fragment.\n     * @returns {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment|undefined}\n     * Corresponding view element, document fragment or `undefined` if no element was bound.\n     */\n\n  }, {\n    key: \"mapDomToView\",\n    value: function mapDomToView(domElementOrDocumentFragment) {\n      return this.getParentUIElement(domElementOrDocumentFragment) || this._domToViewMapping.get(domElementOrDocumentFragment);\n    }\n    /**\n     * Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~DomConverter#bindElements bound},\n     * corresponding text node is returned based on the sibling or parent.\n     *\n     * If the directly previous sibling is a {@link module:engine/view/domconverter~DomConverter#bindElements bound} element, it is used\n     * to find the corresponding text node.\n     *\n     * If this is a first child in the parent and the parent is a {@link module:engine/view/domconverter~DomConverter#bindElements bound}\n     * element, it is used to find the corresponding text node.\n     *\n     * For all text nodes rendered by {@link module:engine/view/uielement~UIElement} that UIElement will be returned.\n     *\n     * Otherwise `null` is returned.\n     *\n     * Note that for the block or inline {@link module:engine/view/filler filler} this method returns `null`.\n     *\n     * @param {Text} domText DOM text node.\n     * @returns {module:engine/view/text~Text|null} Corresponding view text node or `null`, if it was not possible to find a\n     * corresponding node.\n     */\n\n  }, {\n    key: \"findCorrespondingViewText\",\n    value: function findCorrespondingViewText(domText) {\n      if (isInlineFiller(domText)) {\n        return null;\n      } // If DOM text was rendered by UIElement - return that element.\n\n\n      var uiElement = this.getParentUIElement(domText);\n\n      if (uiElement) {\n        return uiElement;\n      }\n\n      var previousSibling = domText.previousSibling; // Try to use previous sibling to find the corresponding text node.\n\n      if (previousSibling) {\n        if (!this.isElement(previousSibling)) {\n          // The previous is text or comment.\n          return null;\n        }\n\n        var viewElement = this.mapDomToView(previousSibling);\n\n        if (viewElement) {\n          var nextSibling = viewElement.nextSibling; // It might be filler which has no corresponding view node.\n\n          if (nextSibling instanceof ViewText) {\n            return viewElement.nextSibling;\n          } else {\n            return null;\n          }\n        }\n      } // Try to use parent to find the corresponding text node.\n      else {\n          var _viewElement = this.mapDomToView(domText.parentNode);\n\n          if (_viewElement) {\n            var firstChild = _viewElement.getChild(0); // It might be filler which has no corresponding view node.\n\n\n            if (firstChild instanceof ViewText) {\n              return firstChild;\n            } else {\n              return null;\n            }\n          }\n        }\n\n      return null;\n    }\n    /**\n     * Returns corresponding DOM item for provided {@link module:engine/view/element~Element Element} or\n     * {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment}.\n     * To find a corresponding text for {@link module:engine/view/text~Text view Text instance}\n     * use {@link #findCorrespondingDomText}.\n     *\n     * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} viewNode\n     * View element or document fragment.\n     * @returns {Node|DocumentFragment|undefined} Corresponding DOM node or document fragment.\n     */\n\n  }, {\n    key: \"mapViewToDom\",\n    value: function mapViewToDom(documentFragmentOrElement) {\n      return this._viewToDomMapping.get(documentFragmentOrElement);\n    }\n    /**\n     * Finds corresponding text node. Text nodes are not {@link module:engine/view/domconverter~DomConverter#bindElements bound},\n     * corresponding text node is returned based on the sibling or parent.\n     *\n     * If the directly previous sibling is a {@link module:engine/view/domconverter~DomConverter#bindElements bound} element, it is used\n     * to find the corresponding text node.\n     *\n     * If this is a first child in the parent and the parent is a {@link module:engine/view/domconverter~DomConverter#bindElements bound}\n     * element, it is used to find the corresponding text node.\n     *\n     * Otherwise `null` is returned.\n     *\n     * @param {module:engine/view/text~Text} viewText View text node.\n     * @returns {Text|null} Corresponding DOM text node or `null`, if it was not possible to find a corresponding node.\n     */\n\n  }, {\n    key: \"findCorrespondingDomText\",\n    value: function findCorrespondingDomText(viewText) {\n      var previousSibling = viewText.previousSibling; // Try to use previous sibling to find the corresponding text node.\n\n      if (previousSibling && this.mapViewToDom(previousSibling)) {\n        return this.mapViewToDom(previousSibling).nextSibling;\n      } // If this is a first node, try to use parent to find the corresponding text node.\n\n\n      if (!previousSibling && viewText.parent && this.mapViewToDom(viewText.parent)) {\n        return this.mapViewToDom(viewText.parent).childNodes[0];\n      }\n\n      return null;\n    }\n    /**\n     * Focuses DOM editable that is corresponding to provided {@link module:engine/view/editableelement~EditableElement}.\n     *\n     * @param {module:engine/view/editableelement~EditableElement} viewEditable\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus(viewEditable) {\n      var domEditable = this.mapViewToDom(viewEditable);\n\n      if (domEditable && domEditable.ownerDocument.activeElement !== domEditable) {\n        // Save the scrollX and scrollY positions before the focus.\n        var _global$window = global.window,\n            scrollX = _global$window.scrollX,\n            scrollY = _global$window.scrollY;\n        var scrollPositions = []; // Save all scrollLeft and scrollTop values starting from domEditable up to\n        // document#documentElement.\n\n        forEachDomNodeAncestor(domEditable, function (node) {\n          var scrollLeft = node.scrollLeft,\n              scrollTop = node.scrollTop;\n          scrollPositions.push([scrollLeft, scrollTop]);\n        });\n        domEditable.focus(); // Restore scrollLeft and scrollTop values starting from domEditable up to\n        // document#documentElement.\n        // https://github.com/ckeditor/ckeditor5-engine/issues/951\n        // https://github.com/ckeditor/ckeditor5-engine/issues/957\n\n        forEachDomNodeAncestor(domEditable, function (node) {\n          var _scrollPositions$shif = scrollPositions.shift(),\n              _scrollPositions$shif2 = _slicedToArray(_scrollPositions$shif, 2),\n              scrollLeft = _scrollPositions$shif2[0],\n              scrollTop = _scrollPositions$shif2[1];\n\n          node.scrollLeft = scrollLeft;\n          node.scrollTop = scrollTop;\n        }); // Restore the scrollX and scrollY positions after the focus.\n        // https://github.com/ckeditor/ckeditor5-engine/issues/951\n\n        global.window.scrollTo(scrollX, scrollY);\n      }\n    }\n    /**\n     * Returns `true` when `node.nodeType` equals `Node.ELEMENT_NODE`.\n     *\n     * @param {Node} node Node to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isElement\",\n    value: function isElement(node) {\n      return node && node.nodeType == Node.ELEMENT_NODE;\n    }\n    /**\n     * Returns `true` when `node.nodeType` equals `Node.DOCUMENT_FRAGMENT_NODE`.\n     *\n     * @param {Node} node Node to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isDocumentFragment\",\n    value: function isDocumentFragment(node) {\n      return node && node.nodeType == Node.DOCUMENT_FRAGMENT_NODE;\n    }\n    /**\n     * Returns `true` when `node.nodeType` equals `Node.COMMENT_NODE`.\n     *\n     * @param {Node} node Node to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isComment\",\n    value: function isComment(node) {\n      return node && node.nodeType == Node.COMMENT_NODE;\n    }\n    /**\n     * Checks if the node is an instance of the block filler for this DOM converter.\n     *\n     *\t\tconst converter = new DomConverter( { blockFillerMode: 'br' } );\n     *\n     *\t\tconverter.isBlockFiller( BR_FILLER( document ) ); // true\n     *\t\tconverter.isBlockFiller( NBSP_FILLER( document ) ); // false\n     *\n     * **Note:**: For the `'nbsp'` mode the method also checks context of a node so it cannot be a detached node.\n     *\n     * @param {Node} domNode DOM node to check.\n     * @returns {Boolean} True if a node is considered a block filler for given mode.\n     */\n\n  }, {\n    key: \"isBlockFiller\",\n    value: function isBlockFiller(domNode) {\n      return this.blockFillerMode == 'br' ? domNode.isEqualNode(BR_FILLER_REF) : isNbspBlockFiller(domNode, this.blockElements);\n    }\n    /**\n     * Returns `true` if given selection is a backward selection, that is, if it's `focus` is before `anchor`.\n     *\n     * @param {Selection} DOM Selection instance to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isDomSelectionBackward\",\n    value: function isDomSelectionBackward(selection) {\n      if (selection.isCollapsed) {\n        return false;\n      } // Since it takes multiple lines of code to check whether a \"DOM Position\" is before/after another \"DOM Position\",\n      // we will use the fact that range will collapse if it's end is before it's start.\n\n\n      var range = document.createRange();\n      range.setStart(selection.anchorNode, selection.anchorOffset);\n      range.setEnd(selection.focusNode, selection.focusOffset);\n      var backward = range.collapsed;\n      range.detach();\n      return backward;\n    }\n    /**\n     * Returns parent {@link module:engine/view/uielement~UIElement} for provided DOM node. Returns `null` if there is no\n     * parent UIElement.\n     *\n     * @param {Node} domNode\n     * @returns {module:engine/view/uielement~UIElement|null}\n     */\n\n  }, {\n    key: \"getParentUIElement\",\n    value: function getParentUIElement(domNode) {\n      var ancestors = getAncestors(domNode); // Remove domNode from the list.\n\n      ancestors.pop();\n\n      while (ancestors.length) {\n        var _domNode = ancestors.pop();\n\n        var viewNode = this._domToViewMapping.get(_domNode);\n\n        if (viewNode && viewNode.is('uiElement')) {\n          return viewNode;\n        }\n      }\n\n      return null;\n    }\n    /**\n     * Checks if given selection's boundaries are at correct places.\n     *\n     * The following places are considered as incorrect for selection boundaries:\n     * * before or in the middle of the inline filler sequence,\n     * * inside the DOM element which represents {@link module:engine/view/uielement~UIElement a view ui element}.\n     *\n     * @param {Selection} domSelection DOM Selection object to be checked.\n     * @returns {Boolean} `true` if the given selection is at a correct place, `false` otherwise.\n     */\n\n  }, {\n    key: \"isDomSelectionCorrect\",\n    value: function isDomSelectionCorrect(domSelection) {\n      return this._isDomSelectionPositionCorrect(domSelection.anchorNode, domSelection.anchorOffset) && this._isDomSelectionPositionCorrect(domSelection.focusNode, domSelection.focusOffset);\n    }\n    /**\n     * Checks if the given DOM position is a correct place for selection boundary. See {@link #isDomSelectionCorrect}.\n     *\n     * @private\n     * @param {Element} domParent Position parent.\n     * @param {Number} offset Position offset.\n     * @returns {Boolean} `true` if given position is at a correct place for selection boundary, `false` otherwise.\n     */\n\n  }, {\n    key: \"_isDomSelectionPositionCorrect\",\n    value: function _isDomSelectionPositionCorrect(domParent, offset) {\n      // If selection is before or in the middle of inline filler string, it is incorrect.\n      if (isText(domParent) && startsWithFiller(domParent) && offset < INLINE_FILLER_LENGTH) {\n        // Selection in a text node, at wrong position (before or in the middle of filler).\n        return false;\n      }\n\n      if (this.isElement(domParent) && startsWithFiller(domParent.childNodes[offset])) {\n        // Selection in an element node, before filler text node.\n        return false;\n      }\n\n      var viewParent = this.mapDomToView(domParent); // If selection is in `view.UIElement`, it is incorrect. Note that `mapDomToView()` returns `view.UIElement`\n      // also for any dom element that is inside the view ui element (so we don't need to perform any additional checks).\n\n      if (viewParent && viewParent.is('uiElement')) {\n        return false;\n      }\n\n      return true;\n    }\n    /**\n     * Takes text data from a given {@link module:engine/view/text~Text#data} and processes it so\n     * it is correctly displayed in the DOM.\n     *\n     * Following changes are done:\n     *\n     * * a space at the beginning is changed to `&nbsp;` if this is the first text node in its container\n     * element or if a previous text node ends with a space character,\n     * * space at the end of the text node is changed to `&nbsp;` if there are two spaces at the end of a node or if next node\n     * starts with a space or if it is the last text node in its container,\n     * * remaining spaces are replaced to a chain of spaces and `&nbsp;` (e.g. `'x   x'` becomes `'x &nbsp; x'`).\n     *\n     * Content of {@link #preElements} is not processed.\n     *\n     * @private\n     * @param {module:engine/view/text~Text} node View text node to process.\n     * @returns {String} Processed text data.\n     */\n\n  }, {\n    key: \"_processDataFromViewText\",\n    value: function _processDataFromViewText(node) {\n      var _this = this;\n\n      var data = node.data; // If any of node ancestors has a name which is in `preElements` array, then currently processed\n      // view text node is (will be) in preformatted element. We should not change whitespaces then.\n\n      if (node.getAncestors().some(function (parent) {\n        return _this.preElements.includes(parent.name);\n      })) {\n        return data;\n      } // 1. Replace the first space with a nbsp if the previous node ends with a space or there is no previous node\n      // (container element boundary).\n\n\n      if (data.charAt(0) == ' ') {\n        var prevNode = this._getTouchingViewTextNode(node, false);\n\n        var prevEndsWithSpace = prevNode && this._nodeEndsWithSpace(prevNode);\n\n        if (prevEndsWithSpace || !prevNode) {\n          data = \"\\xA0\" + data.substr(1);\n        }\n      } // 2. Replace the last space with nbsp if there are two spaces at the end or if the next node starts with space or there is no\n      // next node (container element boundary).\n      //\n      // Keep in mind that Firefox prefers $nbsp; before tag, not inside it:\n      //\n      // Foo <span>&nbsp;bar</span>  <-- bad.\n      // Foo&nbsp;<span> bar</span>  <-- good.\n      //\n      // More here: https://github.com/ckeditor/ckeditor5-engine/issues/1747.\n\n\n      if (data.charAt(data.length - 1) == ' ') {\n        var nextNode = this._getTouchingViewTextNode(node, true);\n\n        if (data.charAt(data.length - 2) == ' ' || !nextNode || nextNode.data.charAt(0) == ' ') {\n          data = data.substr(0, data.length - 1) + \"\\xA0\";\n        }\n      } // 3. Create space+nbsp pairs.\n\n\n      return data.replace(/ {2}/g, \" \\xA0\");\n    }\n    /**\n     * Checks whether given node ends with a space character after changing appropriate space characters to `&nbsp;`s.\n     *\n     * @private\n     * @param {module:engine/view/text~Text} node Node to check.\n     * @returns {Boolean} `true` if given `node` ends with space, `false` otherwise.\n     */\n\n  }, {\n    key: \"_nodeEndsWithSpace\",\n    value: function _nodeEndsWithSpace(node) {\n      var _this2 = this;\n\n      if (node.getAncestors().some(function (parent) {\n        return _this2.preElements.includes(parent.name);\n      })) {\n        return false;\n      }\n\n      var data = this._processDataFromViewText(node);\n\n      return data.charAt(data.length - 1) == ' ';\n    }\n    /**\n     * Takes text data from native `Text` node and processes it to a correct {@link module:engine/view/text~Text view text node} data.\n     *\n     * Following changes are done:\n     *\n     * * multiple whitespaces are replaced to a single space,\n     * * space at the beginning of a text node is removed if it is the first text node in its container\n     * element or if the previous text node ends with a space character,\n     * * space at the end of the text node is removed if there are two spaces at the end of a node or if next node\n     * starts with a space or if it is the last text node in its container\n     * * nbsps are converted to spaces.\n     *\n     * @param {Node} node DOM text node to process.\n     * @returns {String} Processed data.\n     * @private\n     */\n\n  }, {\n    key: \"_processDataFromDomText\",\n    value: function _processDataFromDomText(node) {\n      var data = node.data;\n\n      if (_hasDomParentOfType(node, this.preElements)) {\n        return getDataWithoutFiller(node);\n      } // Change all consecutive whitespace characters (from the [ \\n\\t\\r] set –\n      // see https://github.com/ckeditor/ckeditor5-engine/issues/822#issuecomment-311670249) to a single space character.\n      // That's how multiple whitespaces are treated when rendered, so we normalize those whitespaces.\n      // We're replacing 1+ (and not 2+) to also normalize singular \\n\\t\\r characters (#822).\n\n\n      data = data.replace(/[ \\n\\t\\r]{1,}/g, ' ');\n\n      var prevNode = this._getTouchingInlineDomNode(node, false);\n\n      var nextNode = this._getTouchingInlineDomNode(node, true);\n\n      var shouldLeftTrim = this._checkShouldLeftTrimDomText(prevNode);\n\n      var shouldRightTrim = this._checkShouldRightTrimDomText(node, nextNode); // If the previous dom text node does not exist or it ends by whitespace character, remove space character from the beginning\n      // of this text node. Such space character is treated as a whitespace.\n\n\n      if (shouldLeftTrim) {\n        data = data.replace(/^ /, '');\n      } // If the next text node does not exist remove space character from the end of this text node.\n\n\n      if (shouldRightTrim) {\n        data = data.replace(/ $/, '');\n      } // At the beginning and end of a block element, Firefox inserts normal space + <br> instead of non-breaking space.\n      // This means that the text node starts/end with normal space instead of non-breaking space.\n      // This causes a problem because the normal space would be removed in `.replace` calls above. To prevent that,\n      // the inline filler is removed only after the data is initially processed (by the `.replace` above). See ckeditor5#692.\n\n\n      data = getDataWithoutFiller(new Text(data)); // At this point we should have removed all whitespaces from DOM text data.\n      //\n      // Now, We will reverse the process that happens in `_processDataFromViewText`.\n      //\n      // We have to change &nbsp; chars, that were in DOM text data because of rendering reasons, to spaces.\n      // First, change all ` \\u00A0` pairs (space + &nbsp;) to two spaces. DOM converter changes two spaces from model/view to\n      // ` \\u00A0` to ensure proper rendering. Since here we convert back, we recognize those pairs and change them back to `  `.\n\n      data = data.replace(/ \\u00A0/g, '  '); // Then, let's change the last nbsp to a space.\n\n      if (/( |\\u00A0)\\u00A0$/.test(data) || !nextNode || nextNode.data && nextNode.data.charAt(0) == ' ') {\n        data = data.replace(/\\u00A0$/, ' ');\n      } // Then, change &nbsp; character that is at the beginning of the text node to space character.\n      // We do that replacement only if this is the first node or the previous node ends on whitespace character.\n\n\n      if (shouldLeftTrim) {\n        data = data.replace(/^\\u00A0/, ' ');\n      } // At this point, all whitespaces should be removed and all &nbsp; created for rendering reasons should be\n      // changed to normal space. All left &nbsp; are &nbsp; inserted intentionally.\n\n\n      return data;\n    }\n    /**\n     * Helper function which checks if a DOM text node, preceded by the given `prevNode` should\n     * be trimmed from the left side.\n     *\n     * @param {Node} prevNode\n     */\n\n  }, {\n    key: \"_checkShouldLeftTrimDomText\",\n    value: function _checkShouldLeftTrimDomText(prevNode) {\n      if (!prevNode) {\n        return true;\n      }\n\n      if (isElement(prevNode)) {\n        return true;\n      }\n\n      return /[^\\S\\u00A0]/.test(prevNode.data.charAt(prevNode.data.length - 1));\n    }\n    /**\n     * Helper function which checks if a DOM text node, succeeded by the given `nextNode` should\n     * be trimmed from the right side.\n     *\n     * @param {Node} node\n     * @param {Node} nextNode\n     */\n\n  }, {\n    key: \"_checkShouldRightTrimDomText\",\n    value: function _checkShouldRightTrimDomText(node, nextNode) {\n      if (nextNode) {\n        return false;\n      }\n\n      return !startsWithFiller(node);\n    }\n    /**\n     * Helper function. For given {@link module:engine/view/text~Text view text node}, it finds previous or next sibling\n     * that is contained in the same container element. If there is no such sibling, `null` is returned.\n     *\n     * @param {module:engine/view/text~Text} node Reference node.\n     * @param {Boolean} getNext\n     * @returns {module:engine/view/text~Text|null} Touching text node or `null` if there is no next or previous touching text node.\n     */\n\n  }, {\n    key: \"_getTouchingViewTextNode\",\n    value: function _getTouchingViewTextNode(node, getNext) {\n      var treeWalker = new ViewTreeWalker({\n        startPosition: getNext ? ViewPosition._createAfter(node) : ViewPosition._createBefore(node),\n        direction: getNext ? 'forward' : 'backward'\n      });\n\n      var _iterator5 = _createForOfIteratorHelper(treeWalker),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var value = _step5.value;\n\n          // ViewContainerElement is found on a way to next ViewText node, so given `node` was first/last\n          // text node in its container element.\n          if (value.item.is('containerElement')) {\n            return null;\n          } // <br> found – it works like a block boundary, so do not scan further.\n          else if (value.item.is('br')) {\n              return null;\n            } // Found a text node in the same container element.\n            else if (value.item.is('textProxy')) {\n                return value.item;\n              }\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      return null;\n    }\n    /**\n     * Helper function. For the given text node, it finds the closest touching node which is either\n     * a text node or a `<br>`. The search is terminated at block element boundaries and if a matching node\n     * wasn't found so far, `null` is returned.\n     *\n     * In the following DOM structure:\n     *\n     *\t\t<p>foo<b>bar</b><br>bom</p>\n     *\n     * * `foo` doesn't have its previous touching inline node (`null` is returned),\n     * * `foo`'s next touching inline node is `bar`\n     * * `bar`'s next touching inline node is `<br>`\n     *\n     * This method returns text nodes and `<br>` elements because these types of nodes affect how\n     * spaces in the given text node need to be converted.\n     *\n     * @private\n     * @param {Text} node\n     * @param {Boolean} getNext\n     * @returns {Text|Element|null}\n     */\n\n  }, {\n    key: \"_getTouchingInlineDomNode\",\n    value: function _getTouchingInlineDomNode(node, getNext) {\n      if (!node.parentNode) {\n        return null;\n      }\n\n      var direction = getNext ? 'nextNode' : 'previousNode';\n      var document = node.ownerDocument;\n      var topmostParent = getAncestors(node)[0];\n      var treeWalker = document.createTreeWalker(topmostParent, NodeFilter.SHOW_TEXT | NodeFilter.SHOW_ELEMENT, {\n        acceptNode: function acceptNode(node) {\n          if (isText(node)) {\n            return NodeFilter.FILTER_ACCEPT;\n          }\n\n          if (node.tagName == 'BR') {\n            return NodeFilter.FILTER_ACCEPT;\n          }\n\n          return NodeFilter.FILTER_SKIP;\n        }\n      });\n      treeWalker.currentNode = node;\n      var touchingNode = treeWalker[direction]();\n\n      if (touchingNode !== null) {\n        var lca = getCommonAncestor(node, touchingNode); // If there is common ancestor between the text node and next/prev text node,\n        // and there are no block elements on a way from the text node to that ancestor,\n        // and there are no block elements on a way from next/prev text node to that ancestor...\n\n        if (lca && !_hasDomParentOfType(node, this.blockElements, lca) && !_hasDomParentOfType(touchingNode, this.blockElements, lca)) {\n          // Then they are in the same container element.\n          return touchingNode;\n        }\n      }\n\n      return null;\n    }\n  }]);\n\n  return DomConverter;\n}(); // Helper function.\n// Used to check if given native `Element` or `Text` node has parent with tag name from `types` array.\n//\n// @param {Node} node\n// @param {Array.<String>} types\n// @param {Boolean} [boundaryParent] Can be given if parents should be checked up to a given element (excluding that element).\n// @returns {Boolean} `true` if such parent exists or `false` if it does not.\n\n\nexport { DomConverter as default };\n\nfunction _hasDomParentOfType(node, types, boundaryParent) {\n  var parents = getAncestors(node);\n\n  if (boundaryParent) {\n    parents = parents.slice(parents.indexOf(boundaryParent) + 1);\n  }\n\n  return parents.some(function (parent) {\n    return parent.tagName && types.includes(parent.tagName.toLowerCase());\n  });\n} // A helper that executes given callback for each DOM node's ancestor, starting from the given node\n// and ending in document#documentElement.\n//\n// @param {Node} node\n// @param {Function} callback A callback to be executed for each ancestor.\n\n\nfunction forEachDomNodeAncestor(node, callback) {\n  while (node && node != global.document) {\n    callback(node);\n    node = node.parentNode;\n  }\n} // Checks if given node is a nbsp block filler.\n//\n// A &nbsp; is a block filler only if it is a single child of a block element.\n//\n// @param {Node} domNode DOM node.\n// @returns {Boolean}\n\n\nfunction isNbspBlockFiller(domNode, blockElements) {\n  var isNBSP = isText(domNode) && domNode.data == \"\\xA0\";\n  return isNBSP && hasBlockParent(domNode, blockElements) && domNode.parentNode.childNodes.length === 1;\n} // Checks if domNode has block parent.\n//\n// @param {Node} domNode DOM node.\n// @returns {Boolean}\n\n\nfunction hasBlockParent(domNode, blockElements) {\n  var parent = domNode.parentNode;\n  return parent && parent.tagName && blockElements.includes(parent.tagName.toLowerCase());\n}\n/**\n * Enum representing type of the block filler.\n *\n * Possible values:\n *\n * * `br` - for `<br>` block filler used in editing view,\n * * `nbsp` - for `&nbsp;` block fillers used in the data.\n *\n * @typedef {String} module:engine/view/filler~BlockFillerMode\n */","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.array.find\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module module:engine/view/downcastwriter\n */\nimport Position from \"./position\";\nimport Range from \"./range\";\nimport Selection from \"./selection\";\nimport ContainerElement from \"./containerelement\";\nimport AttributeElement from \"./attributeelement\";\nimport EmptyElement from \"./emptyelement\";\nimport UIElement from \"./uielement\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport DocumentFragment from \"./documentfragment\";\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\nimport Text from \"./text\";\nimport EditableElement from \"./editableelement\";\nimport { isPlainObject } from 'lodash-es';\n/**\n * View downcast writer.\n *\n * It provides a set of methods used to manipulate view nodes.\n *\n * Do not create an instance of this writer manually. To modify a view structure, use\n * the {@link module:engine/view/view~View#change `View#change()`} block.\n *\n * The `DowncastWriter` is designed to work with semantic views which are the views that were/are being downcasted from the model.\n * To work with ordinary views (e.g. parsed from a pasted content) use the\n * {@link module:engine/view/upcastwriter~UpcastWriter upcast writer}.\n *\n * Read more about changing the view in the {@glink framework/guides/architecture/editing-engine#changing-the-view Changing the view}\n * section of the {@glink framework/guides/architecture/editing-engine Editing engine architecture} guide.\n */\n\nvar DowncastWriter = /*#__PURE__*/function () {\n  function DowncastWriter(document) {\n    _classCallCheck(this, DowncastWriter);\n\n    /**\n     * @readonly\n     * @type {module:engine/view/document~Document}\n     */\n    this.document = document;\n    /**\n     * Holds references to the attribute groups that share the same {@link module:engine/view/attributeelement~AttributeElement#id id}.\n     * The keys are `id`s, the values are `Set`s holding {@link module:engine/view/attributeelement~AttributeElement}s.\n     *\n     * @private\n     * @type {Map.<String,Set>}\n     */\n\n    this._cloneGroups = new Map();\n  }\n  /**\n   * Sets {@link module:engine/view/documentselection~DocumentSelection selection's} ranges and direction to the\n   * specified location based on the given {@link module:engine/view/selection~Selectable selectable}.\n   *\n   * Usage:\n   *\n   *\t\t// Sets selection to the given range.\n   *\t\tconst range = writer.createRange( start, end );\n   *\t\twriter.setSelection( range );\n   *\n   *\t\t// Sets backward selection to the given range.\n   *\t\tconst range = writer.createRange( start, end );\n   *\t\twriter.setSelection( range );\n   *\n   *\t\t// Sets selection to given ranges.\n   * \t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( start2, end2 ) ];\n   *\t\twriter.setSelection( range );\n   *\n   *\t\t// Sets selection to the other selection.\n   *\t\tconst otherSelection = writer.createSelection();\n   *\t\twriter.setSelection( otherSelection );\n   *\n   * \t\t// Sets collapsed selection at the given position.\n   *\t\tconst position = writer.createPositionFromPath( root, path );\n   *\t\twriter.setSelection( position );\n   *\n   * \t\t// Sets collapsed selection at the position of given item and offset.\n   *\t\tconst paragraph = writer.createContainerElement( 'p' );\n   *\t\twriter.setSelection( paragraph, offset );\n   *\n   * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of\n  \t * that element and ends after the last child of that element.\n   *\n   * \t\twriter.setSelection( paragraph, 'in' );\n   *\n   * Creates a range on the {@link module:engine/view/item~Item item} which starts before the item and ends just after the item.\n   *\n   *\t\twriter.setSelection( paragraph, 'on' );\n   *\n   * \t\t// Removes all ranges.\n   *\t\twriter.setSelection( null );\n   *\n   * `DowncastWriter#setSelection()` allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n   *\n   *\t\t// Sets selection as backward.\n   *\t\twriter.setSelection( range, { backward: true } );\n   *\n   *\t\t// Sets selection as fake.\n   *\t\t// Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n   * \t\t// This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n   * \t\t// represented in other way, for example by applying proper CSS class.\n   *\t\twriter.setSelection( range, { fake: true } );\n   *\n   * \t\t// Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM\n   * \t\t// (and be  properly handled by screen readers).\n   *\t\twriter.setSelection( range, { fake: true, label: 'foo' } );\n   *\n   * @param {module:engine/view/selection~Selectable} selectable\n   * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n   * @param {Object} [options]\n   * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n   * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n   * @param {String} [options.label] Label for the fake selection.\n   */\n\n\n  _createClass(DowncastWriter, [{\n    key: \"setSelection\",\n    value: function setSelection(selectable, placeOrOffset, options) {\n      this.document.selection._setTo(selectable, placeOrOffset, options);\n    }\n    /**\n     * Moves {@link module:engine/view/documentselection~DocumentSelection#focus selection's focus} to the specified location.\n     *\n     * The location can be specified in the same form as {@link module:engine/view/view~View#createPositionAt view.createPositionAt()}\n     * parameters.\n     *\n     * @param {module:engine/view/item~Item|module:engine/view/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/view/item~Item view item}.\n     */\n\n  }, {\n    key: \"setSelectionFocus\",\n    value: function setSelectionFocus(itemOrPosition, offset) {\n      this.document.selection._setFocus(itemOrPosition, offset);\n    }\n    /**\n     * Creates a new {@link module:engine/view/text~Text text node}.\n     *\n     *\t\twriter.createText( 'foo' );\n     *\n     * @param {String} data The text's data.\n     * @returns {module:engine/view/text~Text} The created text node.\n     */\n\n  }, {\n    key: \"createText\",\n    value: function createText(data) {\n      return new Text(data);\n    }\n    /**\n     * Creates new {@link module:engine/view/attributeelement~AttributeElement}.\n     *\n     *\t\twriter.createAttributeElement( 'strong' );\n     *\t\twriter.createAttributeElement( 'a', { href: 'foo.bar' } );\n     *\n     *\t\t// Make `<a>` element contain other attributes element so the `<a>` element is not broken.\n     *\t\twriter.createAttributeElement( 'a', { href: 'foo.bar' }, { priority: 5 } );\n     *\n     *\t\t// Set `id` of a marker element so it is not joined or merged with \"normal\" elements.\n     *\t\twriter.createAttributeElement( 'span', { class: 'my-marker' }, { id: 'marker:my' } );\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Element's attributes.\n     * @param {Object} [options] Element's options.\n     * @param {Number} [options.priority] Element's {@link module:engine/view/attributeelement~AttributeElement#priority priority}.\n     * @param {Number|String} [options.id] Element's {@link module:engine/view/attributeelement~AttributeElement#id id}.\n     * @returns {module:engine/view/attributeelement~AttributeElement} Created element.\n     */\n\n  }, {\n    key: \"createAttributeElement\",\n    value: function createAttributeElement(name, attributes) {\n      var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n      var attributeElement = new AttributeElement(name, attributes);\n\n      if (options.priority) {\n        attributeElement._priority = options.priority;\n      }\n\n      if (options.id) {\n        attributeElement._id = options.id;\n      }\n\n      return attributeElement;\n    }\n    /**\n     * Creates new {@link module:engine/view/containerelement~ContainerElement}.\n     *\n     *\t\twriter.createContainerElement( 'p' );\n     *\n     *\t\t// Create element with custom attributes.\n     *\t\twriter.createContainerElement( 'div', { id: 'foo-bar', 'data-baz': '123' } );\n     *\n     *\t\t// Create element with custom styles.\n     *\t\twriter.createContainerElement( 'p', { style: 'font-weight: bold; padding-bottom: 10px' } );\n     *\n     *\t\t// Create element with custom classes.\n     *\t\twriter.createContainerElement( 'p', { class: 'foo bar baz' } );\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Elements attributes.\n     * @returns {module:engine/view/containerelement~ContainerElement} Created element.\n     */\n\n  }, {\n    key: \"createContainerElement\",\n    value: function createContainerElement(name, attributes) {\n      return new ContainerElement(name, attributes);\n    }\n    /**\n     * Creates new {@link module:engine/view/editableelement~EditableElement}.\n     *\n     *\t\twriter.createEditableElement( 'div' );\n     *\t\twriter.createEditableElement( 'div', { id: 'foo-1234' } );\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Elements attributes.\n     * @returns {module:engine/view/editableelement~EditableElement} Created element.\n     */\n\n  }, {\n    key: \"createEditableElement\",\n    value: function createEditableElement(name, attributes) {\n      var editableElement = new EditableElement(name, attributes);\n      editableElement._document = this.document;\n      return editableElement;\n    }\n    /**\n     * Creates new {@link module:engine/view/emptyelement~EmptyElement}.\n     *\n     *\t\twriter.createEmptyElement( 'img' );\n     *\t\twriter.createEmptyElement( 'img', { id: 'foo-1234' } );\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Elements attributes.\n     * @returns {module:engine/view/emptyelement~EmptyElement} Created element.\n     */\n\n  }, {\n    key: \"createEmptyElement\",\n    value: function createEmptyElement(name, attributes) {\n      return new EmptyElement(name, attributes);\n    }\n    /**\n     * Creates new {@link module:engine/view/uielement~UIElement}.\n     *\n     *\t\twriter.createUIElement( 'span' );\n     *\t\twriter.createUIElement( 'span', { id: 'foo-1234' } );\n     *\n     * Custom render function can be provided as third parameter:\n     *\n     *\t\twriter.createUIElement( 'span', null, function( domDocument ) {\n     *\t\t\tconst domElement = this.toDomElement( domDocument );\n     *\t\t\tdomElement.innerHTML = '<b>this is ui element</b>';\n     *\n     *\t\t\treturn domElement;\n     *\t\t} );\n     *\n     * @param {String} name Name of the element.\n     * @param {Object} [attributes] Elements attributes.\n     * @param {Function} [renderFunction] Custom render function.\n     * @returns {module:engine/view/uielement~UIElement} Created element.\n     */\n\n  }, {\n    key: \"createUIElement\",\n    value: function createUIElement(name, attributes, renderFunction) {\n      var uiElement = new UIElement(name, attributes);\n\n      if (renderFunction) {\n        uiElement.render = renderFunction;\n      }\n\n      return uiElement;\n    }\n    /**\n     * Adds or overwrite element's attribute with a specified key and value.\n     *\n     *\t\twriter.setAttribute( 'href', 'http://ckeditor.com', linkElement );\n     *\n     * @param {String} key Attribute key.\n     * @param {String} value Attribute value.\n     * @param {module:engine/view/element~Element} element\n     */\n\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(key, value, element) {\n      element._setAttribute(key, value);\n    }\n    /**\n     * Removes attribute from the element.\n     *\n     *\t\twriter.removeAttribute( 'href', linkElement );\n     *\n     * @param {String} key Attribute key.\n     * @param {module:engine/view/element~Element} element\n     */\n\n  }, {\n    key: \"removeAttribute\",\n    value: function removeAttribute(key, element) {\n      element._removeAttribute(key);\n    }\n    /**\n     * Adds specified class to the element.\n     *\n     *\t\twriter.addClass( 'foo', linkElement );\n     *\t\twriter.addClass( [ 'foo', 'bar' ], linkElement );\n     *\n     * @param {Array.<String>|String} className\n     * @param {module:engine/view/element~Element} element\n     */\n\n  }, {\n    key: \"addClass\",\n    value: function addClass(className, element) {\n      element._addClass(className);\n    }\n    /**\n     * Removes specified class from the element.\n     *\n     *\t\twriter.removeClass( 'foo', linkElement );\n     *\t\twriter.removeClass( [ 'foo', 'bar' ], linkElement );\n     *\n     * @param {Array.<String>|String} className\n     * @param {module:engine/view/element~Element} element\n     */\n\n  }, {\n    key: \"removeClass\",\n    value: function removeClass(className, element) {\n      element._removeClass(className);\n    }\n    /**\n     * Adds style to the element.\n     *\n     *\t\twriter.setStyle( 'color', 'red', element );\n     *\t\twriter.setStyle( {\n     *\t\t\tcolor: 'red',\n     *\t\t\tposition: 'fixed'\n     *\t\t}, element );\n     *\n     * @param {String|Object} property Property name or object with key - value pairs.\n     * @param {String} [value] Value to set. This parameter is ignored if object is provided as the first parameter.\n     * @param {module:engine/view/element~Element} element Element to set styles on.\n     */\n\n  }, {\n    key: \"setStyle\",\n    value: function setStyle(property, value, element) {\n      if (isPlainObject(property) && element === undefined) {\n        element = value;\n      }\n\n      element._setStyle(property, value);\n    }\n    /**\n     * Removes specified style from the element.\n     *\n     *\t\twriter.removeStyle( 'color', element );  // Removes 'color' style.\n     *\t\twriter.removeStyle( [ 'color', 'border-top' ], element ); // Removes both 'color' and 'border-top' styles.\n     *\n     * @param {Array.<String>|String} property\n     * @param {module:engine/view/element~Element} element\n     */\n\n  }, {\n    key: \"removeStyle\",\n    value: function removeStyle(property, element) {\n      element._removeStyle(property);\n    }\n    /**\n     * Sets a custom property on element. Unlike attributes, custom properties are not rendered to the DOM,\n     * so they can be used to add special data to elements.\n     *\n     * @param {String|Symbol} key\n     * @param {*} value\n     * @param {module:engine/view/element~Element} element\n     */\n\n  }, {\n    key: \"setCustomProperty\",\n    value: function setCustomProperty(key, value, element) {\n      element._setCustomProperty(key, value);\n    }\n    /**\n     * Removes a custom property stored under the given key.\n     *\n     * @param {String|Symbol} key\n     * @param {module:engine/view/element~Element} element\n     * @returns {Boolean} Returns true if property was removed.\n     */\n\n  }, {\n    key: \"removeCustomProperty\",\n    value: function removeCustomProperty(key, element) {\n      return element._removeCustomProperty(key);\n    }\n    /**\n     * Breaks attribute nodes at provided position or at boundaries of provided range. It breaks attribute elements inside\n     * up to a container element.\n     *\n     * In following examples `<p>` is a container, `<b>` and `<u>` are attribute nodes:\n     *\n     *\t\t<p>foo<b><u>bar{}</u></b></p> -> <p>foo<b><u>bar</u></b>[]</p>\n     *\t\t<p>foo<b><u>{}bar</u></b></p> -> <p>foo{}<b><u>bar</u></b></p>\n     *\t\t<p>foo<b><u>b{}ar</u></b></p> -> <p>foo<b><u>b</u></b>[]<b><u>ar</u></b></p>\n     *\t\t<p><b>fo{o</b><u>ba}r</u></p> -> <p><b>fo</b><b>o</b><u>ba</u><u>r</u></b></p>\n     *\n     * **Note:** {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.\n     *\n     * **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes breakAttributes} and\n     * {@link module:engine/view/downcastwriter~DowncastWriter#breakContainer breakContainer} is that `breakAttributes` breaks all\n     * {@link module:engine/view/attributeelement~AttributeElement attribute elements} that are ancestors of given `position`,\n     * up to the first encountered {@link module:engine/view/containerelement~ContainerElement container element}.\n     * `breakContainer` assumes that given `position` is directly in container element and breaks that container element.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container`\n     * when {@link module:engine/view/range~Range#start start}\n     * and {@link module:engine/view/range~Range#end end} positions of a passed range are not placed inside same parent container.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element`\n     * when trying to break attributes\n     * inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-ui-element`\n     * when trying to break attributes\n     * inside {@link module:engine/view/uielement~UIElement UIElement}.\n     *\n     * @see module:engine/view/attributeelement~AttributeElement\n     * @see module:engine/view/containerelement~ContainerElement\n     * @see module:engine/view/downcastwriter~DowncastWriter#breakContainer\n     * @param {module:engine/view/position~Position|module:engine/view/range~Range} positionOrRange Position where\n     * to break attribute elements.\n     * @returns {module:engine/view/position~Position|module:engine/view/range~Range} New position or range, after breaking the attribute\n     * elements.\n     */\n\n  }, {\n    key: \"breakAttributes\",\n    value: function breakAttributes(positionOrRange) {\n      if (positionOrRange instanceof Position) {\n        return this._breakAttributes(positionOrRange);\n      } else {\n        return this._breakAttributesRange(positionOrRange);\n      }\n    }\n    /**\n     * Breaks {@link module:engine/view/containerelement~ContainerElement container view element} into two, at the given position. Position\n     * has to be directly inside container element and cannot be in root. Does not break if position is at the beginning\n     * or at the end of it's parent element.\n     *\n     *\t\t<p>foo^bar</p> -> <p>foo</p><p>bar</p>\n     *\t\t<div><p>foo</p>^<p>bar</p></div> -> <div><p>foo</p></div><div><p>bar</p></div>\n     *\t\t<p>^foobar</p> -> ^<p>foobar</p>\n     *\t\t<p>foobar^</p> -> <p>foobar</p>^\n     *\n     * **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#breakAttributes breakAttributes} and\n     * {@link module:engine/view/downcastwriter~DowncastWriter#breakContainer breakContainer} is that `breakAttributes` breaks all\n     * {@link module:engine/view/attributeelement~AttributeElement attribute elements} that are ancestors of given `position`,\n     * up to the first encountered {@link module:engine/view/containerelement~ContainerElement container element}.\n     * `breakContainer` assumes that given `position` is directly in container element and breaks that container element.\n     *\n     * @see module:engine/view/attributeelement~AttributeElement\n     * @see module:engine/view/containerelement~ContainerElement\n     * @see module:engine/view/downcastwriter~DowncastWriter#breakAttributes\n     * @param {module:engine/view/position~Position} position Position where to break element.\n     * @returns {module:engine/view/position~Position} Position between broken elements. If element has not been broken,\n     * the returned position is placed either before it or after it.\n     */\n\n  }, {\n    key: \"breakContainer\",\n    value: function breakContainer(position) {\n      var element = position.parent;\n\n      if (!element.is('containerElement')) {\n        /**\n         * Trying to break an element which is not a container element.\n         *\n         * @error view-writer-break-non-container-element\n         */\n        throw new CKEditorError('view-writer-break-non-container-element: Trying to break an element which is not a container element.', this.document);\n      }\n\n      if (!element.parent) {\n        /**\n         * Trying to break root element.\n         *\n         * @error view-writer-break-root\n         */\n        throw new CKEditorError('view-writer-break-root: Trying to break root element.', this.document);\n      }\n\n      if (position.isAtStart) {\n        return Position._createBefore(element);\n      } else if (!position.isAtEnd) {\n        var newElement = element._clone(false);\n\n        this.insert(Position._createAfter(element), newElement);\n        var sourceRange = new Range(position, Position._createAt(element, 'end'));\n        var targetPosition = new Position(newElement, 0);\n        this.move(sourceRange, targetPosition);\n      }\n\n      return Position._createAfter(element);\n    }\n    /**\n     * Merges {@link module:engine/view/attributeelement~AttributeElement attribute elements}. It also merges text nodes if needed.\n     * Only {@link module:engine/view/attributeelement~AttributeElement#isSimilar similar} attribute elements can be merged.\n     *\n     * In following examples `<p>` is a container and `<b>` is an attribute element:\n     *\n     *\t\t<p>foo[]bar</p> -> <p>foo{}bar</p>\n     *\t\t<p><b>foo</b>[]<b>bar</b></p> -> <p><b>foo{}bar</b></p>\n     *\t\t<p><b foo=\"bar\">a</b>[]<b foo=\"baz\">b</b></p> -> <p><b foo=\"bar\">a</b>[]<b foo=\"baz\">b</b></p>\n     *\n     * It will also take care about empty attributes when merging:\n     *\n     *\t\t<p><b>[]</b></p> -> <p>[]</p>\n     *\t\t<p><b>foo</b><i>[]</i><b>bar</b></p> -> <p><b>foo{}bar</b></p>\n     *\n     * **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#mergeAttributes mergeAttributes} and\n     * {@link module:engine/view/downcastwriter~DowncastWriter#mergeContainers mergeContainers} is that `mergeAttributes` merges two\n     * {@link module:engine/view/attributeelement~AttributeElement attribute elements} or {@link module:engine/view/text~Text text nodes}\n     * while `mergeContainer` merges two {@link module:engine/view/containerelement~ContainerElement container elements}.\n     *\n     * @see module:engine/view/attributeelement~AttributeElement\n     * @see module:engine/view/containerelement~ContainerElement\n     * @see module:engine/view/downcastwriter~DowncastWriter#mergeContainers\n     * @param {module:engine/view/position~Position} position Merge position.\n     * @returns {module:engine/view/position~Position} Position after merge.\n     */\n\n  }, {\n    key: \"mergeAttributes\",\n    value: function mergeAttributes(position) {\n      var positionOffset = position.offset;\n      var positionParent = position.parent; // When inside text node - nothing to merge.\n\n      if (positionParent.is('text')) {\n        return position;\n      } // When inside empty attribute - remove it.\n\n\n      if (positionParent.is('attributeElement') && positionParent.childCount === 0) {\n        var parent = positionParent.parent;\n        var offset = positionParent.index;\n\n        positionParent._remove();\n\n        this._removeFromClonedElementsGroup(positionParent);\n\n        return this.mergeAttributes(new Position(parent, offset));\n      }\n\n      var nodeBefore = positionParent.getChild(positionOffset - 1);\n      var nodeAfter = positionParent.getChild(positionOffset); // Position should be placed between two nodes.\n\n      if (!nodeBefore || !nodeAfter) {\n        return position;\n      } // When position is between two text nodes.\n\n\n      if (nodeBefore.is('text') && nodeAfter.is('text')) {\n        return mergeTextNodes(nodeBefore, nodeAfter);\n      } // When position is between two same attribute elements.\n      else if (nodeBefore.is('attributeElement') && nodeAfter.is('attributeElement') && nodeBefore.isSimilar(nodeAfter)) {\n          // Move all children nodes from node placed after selection and remove that node.\n          var count = nodeBefore.childCount;\n\n          nodeBefore._appendChild(nodeAfter.getChildren());\n\n          nodeAfter._remove();\n\n          this._removeFromClonedElementsGroup(nodeAfter); // New position is located inside the first node, before new nodes.\n          // Call this method recursively to merge again if needed.\n\n\n          return this.mergeAttributes(new Position(nodeBefore, count));\n        }\n\n      return position;\n    }\n    /**\n     * Merges two {@link module:engine/view/containerelement~ContainerElement container elements} that are before and after given position.\n     * Precisely, the element after the position is removed and it's contents are moved to element before the position.\n     *\n     *\t\t<p>foo</p>^<p>bar</p> -> <p>foo^bar</p>\n     *\t\t<div>foo</div>^<p>bar</p> -> <div>foo^bar</div>\n     *\n     * **Note:** Difference between {@link module:engine/view/downcastwriter~DowncastWriter#mergeAttributes mergeAttributes} and\n     * {@link module:engine/view/downcastwriter~DowncastWriter#mergeContainers mergeContainers} is that `mergeAttributes` merges two\n     * {@link module:engine/view/attributeelement~AttributeElement attribute elements} or {@link module:engine/view/text~Text text nodes}\n     * while `mergeContainer` merges two {@link module:engine/view/containerelement~ContainerElement container elements}.\n     *\n     * @see module:engine/view/attributeelement~AttributeElement\n     * @see module:engine/view/containerelement~ContainerElement\n     * @see module:engine/view/downcastwriter~DowncastWriter#mergeAttributes\n     * @param {module:engine/view/position~Position} position Merge position.\n     * @returns {module:engine/view/position~Position} Position after merge.\n     */\n\n  }, {\n    key: \"mergeContainers\",\n    value: function mergeContainers(position) {\n      var prev = position.nodeBefore;\n      var next = position.nodeAfter;\n\n      if (!prev || !next || !prev.is('containerElement') || !next.is('containerElement')) {\n        /**\n         * Element before and after given position cannot be merged.\n         *\n         * @error view-writer-merge-containers-invalid-position\n         */\n        throw new CKEditorError('view-writer-merge-containers-invalid-position: ' + 'Element before and after given position cannot be merged.', this.document);\n      }\n\n      var lastChild = prev.getChild(prev.childCount - 1);\n      var newPosition = lastChild instanceof Text ? Position._createAt(lastChild, 'end') : Position._createAt(prev, 'end');\n      this.move(Range._createIn(next), Position._createAt(prev, 'end'));\n      this.remove(Range._createOn(next));\n      return newPosition;\n    }\n    /**\n     * Insert node or nodes at specified position. Takes care about breaking attributes before insertion\n     * and merging them afterwards.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-insert-invalid-node` when nodes to insert\n     * contains instances that are not {@link module:engine/view/text~Text Texts},\n     * {@link module:engine/view/attributeelement~AttributeElement AttributeElements},\n     * {@link module:engine/view/containerelement~ContainerElement ContainerElements},\n     * {@link module:engine/view/emptyelement~EmptyElement EmptyElements} or\n     * {@link module:engine/view/uielement~UIElement UIElements}.\n     *\n     * @param {module:engine/view/position~Position} position Insertion position.\n     * @param {module:engine/view/text~Text|module:engine/view/attributeelement~AttributeElement|\n     * module:engine/view/containerelement~ContainerElement|module:engine/view/emptyelement~EmptyElement|\n     * module:engine/view/uielement~UIElement|Iterable.<module:engine/view/text~Text|\n     * module:engine/view/attributeelement~AttributeElement|module:engine/view/containerelement~ContainerElement|\n     * module:engine/view/emptyelement~EmptyElement|module:engine/view/uielement~UIElement>} nodes Node or nodes to insert.\n     * @returns {module:engine/view/range~Range} Range around inserted nodes.\n     */\n\n  }, {\n    key: \"insert\",\n    value: function insert(position, nodes) {\n      nodes = isIterable(nodes) ? _toConsumableArray(nodes) : [nodes]; // Check if nodes to insert are instances of AttributeElements, ContainerElements, EmptyElements, UIElements or Text.\n\n      validateNodesToInsert(nodes, this.document);\n      var container = getParentContainer(position);\n\n      if (!container) {\n        /**\n         * Position's parent container cannot be found.\n         *\n         * @error view-writer-invalid-position-container\n         */\n        throw new CKEditorError('view-writer-invalid-position-container', this.document);\n      }\n\n      var insertionPosition = this._breakAttributes(position, true);\n\n      var length = container._insertChild(insertionPosition.offset, nodes);\n\n      var _iterator = _createForOfIteratorHelper(nodes),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var node = _step.value;\n\n          this._addToClonedElementsGroup(node);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      var endPosition = insertionPosition.getShiftedBy(length);\n      var start = this.mergeAttributes(insertionPosition); // When no nodes were inserted - return collapsed range.\n\n      if (length === 0) {\n        return new Range(start, start);\n      } else {\n        // If start position was merged - move end position.\n        if (!start.isEqual(insertionPosition)) {\n          endPosition.offset--;\n        }\n\n        var end = this.mergeAttributes(endPosition);\n        return new Range(start, end);\n      }\n    }\n    /**\n     * Removes provided range from the container.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n     * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n     * same parent container.\n     *\n     * @param {module:engine/view/range~Range|module:engine/view/item~Item} rangeOrItem Range to remove from container\n     * or an {@link module:engine/view/item~Item item} to remove. If range is provided, after removing, it will be updated\n     * to a collapsed range showing the new position.\n     * @returns {module:engine/view/documentfragment~DocumentFragment} Document fragment containing removed nodes.\n     */\n\n  }, {\n    key: \"remove\",\n    value: function remove(rangeOrItem) {\n      var range = rangeOrItem instanceof Range ? rangeOrItem : Range._createOn(rangeOrItem);\n      validateRangeContainer(range, this.document); // If range is collapsed - nothing to remove.\n\n      if (range.isCollapsed) {\n        return new DocumentFragment();\n      } // Break attributes at range start and end.\n\n\n      var _this$_breakAttribute = this._breakAttributesRange(range, true),\n          breakStart = _this$_breakAttribute.start,\n          breakEnd = _this$_breakAttribute.end;\n\n      var parentContainer = breakStart.parent;\n      var count = breakEnd.offset - breakStart.offset; // Remove nodes in range.\n\n      var removed = parentContainer._removeChildren(breakStart.offset, count);\n\n      var _iterator2 = _createForOfIteratorHelper(removed),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var node = _step2.value;\n\n          this._removeFromClonedElementsGroup(node);\n        } // Merge after removing.\n\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var mergePosition = this.mergeAttributes(breakStart);\n      range.start = mergePosition;\n      range.end = mergePosition.clone(); // Return removed nodes.\n\n      return new DocumentFragment(removed);\n    }\n    /**\n     * Removes matching elements from given range.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n     * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n     * same parent container.\n     *\n     * @param {module:engine/view/range~Range} range Range to clear.\n     * @param {module:engine/view/element~Element} element Element to remove.\n     */\n\n  }, {\n    key: \"clear\",\n    value: function clear(range, element) {\n      validateRangeContainer(range, this.document); // Create walker on given range.\n      // We walk backward because when we remove element during walk it modifies range end position.\n\n      var walker = range.getWalker({\n        direction: 'backward',\n        ignoreElementEnd: true\n      }); // Let's walk.\n\n      var _iterator3 = _createForOfIteratorHelper(walker),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var current = _step3.value;\n          var item = current.item;\n          var rangeToRemove = void 0; // When current item matches to the given element.\n\n          if (item.is('element') && element.isSimilar(item)) {\n            // Create range on this element.\n            rangeToRemove = Range._createOn(item); // When range starts inside Text or TextProxy element.\n          } else if (!current.nextPosition.isAfter(range.start) && item.is('textProxy')) {\n            // We need to check if parent of this text matches to given element.\n            var parentElement = item.getAncestors().find(function (ancestor) {\n              return ancestor.is('element') && element.isSimilar(ancestor);\n            }); // If it is then create range inside this element.\n\n            if (parentElement) {\n              rangeToRemove = Range._createIn(parentElement);\n            }\n          } // If we have found element to remove.\n\n\n          if (rangeToRemove) {\n            // We need to check if element range stick out of the given range and truncate if it is.\n            if (rangeToRemove.end.isAfter(range.end)) {\n              rangeToRemove.end = range.end;\n            }\n\n            if (rangeToRemove.start.isBefore(range.start)) {\n              rangeToRemove.start = range.start;\n            } // At the end we remove range with found element.\n\n\n            this.remove(rangeToRemove);\n          }\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n    }\n    /**\n     * Moves nodes from provided range to target position.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n     * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n     * same parent container.\n     *\n     * @param {module:engine/view/range~Range} sourceRange Range containing nodes to move.\n     * @param {module:engine/view/position~Position} targetPosition Position to insert.\n     * @returns {module:engine/view/range~Range} Range in target container. Inserted nodes are placed between\n     * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions.\n     */\n\n  }, {\n    key: \"move\",\n    value: function move(sourceRange, targetPosition) {\n      var nodes;\n\n      if (targetPosition.isAfter(sourceRange.end)) {\n        targetPosition = this._breakAttributes(targetPosition, true);\n        var parent = targetPosition.parent;\n        var countBefore = parent.childCount;\n        sourceRange = this._breakAttributesRange(sourceRange, true);\n        nodes = this.remove(sourceRange);\n        targetPosition.offset += parent.childCount - countBefore;\n      } else {\n        nodes = this.remove(sourceRange);\n      }\n\n      return this.insert(targetPosition, nodes);\n    }\n    /**\n     * Wraps elements within range with provided {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n     * If a collapsed range is provided, it will be wrapped only if it is equal to view selection.\n     *\n     * If a collapsed range was passed and is same as selection, the selection\n     * will be moved to the inside of the wrapped attribute element.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-invalid-range-container`\n     * when {@link module:engine/view/range~Range#start}\n     * and {@link module:engine/view/range~Range#end} positions are not placed inside same parent container.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n     * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-nonselection-collapsed-range` when passed range\n     * is collapsed and different than view selection.\n     *\n     * @param {module:engine/view/range~Range} range Range to wrap.\n     * @param {module:engine/view/attributeelement~AttributeElement} attribute Attribute element to use as wrapper.\n     * @returns {module:engine/view/range~Range} range Range after wrapping, spanning over wrapping attribute element.\n    */\n\n  }, {\n    key: \"wrap\",\n    value: function wrap(range, attribute) {\n      if (!(attribute instanceof AttributeElement)) {\n        throw new CKEditorError('view-writer-wrap-invalid-attribute', this.document);\n      }\n\n      validateRangeContainer(range, this.document);\n\n      if (!range.isCollapsed) {\n        // Non-collapsed range. Wrap it with the attribute element.\n        return this._wrapRange(range, attribute);\n      } else {\n        // Collapsed range. Wrap position.\n        var position = range.start;\n\n        if (position.parent.is('element') && !_hasNonUiChildren(position.parent)) {\n          position = position.getLastMatchingPosition(function (value) {\n            return value.item.is('uiElement');\n          });\n        }\n\n        position = this._wrapPosition(position, attribute);\n        var viewSelection = this.document.selection; // If wrapping position is equal to view selection, move view selection inside wrapping attribute element.\n\n        if (viewSelection.isCollapsed && viewSelection.getFirstPosition().isEqual(range.start)) {\n          this.setSelection(position);\n        }\n\n        return new Range(position);\n      }\n    }\n    /**\n     * Unwraps nodes within provided range from attribute element.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when\n     * {@link module:engine/view/range~Range#start start} and {@link module:engine/view/range~Range#end end} positions are not placed inside\n     * same parent container.\n     *\n     * @param {module:engine/view/range~Range} range\n     * @param {module:engine/view/attributeelement~AttributeElement} attribute\n     */\n\n  }, {\n    key: \"unwrap\",\n    value: function unwrap(range, attribute) {\n      if (!(attribute instanceof AttributeElement)) {\n        /**\n         * Attribute element need to be instance of attribute element.\n         *\n         * @error view-writer-unwrap-invalid-attribute\n         */\n        throw new CKEditorError('view-writer-unwrap-invalid-attribute', this.document);\n      }\n\n      validateRangeContainer(range, this.document); // If range is collapsed - nothing to unwrap.\n\n      if (range.isCollapsed) {\n        return range;\n      } // Break attributes at range start and end.\n\n\n      var _this$_breakAttribute2 = this._breakAttributesRange(range, true),\n          breakStart = _this$_breakAttribute2.start,\n          breakEnd = _this$_breakAttribute2.end;\n\n      var parentContainer = breakStart.parent; // Unwrap children located between break points.\n\n      var newRange = this._unwrapChildren(parentContainer, breakStart.offset, breakEnd.offset, attribute); // Merge attributes at the both ends and return a new range.\n\n\n      var start = this.mergeAttributes(newRange.start); // If start position was merged - move end position back.\n\n      if (!start.isEqual(newRange.start)) {\n        newRange.end.offset--;\n      }\n\n      var end = this.mergeAttributes(newRange.end);\n      return new Range(start, end);\n    }\n    /**\n     * Renames element by creating a copy of renamed element but with changed name and then moving contents of the\n     * old element to the new one. Keep in mind that this will invalidate all {@link module:engine/view/position~Position positions} which\n     * has renamed element as {@link module:engine/view/position~Position#parent a parent}.\n     *\n     * New element has to be created because `Element#tagName` property in DOM is readonly.\n     *\n     * Since this function creates a new element and removes the given one, the new element is returned to keep reference.\n     *\n     * @param {String} newName New name for element.\n     * @param {module:engine/view/containerelement~ContainerElement} viewElement Element to be renamed.\n     */\n\n  }, {\n    key: \"rename\",\n    value: function rename(newName, viewElement) {\n      var newElement = new ContainerElement(newName, viewElement.getAttributes());\n      this.insert(Position._createAfter(viewElement), newElement);\n      this.move(Range._createIn(viewElement), Position._createAt(newElement, 0));\n      this.remove(Range._createOn(viewElement));\n      return newElement;\n    }\n    /**\n     * Cleans up memory by removing obsolete cloned elements group from the writer.\n     *\n     * Should be used whenever all {@link module:engine/view/attributeelement~AttributeElement attribute elements}\n     * with the same {@link module:engine/view/attributeelement~AttributeElement#id id} are going to be removed from the view and\n     * the group will no longer be needed.\n     *\n     * Cloned elements group are not removed automatically in case if the group is still needed after all its elements\n     * were removed from the view.\n     *\n     * Keep in mind that group names are equal to the `id` property of the attribute element.\n     *\n     * @param {String} groupName Name of the group to clear.\n     */\n\n  }, {\n    key: \"clearClonedElementsGroup\",\n    value: function clearClonedElementsGroup(groupName) {\n      this._cloneGroups.delete(groupName);\n    }\n    /**\n     * Creates position at the given location. The location can be specified as:\n     *\n     * * a {@link module:engine/view/position~Position position},\n     * * parent element and offset (offset defaults to `0`),\n     * * parent element and `'end'` (sets position at the end of that element),\n     * * {@link module:engine/view/item~Item view item} and `'before'` or `'after'` (sets position before or after given view item).\n     *\n     * This method is a shortcut to other constructors such as:\n     *\n     * * {@link #createPositionBefore},\n     * * {@link #createPositionAfter},\n     *\n     * @param {module:engine/view/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/view/item~Item view item}.\n     */\n\n  }, {\n    key: \"createPositionAt\",\n    value: function createPositionAt(itemOrPosition, offset) {\n      return Position._createAt(itemOrPosition, offset);\n    }\n    /**\n     * Creates a new position after given view item.\n     *\n     * @param {module:engine/view/item~Item} item View item after which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"createPositionAfter\",\n    value: function createPositionAfter(item) {\n      return Position._createAfter(item);\n    }\n    /**\n     * Creates a new position before given view item.\n     *\n     * @param {module:engine/view/item~Item} item View item before which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"createPositionBefore\",\n    value: function createPositionBefore(item) {\n      return Position._createBefore(item);\n    }\n    /**\n     * Creates a range spanning from `start` position to `end` position.\n     *\n     * **Note:** This factory method creates it's own {@link module:engine/view/position~Position} instances basing on passed values.\n     *\n     * @param {module:engine/view/position~Position} start Start position.\n     * @param {module:engine/view/position~Position} [end] End position. If not set, range will be collapsed at `start` position.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange(start, end) {\n      return new Range(start, end);\n    }\n    /**\n     * Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.\n     *\n     * @param {module:engine/view/item~Item} item\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRangeOn\",\n    value: function createRangeOn(item) {\n      return Range._createOn(item);\n    }\n    /**\n     * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     * @param {module:engine/view/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRangeIn\",\n    value: function createRangeIn(element) {\n      return Range._createIn(element);\n    }\n    /**\n     Creates new {@link module:engine/view/selection~Selection} instance.\n     *\n     * \t\t// Creates empty selection without ranges.\n     *\t\tconst selection = writer.createSelection();\n     *\n     *\t\t// Creates selection at the given range.\n     *\t\tconst range = writer.createRange( start, end );\n     *\t\tconst selection = writer.createSelection( range );\n     *\n     *\t\t// Creates selection at the given ranges\n     * \t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n     *\t\tconst selection = writer.createSelection( ranges );\n     *\n     *\t\t// Creates selection from the other selection.\n     *\t\tconst otherSelection = writer.createSelection();\n     *\t\tconst selection = writer.createSelection( otherSelection );\n     *\n     *\t\t// Creates selection from the document selection.\n     *\t\tconst selection = writer.createSelection( editor.editing.view.document.selection );\n     *\n     * \t\t// Creates selection at the given position.\n     *\t\tconst position = writer.createPositionFromPath( root, path );\n     *\t\tconst selection = writer.createSelection( position );\n     *\n     *\t\t// Creates collapsed selection at the position of given item and offset.\n     *\t\tconst paragraph = writer.createContainerElement( 'p' );\n     *\t\tconst selection = writer.createSelection( paragraph, offset );\n     *\n     *\t\t// Creates a range inside an {@link module:engine/view/element~Element element} which starts before the\n     *\t\t// first child of that element and ends after the last child of that element.\n     *\t\tconst selection = writer.createSelection( paragraph, 'in' );\n     *\n     *\t\t// Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends\n     *\t\t// just after the item.\n     *\t\tconst selection = writer.createSelection( paragraph, 'on' );\n     *\n     * `Selection`'s constructor allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n     *\n     *\t\t// Creates backward selection.\n     *\t\tconst selection = writer.createSelection( range, { backward: true } );\n     *\n     * Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n     * This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n     * represented in other way, for example by applying proper CSS class.\n     *\n     * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM\n     * (and be  properly handled by screen readers).\n     *\n     *\t\t// Creates fake selection with label.\n     *\t\tconst selection = writer.createSelection( range, { fake: true, label: 'foo' } );\n     *\n     * @param {module:engine/view/selection~Selectable} [selectable=null]\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n     * @param {String} [options.label] Label for the fake selection.\n     * @returns {module:engine/view/selection~Selection}\n     */\n\n  }, {\n    key: \"createSelection\",\n    value: function createSelection(selectable, placeOrOffset, options) {\n      return new Selection(selectable, placeOrOffset, options);\n    }\n    /**\n     * Wraps children with provided `wrapElement`. Only children contained in `parent` element between\n     * `startOffset` and `endOffset` will be wrapped.\n     *\n     * @private\n     * @param {module:engine/view/element~Element} parent\n     * @param {Number} startOffset\n     * @param {Number} endOffset\n     * @param {module:engine/view/element~Element} wrapElement\n     */\n\n  }, {\n    key: \"_wrapChildren\",\n    value: function _wrapChildren(parent, startOffset, endOffset, wrapElement) {\n      var i = startOffset;\n      var wrapPositions = [];\n\n      while (i < endOffset) {\n        var child = parent.getChild(i);\n        var isText = child.is('text');\n        var isAttribute = child.is('attributeElement');\n        var isEmpty = child.is('emptyElement');\n        var isUI = child.is('uiElement'); //\n        // (In all examples, assume that `wrapElement` is `<span class=\"foo\">` element.)\n        //\n        // Check if `wrapElement` can be joined with the wrapped element. One of requirements is having same name.\n        // If possible, join elements.\n        //\n        // <p><span class=\"bar\">abc</span></p>  -->  <p><span class=\"foo bar\">abc</span></p>\n        //\n\n        if (isAttribute && this._wrapAttributeElement(wrapElement, child)) {\n          wrapPositions.push(new Position(parent, i));\n        } //\n        // Wrap the child if it is not an attribute element or if it is an attribute element that should be inside\n        // `wrapElement` (due to priority).\n        //\n        // <p>abc</p>                   -->  <p><span class=\"foo\">abc</span></p>\n        // <p><strong>abc</strong></p>  -->  <p><span class=\"foo\"><strong>abc</strong></span></p>\n        //\n        else if (isText || isEmpty || isUI || isAttribute && shouldABeOutsideB(wrapElement, child)) {\n            // Clone attribute.\n            var newAttribute = wrapElement._clone(); // Wrap current node with new attribute.\n\n\n            child._remove();\n\n            newAttribute._appendChild(child);\n\n            parent._insertChild(i, newAttribute);\n\n            this._addToClonedElementsGroup(newAttribute);\n\n            wrapPositions.push(new Position(parent, i));\n          } //\n          // If other nested attribute is found and it wasn't wrapped (see above), continue wrapping inside it.\n          //\n          // <p><a href=\"foo.html\">abc</a></p>  -->  <p><a href=\"foo.html\"><span class=\"foo\">abc</span></a></p>\n          //\n          else if (isAttribute) {\n              this._wrapChildren(child, 0, child.childCount, wrapElement);\n            }\n\n        i++;\n      } // Merge at each wrap.\n\n\n      var offsetChange = 0;\n\n      for (var _i = 0, _wrapPositions = wrapPositions; _i < _wrapPositions.length; _i++) {\n        var position = _wrapPositions[_i];\n        position.offset -= offsetChange; // Do not merge with elements outside selected children.\n\n        if (position.offset == startOffset) {\n          continue;\n        }\n\n        var newPosition = this.mergeAttributes(position); // If nodes were merged - other merge offsets will change.\n\n        if (!newPosition.isEqual(position)) {\n          offsetChange++;\n          endOffset--;\n        }\n      }\n\n      return Range._createFromParentsAndOffsets(parent, startOffset, parent, endOffset);\n    }\n    /**\n     * Unwraps children from provided `unwrapElement`. Only children contained in `parent` element between\n     * `startOffset` and `endOffset` will be unwrapped.\n     *\n     * @private\n     * @param {module:engine/view/element~Element} parent\n     * @param {Number} startOffset\n     * @param {Number} endOffset\n     * @param {module:engine/view/element~Element} unwrapElement\n     */\n\n  }, {\n    key: \"_unwrapChildren\",\n    value: function _unwrapChildren(parent, startOffset, endOffset, unwrapElement) {\n      var i = startOffset;\n      var unwrapPositions = []; // Iterate over each element between provided offsets inside parent.\n      // We don't use tree walker or range iterator because we will be removing and merging potentially multiple nodes,\n      // so it could get messy. It is safer to it manually in this case.\n\n      while (i < endOffset) {\n        var child = parent.getChild(i); // Skip all text nodes. There should be no container element's here either.\n\n        if (!child.is('attributeElement')) {\n          i++;\n          continue;\n        } //\n        // (In all examples, assume that `unwrapElement` is `<span class=\"foo\">` element.)\n        //\n        // If the child is similar to the given attribute element, unwrap it - it will be completely removed.\n        //\n        // <p><span class=\"foo\">abc</span>xyz</p>  -->  <p>abcxyz</p>\n        //\n\n\n        if (child.isSimilar(unwrapElement)) {\n          var unwrapped = child.getChildren();\n          var count = child.childCount; // Replace wrapper element with its children\n\n          child._remove();\n\n          parent._insertChild(i, unwrapped);\n\n          this._removeFromClonedElementsGroup(child); // Save start and end position of moved items.\n\n\n          unwrapPositions.push(new Position(parent, i), new Position(parent, i + count)); // Skip elements that were unwrapped. Assuming there won't be another element to unwrap in child elements.\n\n          i += count;\n          endOffset += count - 1;\n          continue;\n        } //\n        // If the child is not similar but is an attribute element, try partial unwrapping - remove the same attributes/styles/classes.\n        // Partial unwrapping will happen only if the elements have the same name.\n        //\n        // <p><span class=\"foo bar\">abc</span>xyz</p>  -->  <p><span class=\"bar\">abc</span>xyz</p>\n        // <p><i class=\"foo\">abc</i>xyz</p>            -->  <p><i class=\"foo\">abc</i>xyz</p>\n        //\n\n\n        if (this._unwrapAttributeElement(unwrapElement, child)) {\n          unwrapPositions.push(new Position(parent, i), new Position(parent, i + 1));\n          i++;\n          continue;\n        } //\n        // If other nested attribute is found, look through it's children for elements to unwrap.\n        //\n        // <p><i><span class=\"foo\">abc</span></i><p>  -->  <p><i>abc</i><p>\n        //\n\n\n        this._unwrapChildren(child, 0, child.childCount, unwrapElement);\n\n        i++;\n      } // Merge at each unwrap.\n\n\n      var offsetChange = 0;\n\n      for (var _i2 = 0, _unwrapPositions = unwrapPositions; _i2 < _unwrapPositions.length; _i2++) {\n        var position = _unwrapPositions[_i2];\n        position.offset -= offsetChange; // Do not merge with elements outside selected children.\n\n        if (position.offset == startOffset || position.offset == endOffset) {\n          continue;\n        }\n\n        var newPosition = this.mergeAttributes(position); // If nodes were merged - other merge offsets will change.\n\n        if (!newPosition.isEqual(position)) {\n          offsetChange++;\n          endOffset--;\n        }\n      }\n\n      return Range._createFromParentsAndOffsets(parent, startOffset, parent, endOffset);\n    }\n    /**\n     * Helper function for `view.writer.wrap`. Wraps range with provided attribute element.\n     * This method will also merge newly added attribute element with its siblings whenever possible.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n     * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n     *\n     * @private\n     * @param {module:engine/view/range~Range} range\n     * @param {module:engine/view/attributeelement~AttributeElement} attribute\n     * @returns {module:engine/view/range~Range} New range after wrapping, spanning over wrapping attribute element.\n     */\n\n  }, {\n    key: \"_wrapRange\",\n    value: function _wrapRange(range, attribute) {\n      // Break attributes at range start and end.\n      var _this$_breakAttribute3 = this._breakAttributesRange(range, true),\n          breakStart = _this$_breakAttribute3.start,\n          breakEnd = _this$_breakAttribute3.end;\n\n      var parentContainer = breakStart.parent; // Wrap all children with attribute.\n\n      var newRange = this._wrapChildren(parentContainer, breakStart.offset, breakEnd.offset, attribute); // Merge attributes at the both ends and return a new range.\n\n\n      var start = this.mergeAttributes(newRange.start); // If start position was merged - move end position back.\n\n      if (!start.isEqual(newRange.start)) {\n        newRange.end.offset--;\n      }\n\n      var end = this.mergeAttributes(newRange.end);\n      return new Range(start, end);\n    }\n    /**\n     * Helper function for {@link #wrap}. Wraps position with provided attribute element.\n     * This method will also merge newly added attribute element with its siblings whenever possible.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError} `view-writer-wrap-invalid-attribute` when passed attribute element is not\n     * an instance of {@link module:engine/view/attributeelement~AttributeElement AttributeElement}.\n     *\n     * @private\n     * @param {module:engine/view/position~Position} position\n     * @param {module:engine/view/attributeelement~AttributeElement} attribute\n     * @returns {module:engine/view/position~Position} New position after wrapping.\n     */\n\n  }, {\n    key: \"_wrapPosition\",\n    value: function _wrapPosition(position, attribute) {\n      // Return same position when trying to wrap with attribute similar to position parent.\n      if (attribute.isSimilar(position.parent)) {\n        return movePositionToTextNode(position.clone());\n      } // When position is inside text node - break it and place new position between two text nodes.\n\n\n      if (position.parent.is('text')) {\n        position = breakTextNode(position);\n      } // Create fake element that will represent position, and will not be merged with other attributes.\n\n\n      var fakePosition = this.createAttributeElement();\n      fakePosition._priority = Number.POSITIVE_INFINITY;\n\n      fakePosition.isSimilar = function () {\n        return false;\n      }; // Insert fake element in position location.\n\n\n      position.parent._insertChild(position.offset, fakePosition); // Range around inserted fake attribute element.\n\n\n      var wrapRange = new Range(position, position.getShiftedBy(1)); // Wrap fake element with attribute (it will also merge if possible).\n\n      this.wrap(wrapRange, attribute); // Remove fake element and place new position there.\n\n      var newPosition = new Position(fakePosition.parent, fakePosition.index);\n\n      fakePosition._remove(); // If position is placed between text nodes - merge them and return position inside.\n\n\n      var nodeBefore = newPosition.nodeBefore;\n      var nodeAfter = newPosition.nodeAfter;\n\n      if (nodeBefore instanceof Text && nodeAfter instanceof Text) {\n        return mergeTextNodes(nodeBefore, nodeAfter);\n      } // If position is next to text node - move position inside.\n\n\n      return movePositionToTextNode(newPosition);\n    }\n    /**\n     * \tWraps one {@link module:engine/view/attributeelement~AttributeElement AttributeElement} into another by\n     * \tmerging them if possible. When merging is possible - all attributes, styles and classes are moved from wrapper\n     * \telement to element being wrapped.\n     *\n     * \t@private\n     * \t@param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n     * \t@param {module:engine/view/attributeelement~AttributeElement} toWrap AttributeElement to wrap using wrapper element.\n     * \t@returns {Boolean} Returns `true` if elements are merged.\n     */\n\n  }, {\n    key: \"_wrapAttributeElement\",\n    value: function _wrapAttributeElement(wrapper, toWrap) {\n      if (!canBeJoined(wrapper, toWrap)) {\n        return false;\n      } // Can't merge if name or priority differs.\n\n\n      if (wrapper.name !== toWrap.name || wrapper.priority !== toWrap.priority) {\n        return false;\n      } // Check if attributes can be merged.\n\n\n      var _iterator4 = _createForOfIteratorHelper(wrapper.getAttributeKeys()),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var key = _step4.value;\n\n          // Classes and styles should be checked separately.\n          if (key === 'class' || key === 'style') {\n            continue;\n          } // If some attributes are different we cannot wrap.\n\n\n          if (toWrap.hasAttribute(key) && toWrap.getAttribute(key) !== wrapper.getAttribute(key)) {\n            return false;\n          }\n        } // Check if styles can be merged.\n\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      var _iterator5 = _createForOfIteratorHelper(wrapper.getStyleNames()),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var _key = _step5.value;\n\n          if (toWrap.hasStyle(_key) && toWrap.getStyle(_key) !== wrapper.getStyle(_key)) {\n            return false;\n          }\n        } // Move all attributes/classes/styles from wrapper to wrapped AttributeElement.\n\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      var _iterator6 = _createForOfIteratorHelper(wrapper.getAttributeKeys()),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var _key2 = _step6.value;\n\n          // Classes and styles should be checked separately.\n          if (_key2 === 'class' || _key2 === 'style') {\n            continue;\n          } // Move only these attributes that are not present - other are similar.\n\n\n          if (!toWrap.hasAttribute(_key2)) {\n            this.setAttribute(_key2, wrapper.getAttribute(_key2), toWrap);\n          }\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      var _iterator7 = _createForOfIteratorHelper(wrapper.getStyleNames()),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var _key3 = _step7.value;\n\n          if (!toWrap.hasStyle(_key3)) {\n            this.setStyle(_key3, wrapper.getStyle(_key3), toWrap);\n          }\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n\n      var _iterator8 = _createForOfIteratorHelper(wrapper.getClassNames()),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var _key4 = _step8.value;\n\n          if (!toWrap.hasClass(_key4)) {\n            this.addClass(_key4, toWrap);\n          }\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      return true;\n    }\n    /**\n     * Unwraps {@link module:engine/view/attributeelement~AttributeElement AttributeElement} from another by removing\n     * corresponding attributes, classes and styles. All attributes, classes and styles from wrapper should be present\n     * inside element being unwrapped.\n     *\n     * @private\n     * @param {module:engine/view/attributeelement~AttributeElement} wrapper Wrapper AttributeElement.\n     * @param {module:engine/view/attributeelement~AttributeElement} toUnwrap AttributeElement to unwrap using wrapper element.\n     * @returns {Boolean} Returns `true` if elements are unwrapped.\n     **/\n\n  }, {\n    key: \"_unwrapAttributeElement\",\n    value: function _unwrapAttributeElement(wrapper, toUnwrap) {\n      if (!canBeJoined(wrapper, toUnwrap)) {\n        return false;\n      } // Can't unwrap if name or priority differs.\n\n\n      if (wrapper.name !== toUnwrap.name || wrapper.priority !== toUnwrap.priority) {\n        return false;\n      } // Check if AttributeElement has all wrapper attributes.\n\n\n      var _iterator9 = _createForOfIteratorHelper(wrapper.getAttributeKeys()),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var key = _step9.value;\n\n          // Classes and styles should be checked separately.\n          if (key === 'class' || key === 'style') {\n            continue;\n          } // If some attributes are missing or different we cannot unwrap.\n\n\n          if (!toUnwrap.hasAttribute(key) || toUnwrap.getAttribute(key) !== wrapper.getAttribute(key)) {\n            return false;\n          }\n        } // Check if AttributeElement has all wrapper classes.\n\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      if (!toUnwrap.hasClass.apply(toUnwrap, _toConsumableArray(wrapper.getClassNames()))) {\n        return false;\n      } // Check if AttributeElement has all wrapper styles.\n\n\n      var _iterator10 = _createForOfIteratorHelper(wrapper.getStyleNames()),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var _key5 = _step10.value;\n\n          // If some styles are missing or different we cannot unwrap.\n          if (!toUnwrap.hasStyle(_key5) || toUnwrap.getStyle(_key5) !== wrapper.getStyle(_key5)) {\n            return false;\n          }\n        } // Remove all wrapper's attributes from unwrapped element.\n\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n\n      var _iterator11 = _createForOfIteratorHelper(wrapper.getAttributeKeys()),\n          _step11;\n\n      try {\n        for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n          var _key6 = _step11.value;\n\n          // Classes and styles should be checked separately.\n          if (_key6 === 'class' || _key6 === 'style') {\n            continue;\n          }\n\n          this.removeAttribute(_key6, toUnwrap);\n        } // Remove all wrapper's classes from unwrapped element.\n\n      } catch (err) {\n        _iterator11.e(err);\n      } finally {\n        _iterator11.f();\n      }\n\n      this.removeClass(Array.from(wrapper.getClassNames()), toUnwrap); // Remove all wrapper's styles from unwrapped element.\n\n      this.removeStyle(Array.from(wrapper.getStyleNames()), toUnwrap);\n      return true;\n    }\n    /**\n     * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at the boundaries of given range.\n     *\n     * @private\n     * @param {module:engine/view/range~Range} range Range which `start` and `end` positions will be used to break attributes.\n     * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n     * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n     * @returns {module:engine/view/range~Range} New range with located at break positions.\n     */\n\n  }, {\n    key: \"_breakAttributesRange\",\n    value: function _breakAttributesRange(range) {\n      var forceSplitText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var rangeStart = range.start;\n      var rangeEnd = range.end;\n      validateRangeContainer(range, this.document); // Break at the collapsed position. Return new collapsed range.\n\n      if (range.isCollapsed) {\n        var position = this._breakAttributes(range.start, forceSplitText);\n\n        return new Range(position, position);\n      }\n\n      var breakEnd = this._breakAttributes(rangeEnd, forceSplitText);\n\n      var count = breakEnd.parent.childCount;\n\n      var breakStart = this._breakAttributes(rangeStart, forceSplitText); // Calculate new break end offset.\n\n\n      breakEnd.offset += breakEnd.parent.childCount - count;\n      return new Range(breakStart, breakEnd);\n    }\n    /**\n     * Helper function used by other `DowncastWriter` methods. Breaks attribute elements at given position.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-empty-element` when break position\n     * is placed inside {@link module:engine/view/emptyelement~EmptyElement EmptyElement}.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-cannot-break-ui-element` when break position\n     * is placed inside {@link module:engine/view/uielement~UIElement UIElement}.\n     *\n     * @private\n     * @param {module:engine/view/position~Position} position Position where to break attributes.\n     * @param {Boolean} [forceSplitText=false] If set to `true`, will break text nodes even if they are directly in container element.\n     * This behavior will result in incorrect view state, but is needed by other view writing methods which then fixes view state.\n     * @returns {module:engine/view/position~Position} New position after breaking the attributes.\n     */\n\n  }, {\n    key: \"_breakAttributes\",\n    value: function _breakAttributes(position) {\n      var forceSplitText = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      var positionOffset = position.offset;\n      var positionParent = position.parent; // If position is placed inside EmptyElement - throw an exception as we cannot break inside.\n\n      if (position.parent.is('emptyElement')) {\n        /**\n         * Cannot break inside EmptyElement instance.\n         *\n         * @error view-writer-cannot-break-empty-element\n         */\n        throw new CKEditorError('view-writer-cannot-break-empty-element', this.document);\n      } // If position is placed inside UIElement - throw an exception as we cannot break inside.\n\n\n      if (position.parent.is('uiElement')) {\n        /**\n         * Cannot break inside UIElement instance.\n         *\n         * @error view-writer-cannot-break-ui-element\n         */\n        throw new CKEditorError('view-writer-cannot-break-ui-element', this.document);\n      } // There are no attributes to break and text nodes breaking is not forced.\n\n\n      if (!forceSplitText && positionParent.is('text') && isContainerOrFragment(positionParent.parent)) {\n        return position.clone();\n      } // Position's parent is container, so no attributes to break.\n\n\n      if (isContainerOrFragment(positionParent)) {\n        return position.clone();\n      } // Break text and start again in new position.\n\n\n      if (positionParent.is('text')) {\n        return this._breakAttributes(breakTextNode(position), forceSplitText);\n      }\n\n      var length = positionParent.childCount; // <p>foo<b><u>bar{}</u></b></p>\n      // <p>foo<b><u>bar</u>[]</b></p>\n      // <p>foo<b><u>bar</u></b>[]</p>\n\n      if (positionOffset == length) {\n        var newPosition = new Position(positionParent.parent, positionParent.index + 1);\n        return this._breakAttributes(newPosition, forceSplitText);\n      } else {\n        // <p>foo<b><u>{}bar</u></b></p>\n        // <p>foo<b>[]<u>bar</u></b></p>\n        // <p>foo{}<b><u>bar</u></b></p>\n        if (positionOffset === 0) {\n          var _newPosition = new Position(positionParent.parent, positionParent.index);\n\n          return this._breakAttributes(_newPosition, forceSplitText);\n        } // <p>foo<b><u>b{}ar</u></b></p>\n        // <p>foo<b><u>b[]ar</u></b></p>\n        // <p>foo<b><u>b</u>[]<u>ar</u></b></p>\n        // <p>foo<b><u>b</u></b>[]<b><u>ar</u></b></p>\n        else {\n            var offsetAfter = positionParent.index + 1; // Break element.\n\n            var clonedNode = positionParent._clone(); // Insert cloned node to position's parent node.\n\n\n            positionParent.parent._insertChild(offsetAfter, clonedNode);\n\n            this._addToClonedElementsGroup(clonedNode); // Get nodes to move.\n\n\n            var count = positionParent.childCount - positionOffset;\n\n            var nodesToMove = positionParent._removeChildren(positionOffset, count); // Move nodes to cloned node.\n\n\n            clonedNode._appendChild(nodesToMove); // Create new position to work on.\n\n\n            var _newPosition2 = new Position(positionParent.parent, offsetAfter);\n\n            return this._breakAttributes(_newPosition2, forceSplitText);\n          }\n      }\n    }\n    /**\n     * Stores the information that an {@link module:engine/view/attributeelement~AttributeElement attribute element} was\n     * added to the tree. Saves the reference to the group in the given element and updates the group, so other elements\n     * from the group now keep a reference to the given attribute element.\n     *\n     * The clones group can be obtained using {@link module:engine/view/attributeelement~AttributeElement#getElementsWithSameId}.\n     *\n     * Does nothing if added element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n     *\n     * @private\n     * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to save.\n     */\n\n  }, {\n    key: \"_addToClonedElementsGroup\",\n    value: function _addToClonedElementsGroup(element) {\n      // Add only if the element is in document tree.\n      if (!element.root.is('rootElement')) {\n        return;\n      } // Traverse the element's children recursively to find other attribute elements that also might got inserted.\n      // The loop is at the beginning so we can make fast returns later in the code.\n\n\n      if (element.is('element')) {\n        var _iterator12 = _createForOfIteratorHelper(element.getChildren()),\n            _step12;\n\n        try {\n          for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n            var child = _step12.value;\n\n            this._addToClonedElementsGroup(child);\n          }\n        } catch (err) {\n          _iterator12.e(err);\n        } finally {\n          _iterator12.f();\n        }\n      }\n\n      var id = element.id;\n\n      if (!id) {\n        return;\n      }\n\n      var group = this._cloneGroups.get(id);\n\n      if (!group) {\n        group = new Set();\n\n        this._cloneGroups.set(id, group);\n      }\n\n      group.add(element);\n      element._clonesGroup = group;\n    }\n    /**\n     * Removes all the information about the given {@link module:engine/view/attributeelement~AttributeElement attribute element}\n     * from its clones group.\n     *\n     * Keep in mind, that the element will still keep a reference to the group (but the group will not keep a reference to it).\n     * This allows to reference the whole group even if the element was already removed from the tree.\n     *\n     * Does nothing if the element has no {@link module:engine/view/attributeelement~AttributeElement#id id}.\n     *\n     * @private\n     * @param {module:engine/view/attributeelement~AttributeElement} element Attribute element to remove.\n     */\n\n  }, {\n    key: \"_removeFromClonedElementsGroup\",\n    value: function _removeFromClonedElementsGroup(element) {\n      // Traverse the element's children recursively to find other attribute elements that also got removed.\n      // The loop is at the beginning so we can make fast returns later in the code.\n      if (element.is('element')) {\n        var _iterator13 = _createForOfIteratorHelper(element.getChildren()),\n            _step13;\n\n        try {\n          for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n            var child = _step13.value;\n\n            this._removeFromClonedElementsGroup(child);\n          }\n        } catch (err) {\n          _iterator13.e(err);\n        } finally {\n          _iterator13.f();\n        }\n      }\n\n      var id = element.id;\n\n      if (!id) {\n        return;\n      }\n\n      var group = this._cloneGroups.get(id);\n\n      if (!group) {\n        return;\n      }\n\n      group.delete(element); // Not removing group from element on purpose!\n      // If other parts of code have reference to this element, they will be able to get references to other elements from the group.\n    }\n  }]);\n\n  return DowncastWriter;\n}(); // Helper function for `view.writer.wrap`. Checks if given element has any children that are not ui elements.\n\n\nexport { DowncastWriter as default };\n\nfunction _hasNonUiChildren(parent) {\n  return Array.from(parent.getChildren()).some(function (child) {\n    return !child.is('uiElement');\n  });\n}\n/**\n * Attribute element need to be instance of attribute element.\n *\n * @error view-writer-wrap-invalid-attribute\n */\n// Returns first parent container of specified {@link module:engine/view/position~Position Position}.\n// Position's parent node is checked as first, then next parents are checked.\n// Note that {@link module:engine/view/documentfragment~DocumentFragment DocumentFragment} is treated like a container.\n//\n// @param {module:engine/view/position~Position} position Position used as a start point to locate parent container.\n// @returns {module:engine/view/containerelement~ContainerElement|module:engine/view/documentfragment~DocumentFragment|undefined}\n// Parent container element or `undefined` if container is not found.\n\n\nfunction getParentContainer(position) {\n  var parent = position.parent;\n\n  while (!isContainerOrFragment(parent)) {\n    if (!parent) {\n      return undefined;\n    }\n\n    parent = parent.parent;\n  }\n\n  return parent;\n} // Checks if first {@link module:engine/view/attributeelement~AttributeElement AttributeElement} provided to the function\n// can be wrapped otuside second element. It is done by comparing elements'\n// {@link module:engine/view/attributeelement~AttributeElement#priority priorities}, if both have same priority\n// {@link module:engine/view/element~Element#getIdentity identities} are compared.\n//\n// @param {module:engine/view/attributeelement~AttributeElement} a\n// @param {module:engine/view/attributeelement~AttributeElement} b\n// @returns {Boolean}\n\n\nfunction shouldABeOutsideB(a, b) {\n  if (a.priority < b.priority) {\n    return true;\n  } else if (a.priority > b.priority) {\n    return false;\n  } // When priorities are equal and names are different - use identities.\n\n\n  return a.getIdentity() < b.getIdentity();\n} // Returns new position that is moved to near text node. Returns same position if there is no text node before of after\n// specified position.\n//\n//\t\t<p>foo[]</p>  ->  <p>foo{}</p>\n//\t\t<p>[]foo</p>  ->  <p>{}foo</p>\n//\n// @param {module:engine/view/position~Position} position\n// @returns {module:engine/view/position~Position} Position located inside text node or same position if there is no text nodes\n// before or after position location.\n\n\nfunction movePositionToTextNode(position) {\n  var nodeBefore = position.nodeBefore;\n\n  if (nodeBefore && nodeBefore.is('text')) {\n    return new Position(nodeBefore, nodeBefore.data.length);\n  }\n\n  var nodeAfter = position.nodeAfter;\n\n  if (nodeAfter && nodeAfter.is('text')) {\n    return new Position(nodeAfter, 0);\n  }\n\n  return position;\n} // Breaks text node into two text nodes when possible.\n//\n//\t\t<p>foo{}bar</p> -> <p>foo[]bar</p>\n//\t\t<p>{}foobar</p> -> <p>[]foobar</p>\n//\t\t<p>foobar{}</p> -> <p>foobar[]</p>\n//\n// @param {module:engine/view/position~Position} position Position that need to be placed inside text node.\n// @returns {module:engine/view/position~Position} New position after breaking text node.\n\n\nfunction breakTextNode(position) {\n  if (position.offset == position.parent.data.length) {\n    return new Position(position.parent.parent, position.parent.index + 1);\n  }\n\n  if (position.offset === 0) {\n    return new Position(position.parent.parent, position.parent.index);\n  } // Get part of the text that need to be moved.\n\n\n  var textToMove = position.parent.data.slice(position.offset); // Leave rest of the text in position's parent.\n\n  position.parent._data = position.parent.data.slice(0, position.offset); // Insert new text node after position's parent text node.\n\n  position.parent.parent._insertChild(position.parent.index + 1, new Text(textToMove)); // Return new position between two newly created text nodes.\n\n\n  return new Position(position.parent.parent, position.parent.index + 1);\n} // Merges two text nodes into first node. Removes second node and returns merge position.\n//\n// @param {module:engine/view/text~Text} t1 First text node to merge. Data from second text node will be moved at the end of\n// this text node.\n// @param {module:engine/view/text~Text} t2 Second text node to merge. This node will be removed after merging.\n// @returns {module:engine/view/position~Position} Position after merging text nodes.\n\n\nfunction mergeTextNodes(t1, t2) {\n  // Merge text data into first text node and remove second one.\n  var nodeBeforeLength = t1.data.length;\n  t1._data += t2.data;\n\n  t2._remove();\n\n  return new Position(t1, nodeBeforeLength);\n} // Checks if provided nodes are valid to insert. Checks if each node is an instance of\n// {@link module:engine/view/text~Text Text} or {@link module:engine/view/attributeelement~AttributeElement AttributeElement},\n// {@link module:engine/view/containerelement~ContainerElement ContainerElement},\n// {@link module:engine/view/emptyelement~EmptyElement EmptyElement} or\n// {@link module:engine/view/uielement~UIElement UIElement}.\n//\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-insert-invalid-node` when nodes to insert\n// contains instances that are not {@link module:engine/view/text~Text Texts},\n// {@link module:engine/view/emptyelement~EmptyElement EmptyElements},\n// {@link module:engine/view/uielement~UIElement UIElements},\n// {@link module:engine/view/attributeelement~AttributeElement AttributeElements} or\n// {@link module:engine/view/containerelement~ContainerElement ContainerElements}.\n//\n// @param Iterable.<module:engine/view/text~Text|module:engine/view/attributeelement~AttributeElement\n// |module:engine/view/containerelement~ContainerElement> nodes\n// @param {Object} errorContext\n\n\nfunction validateNodesToInsert(nodes, errorContext) {\n  var _iterator14 = _createForOfIteratorHelper(nodes),\n      _step14;\n\n  try {\n    var _loop = function _loop() {\n      var node = _step14.value;\n\n      if (!validNodesToInsert.some(function (validNode) {\n        return node instanceof validNode;\n      })) {\n        // eslint-disable-line no-use-before-define\n\n        /**\n         * Inserted nodes should be valid to insert. of {@link module:engine/view/attributeelement~AttributeElement AttributeElement},\n         * {@link module:engine/view/containerelement~ContainerElement ContainerElement},\n         * {@link module:engine/view/emptyelement~EmptyElement EmptyElement},\n         * {@link module:engine/view/uielement~UIElement UIElement}, {@link module:engine/view/text~Text Text}.\n         *\n         * @error view-writer-insert-invalid-node\n         */\n        throw new CKEditorError('view-writer-insert-invalid-node', errorContext);\n      }\n\n      if (!node.is('text')) {\n        validateNodesToInsert(node.getChildren(), errorContext);\n      }\n    };\n\n    for (_iterator14.s(); !(_step14 = _iterator14.n()).done;) {\n      _loop();\n    }\n  } catch (err) {\n    _iterator14.e(err);\n  } finally {\n    _iterator14.f();\n  }\n}\n\nvar validNodesToInsert = [Text, AttributeElement, ContainerElement, EmptyElement, UIElement]; // Checks if node is ContainerElement or DocumentFragment, because in most cases they should be treated the same way.\n//\n// @param {module:engine/view/node~Node} node\n// @returns {Boolean} Returns `true` if node is instance of ContainerElement or DocumentFragment.\n\nfunction isContainerOrFragment(node) {\n  return node && (node.is('containerElement') || node.is('documentFragment'));\n} // Checks if {@link module:engine/view/range~Range#start range start} and {@link module:engine/view/range~Range#end range end} are placed\n// inside same {@link module:engine/view/containerelement~ContainerElement container element}.\n// Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-writer-invalid-range-container` when validation fails.\n//\n// @param {module:engine/view/range~Range} range\n// @param {Object} errorContext\n\n\nfunction validateRangeContainer(range, errorContext) {\n  var startContainer = getParentContainer(range.start);\n  var endContainer = getParentContainer(range.end);\n\n  if (!startContainer || !endContainer || startContainer !== endContainer) {\n    /**\n     * Range container is invalid. This can happen if {@link module:engine/view/range~Range#start range start} and\n     * {@link module:engine/view/range~Range#end range end} positions are not placed inside same container or\n     * parent container for these positions cannot be found.\n     *\n     * @error view-writer-invalid-range-container\n     */\n    throw new CKEditorError('view-writer-invalid-range-container', errorContext);\n  }\n} // Checks if two attribute elements can be joined together. Elements can be joined together if, and only if\n// they do not have ids specified.\n//\n// @private\n// @param {module:engine/view/element~Element} a\n// @param {module:engine/view/element~Element} b\n// @returns {Boolean}\n\n\nfunction canBeJoined(a, b) {\n  return a.id === null && b.id === null;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/editableelement\n */\nimport ContainerElement from \"./containerelement\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nvar documentSymbol = Symbol('document');\n/**\n * Editable element which can be a {@link module:engine/view/rooteditableelement~RootEditableElement root}\n * or nested editable area in the editor.\n *\n * Editable is automatically read-only when its {@link module:engine/view/document~Document Document} is read-only.\n *\n * The constructor of this class shouldn't be used directly. To create new `EditableElement` use the\n * {@link module:engine/view/downcastwriter~DowncastWriter#createEditableElement `downcastWriter#createEditableElement()`} method.\n *\n * @extends module:engine/view/containerelement~ContainerElement\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar EditableElement = /*#__PURE__*/function (_ContainerElement) {\n  _inherits(EditableElement, _ContainerElement);\n\n  var _super = _createSuper(EditableElement);\n\n  /**\n   * Creates an editable element.\n   *\n   * @see module:engine/view/downcastwriter~DowncastWriter#createEditableElement\n   * @protected\n   */\n  function EditableElement(name, attrs, children) {\n    var _this;\n\n    _classCallCheck(this, EditableElement);\n\n    _this = _super.call(this, name, attrs, children);\n    /**\n     * Whether the editable is in read-write or read-only mode.\n     *\n     * @observable\n     * @member {Boolean} module:engine/view/editableelement~EditableElement#isReadOnly\n     */\n\n    _this.set('isReadOnly', false);\n    /**\n     * Whether the editable is focused.\n     *\n     * This property updates when {@link module:engine/view/document~Document#isFocused document.isFocused} or view\n     * selection is changed.\n     *\n     * @readonly\n     * @observable\n     * @member {Boolean} module:engine/view/editableelement~EditableElement#isFocused\n     */\n\n\n    _this.set('isFocused', false);\n    /**\n     * The {@link module:engine/view/document~Document} which is an owner of this root.\n     * Can only by set once.\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-editableelement-document-already-set`\n     * when document is already set.\n     *\n     * @member {module:engine/view/document~Document} #document\n     */\n\n\n    return _this;\n  }\n  /**\n   * Checks whether this object is of the given.\n   *\n   *\t\teditableElement.is( 'editableElement' ); // -> true\n   *\t\teditableElement.is( 'element' ); // -> true\n   *\t\teditableElement.is( 'node' ); // -> true\n   *\t\teditableElement.is( 'view:editableElement' ); // -> true\n   *\t\teditableElement.is( 'view:element' ); // -> true\n   *\t\teditableElement.is( 'view:node' ); // -> true\n   *\n   *\t\teditableElement.is( 'model:element' ); // -> false\n   *\t\teditableElement.is( 'documentFragment' ); // -> false\n   *\n   * Assuming that the object being checked is an editbale element, you can also check its\n   * {@link module:engine/view/editableelement~EditableElement#name name}:\n   *\n   *\t\teditableElement.is( 'div' ); // -> true if this is a div element\n   *\t\teditableElement.is( 'editableElement', 'div' ); // -> same as above\n   *\t\ttext.is( 'div' ); -> false\n   *\n   * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n   *\n   * @param {String} type Type to check when `name` parameter is present.\n   * Otherwise, it acts like the `name` parameter.\n   * @param {String} [name] Element name.\n   * @returns {Boolean}\n   */\n\n\n  _createClass(EditableElement, [{\n    key: \"is\",\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type && type.replace(/^view:/, '');\n\n      if (!name) {\n        return cutType == 'editableElement' || _get(_getPrototypeOf(EditableElement.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'editableElement' && name == this.name || _get(_getPrototypeOf(EditableElement.prototype), \"is\", this).call(this, type, name);\n      }\n    }\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.stopListening();\n    }\n    /**\n     * Returns document associated with the editable.\n     *\n     * @readonly\n     * @returns {module:engine/view/document~Document}\n     */\n\n  }, {\n    key: \"document\",\n    get: function get() {\n      return this.getCustomProperty(documentSymbol);\n    }\n    /**\n     * Sets document of this editable element.\n     *\n     * @protected\n     * @param {module:engine/view/document~Document} document\n     */\n\n  }, {\n    key: \"_document\",\n    set: function set(document) {\n      var _this2 = this;\n\n      if (this.getCustomProperty(documentSymbol)) {\n        /**\n         * View document is already set. It can only be set once.\n         *\n         * @error view-editableelement-document-already-set\n         */\n        throw new CKEditorError('view-editableelement-document-already-set: View document is already set.', this);\n      }\n\n      this._setCustomProperty(documentSymbol, document);\n\n      this.bind('isReadOnly').to(document);\n      this.bind('isFocused').to(document, 'isFocused', function (isFocused) {\n        return isFocused && document.selection.editableElement == _this2;\n      }); // Update focus state based on selection changes.\n\n      this.listenTo(document.selection, 'change', function () {\n        _this2.isFocused = document.isFocused && document.selection.editableElement == _this2;\n      });\n    }\n  }]);\n\n  return EditableElement;\n}(ContainerElement);\n\nexport { EditableElement as default };\nmix(EditableElement, ObservableMixin);","import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.sort\";\nimport \"core-js/modules/es6.regexp.match\";\nimport _construct from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/construct\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/element\n */\nimport Node from \"./node\";\nimport Text from \"./text\";\nimport TextProxy from \"./textproxy\";\nimport objectToMap from '@ckeditor/ckeditor5-utils/src/objecttomap';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\nimport Matcher from \"./matcher\";\nimport { isPlainObject } from 'lodash-es';\n/**\n * View element.\n *\n * The editing engine does not define a fixed semantics of its elements (it is \"DTD-free\").\n * This is why the type of the {@link module:engine/view/element~Element} need to\n * be defined by the feature developer. When creating an element you should use one of the following methods:\n *\n * * {@link module:engine/view/downcastwriter~DowncastWriter#createContainerElement `downcastWriter#createContainerElement()`}\n * in order to create a {@link module:engine/view/containerelement~ContainerElement},\n * * {@link module:engine/view/downcastwriter~DowncastWriter#createAttributeElement `downcastWriter#createAttributeElement()`}\n * in order to create a {@link module:engine/view/attributeelement~AttributeElement},\n * * {@link module:engine/view/downcastwriter~DowncastWriter#createEmptyElement `downcastWriter#createEmptyElement()`}\n * in order to create a {@link module:engine/view/emptyelement~EmptyElement}.\n * * {@link module:engine/view/downcastwriter~DowncastWriter#createUIElement `downcastWriter#createUIElement()`}\n * in order to create a {@link module:engine/view/uielement~UIElement}.\n * * {@link module:engine/view/downcastwriter~DowncastWriter#createEditableElement `downcastWriter#createEditableElement()`}\n * in order to create a {@link module:engine/view/editableelement~EditableElement}.\n *\n * Note that for view elements which are not created from the model, like elements from mutations, paste or\n * {@link module:engine/controller/datacontroller~DataController#set data.set} it is not possible to define the type of the element.\n * In such cases the {@link module:engine/view/upcastwriter~UpcastWriter#createElement `UpcastWriter#createElement()`} method\n * should be used to create generic view elements.\n *\n * @extends module:engine/view/node~Node\n */\n\nvar Element = /*#__PURE__*/function (_Node) {\n  _inherits(Element, _Node);\n\n  var _super = _createSuper(Element);\n\n  /**\n   * Creates a view element.\n   *\n   * Attributes can be passed in various formats:\n   *\n   *\t\tnew Element( 'div', { class: 'editor', contentEditable: 'true' } ); // object\n   *\t\tnew Element( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator\n   *\t\tnew Element( 'div', mapOfAttributes ); // map\n   *\n   * @protected\n   * @param {String} name Node name.\n   * @param {Object|Iterable} [attrs] Collection of attributes.\n   * @param {module:engine/view/node~Node|Iterable.<module:engine/view/node~Node>} [children]\n   * A list of nodes to be inserted into created element.\n   */\n  function Element(name, attrs, children) {\n    var _this;\n\n    _classCallCheck(this, Element);\n\n    _this = _super.call(this);\n    /**\n     * Name of the element.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    _this.name = name;\n    /**\n     * Map of attributes, where attributes names are keys and attributes values are values.\n     *\n     * @protected\n     * @member {Map} #_attrs\n     */\n\n    _this._attrs = parseAttributes(attrs);\n    /**\n     * Array of child nodes.\n     *\n     * @protected\n     * @member {Array.<module:engine/view/node~Node>}\n     */\n\n    _this._children = [];\n\n    if (children) {\n      _this._insertChild(0, children);\n    }\n    /**\n     * Set of classes associated with element instance.\n     *\n     * @protected\n     * @member {Set}\n     */\n\n\n    _this._classes = new Set();\n\n    if (_this._attrs.has('class')) {\n      // Remove class attribute and handle it by class set.\n      var classString = _this._attrs.get('class');\n\n      parseClasses(_this._classes, classString);\n\n      _this._attrs.delete('class');\n    }\n    /**\n     * Map of styles.\n     *\n     * @protected\n     * @member {Map} module:engine/view/element~Element#_styles\n     */\n\n\n    _this._styles = new Map();\n\n    if (_this._attrs.has('style')) {\n      // Remove style attribute and handle it by styles map.\n      parseInlineStyles(_this._styles, _this._attrs.get('style'));\n\n      _this._attrs.delete('style');\n    }\n    /**\n     * Map of custom properties.\n     * Custom properties can be added to element instance, will be cloned but not rendered into DOM.\n     *\n     * @protected\n     * @member {Map}\n     */\n\n\n    _this._customProperties = new Map();\n    return _this;\n  }\n  /**\n   * Number of element's children.\n   *\n   * @readonly\n   * @type {Number}\n   */\n\n\n  _createClass(Element, [{\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given.\n     *\n     *\t\telement.is( 'element' ); // -> true\n     *\t\telement.is( 'node' ); // -> true\n     *\t\telement.is( 'view:element' ); // -> true\n     *\t\telement.is( 'view:node' ); // -> true\n     *\n     *\t\telement.is( 'model:element' ); // -> false\n     *\t\telement.is( 'documentSelection' ); // -> false\n     *\n     * Assuming that the object being checked is an element, you can also check its\n     * {@link module:engine/view/element~Element#name name}:\n     *\n     *\t\telement.is( 'img' ); // -> true if this is an <img> element\n     *\t\telement.is( 'element', 'img' ); // -> same as above\n     *\t\ttext.is( 'img' ); -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type Type to check when `name` parameter is present.\n     * Otherwise, it acts like the `name` parameter.\n     * @param {String} [name] Element name.\n     * @returns {Boolean}\n     */\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type.replace(/^view:/, '');\n\n      if (!name) {\n        return cutType == 'element' || cutType == this.name || _get(_getPrototypeOf(Element.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'element' && name == this.name;\n      }\n    }\n    /**\n     * Gets child at the given index.\n     *\n     * @param {Number} index Index of child.\n     * @returns {module:engine/view/node~Node} Child node.\n     */\n\n  }, {\n    key: \"getChild\",\n    value: function getChild(index) {\n      return this._children[index];\n    }\n    /**\n     * Gets index of the given child node. Returns `-1` if child node is not found.\n     *\n     * @param {module:engine/view/node~Node} node Child node.\n     * @returns {Number} Index of the child node.\n     */\n\n  }, {\n    key: \"getChildIndex\",\n    value: function getChildIndex(node) {\n      return this._children.indexOf(node);\n    }\n    /**\n     * Gets child nodes iterator.\n     *\n     * @returns {Iterable.<module:engine/view/node~Node>} Child nodes iterator.\n     */\n\n  }, {\n    key: \"getChildren\",\n    value: function getChildren() {\n      return this._children[Symbol.iterator]();\n    }\n    /**\n     * Returns an iterator that contains the keys for attributes. Order of inserting attributes is not preserved.\n     *\n     * @returns {Iterable.<String>} Keys for attributes.\n     */\n\n  }, {\n    key: \"getAttributeKeys\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getAttributeKeys() {\n      return regeneratorRuntime.wrap(function getAttributeKeys$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              if (!(this._classes.size > 0)) {\n                _context.next = 3;\n                break;\n              }\n\n              _context.next = 3;\n              return 'class';\n\n            case 3:\n              if (!(this._styles.size > 0)) {\n                _context.next = 6;\n                break;\n              }\n\n              _context.next = 6;\n              return 'style';\n\n            case 6:\n              return _context.delegateYield(this._attrs.keys(), \"t0\", 7);\n\n            case 7:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, getAttributeKeys, this);\n    })\n    /**\n     * Returns iterator that iterates over this element's attributes.\n     *\n     * Attributes are returned as arrays containing two items. First one is attribute key and second is attribute value.\n     * This format is accepted by native `Map` object and also can be passed in `Node` constructor.\n     *\n     * @returns {Iterable.<*>}\n     */\n\n  }, {\n    key: \"getAttributes\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getAttributes() {\n      return regeneratorRuntime.wrap(function getAttributes$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              return _context2.delegateYield(this._attrs.entries(), \"t0\", 1);\n\n            case 1:\n              if (!(this._classes.size > 0)) {\n                _context2.next = 4;\n                break;\n              }\n\n              _context2.next = 4;\n              return ['class', this.getAttribute('class')];\n\n            case 4:\n              if (!(this._styles.size > 0)) {\n                _context2.next = 7;\n                break;\n              }\n\n              _context2.next = 7;\n              return ['style', this.getAttribute('style')];\n\n            case 7:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, getAttributes, this);\n    })\n    /**\n     * Gets attribute by key. If attribute is not present - returns undefined.\n     *\n     * @param {String} key Attribute key.\n     * @returns {String|undefined} Attribute value.\n     */\n\n  }, {\n    key: \"getAttribute\",\n    value: function getAttribute(key) {\n      if (key == 'class') {\n        if (this._classes.size > 0) {\n          return _toConsumableArray(this._classes).join(' ');\n        }\n\n        return undefined;\n      }\n\n      if (key == 'style') {\n        if (this._styles.size > 0) {\n          var styleString = '';\n\n          var _iterator = _createForOfIteratorHelper(this._styles),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var _step$value = _slicedToArray(_step.value, 2),\n                  property = _step$value[0],\n                  value = _step$value[1];\n\n              styleString += \"\".concat(property, \":\").concat(value, \";\");\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n\n          return styleString;\n        }\n\n        return undefined;\n      }\n\n      return this._attrs.get(key);\n    }\n    /**\n     * Returns a boolean indicating whether an attribute with the specified key exists in the element.\n     *\n     * @param {String} key Attribute key.\n     * @returns {Boolean} `true` if attribute with the specified key exists in the element, false otherwise.\n     */\n\n  }, {\n    key: \"hasAttribute\",\n    value: function hasAttribute(key) {\n      if (key == 'class') {\n        return this._classes.size > 0;\n      }\n\n      if (key == 'style') {\n        return this._styles.size > 0;\n      }\n\n      return this._attrs.has(key);\n    }\n    /**\n     * Checks if this element is similar to other element.\n     * Both elements should have the same name and attributes to be considered as similar. Two similar elements\n     * can contain different set of children nodes.\n     *\n     * @param {module:engine/view/element~Element} otherElement\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isSimilar\",\n    value: function isSimilar(otherElement) {\n      if (!(otherElement instanceof Element)) {\n        return false;\n      } // If exactly the same Element is provided - return true immediately.\n\n\n      if (this === otherElement) {\n        return true;\n      } // Check element name.\n\n\n      if (this.name != otherElement.name) {\n        return false;\n      } // Check number of attributes, classes and styles.\n\n\n      if (this._attrs.size !== otherElement._attrs.size || this._classes.size !== otherElement._classes.size || this._styles.size !== otherElement._styles.size) {\n        return false;\n      } // Check if attributes are the same.\n\n\n      var _iterator2 = _createForOfIteratorHelper(this._attrs),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var _step2$value = _slicedToArray(_step2.value, 2),\n              key = _step2$value[0],\n              value = _step2$value[1];\n\n          if (!otherElement._attrs.has(key) || otherElement._attrs.get(key) !== value) {\n            return false;\n          }\n        } // Check if classes are the same.\n\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var _iterator3 = _createForOfIteratorHelper(this._classes),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var className = _step3.value;\n\n          if (!otherElement._classes.has(className)) {\n            return false;\n          }\n        } // Check if styles are the same.\n\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      var _iterator4 = _createForOfIteratorHelper(this._styles),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var _step4$value = _slicedToArray(_step4.value, 2),\n              property = _step4$value[0],\n              _value = _step4$value[1];\n\n          if (!otherElement._styles.has(property) || otherElement._styles.get(property) !== _value) {\n            return false;\n          }\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      return true;\n    }\n    /**\n     * Returns true if class is present.\n     * If more then one class is provided - returns true only when all classes are present.\n     *\n     *\t\telement.hasClass( 'foo' ); // Returns true if 'foo' class is present.\n     *\t\telement.hasClass( 'foo', 'bar' ); // Returns true if 'foo' and 'bar' classes are both present.\n     *\n     * @param {...String} className\n     */\n\n  }, {\n    key: \"hasClass\",\n    value: function hasClass() {\n      for (var _len = arguments.length, className = new Array(_len), _key = 0; _key < _len; _key++) {\n        className[_key] = arguments[_key];\n      }\n\n      for (var _i = 0, _className = className; _i < _className.length; _i++) {\n        var name = _className[_i];\n\n        if (!this._classes.has(name)) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n    /**\n     * Returns iterator that contains all class names.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getClassNames\",\n    value: function getClassNames() {\n      return this._classes.keys();\n    }\n    /**\n     * Returns style value for given property.\n     * Undefined is returned if style does not exist.\n     *\n     * @param {String} property\n     * @returns {String|undefined}\n     */\n\n  }, {\n    key: \"getStyle\",\n    value: function getStyle(property) {\n      return this._styles.get(property);\n    }\n    /**\n     * Returns iterator that contains all style names.\n     *\n     * @returns {Iterable.<String>}\n     */\n\n  }, {\n    key: \"getStyleNames\",\n    value: function getStyleNames() {\n      return this._styles.keys();\n    }\n    /**\n     * Returns true if style keys are present.\n     * If more then one style property is provided - returns true only when all properties are present.\n     *\n     *\t\telement.hasStyle( 'color' ); // Returns true if 'border-top' style is present.\n     *\t\telement.hasStyle( 'color', 'border-top' ); // Returns true if 'color' and 'border-top' styles are both present.\n     *\n     * @param {...String} property\n     */\n\n  }, {\n    key: \"hasStyle\",\n    value: function hasStyle() {\n      for (var _len2 = arguments.length, property = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        property[_key2] = arguments[_key2];\n      }\n\n      for (var _i2 = 0, _property = property; _i2 < _property.length; _i2++) {\n        var name = _property[_i2];\n\n        if (!this._styles.has(name)) {\n          return false;\n        }\n      }\n\n      return true;\n    }\n    /**\n     * Returns ancestor element that match specified pattern.\n     * Provided patterns should be compatible with {@link module:engine/view/matcher~Matcher Matcher} as it is used internally.\n     *\n     * @see module:engine/view/matcher~Matcher\n     * @param {Object|String|RegExp|Function} patterns Patterns used to match correct ancestor.\n     * See {@link module:engine/view/matcher~Matcher}.\n     * @returns {module:engine/view/element~Element|null} Found element or `null` if no matching ancestor was found.\n     */\n\n  }, {\n    key: \"findAncestor\",\n    value: function findAncestor() {\n      for (var _len3 = arguments.length, patterns = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        patterns[_key3] = arguments[_key3];\n      }\n\n      var matcher = _construct(Matcher, patterns);\n\n      var parent = this.parent;\n\n      while (parent) {\n        if (matcher.match(parent)) {\n          return parent;\n        }\n\n        parent = parent.parent;\n      }\n\n      return null;\n    }\n    /**\n     * Returns the custom property value for the given key.\n     *\n     * @param {String|Symbol} key\n     * @returns {*}\n     */\n\n  }, {\n    key: \"getCustomProperty\",\n    value: function getCustomProperty(key) {\n      return this._customProperties.get(key);\n    }\n    /**\n     * Returns an iterator which iterates over this element's custom properties.\n     * Iterator provides `[ key, value ]` pairs for each stored property.\n     *\n     * @returns {Iterable.<*>}\n     */\n\n  }, {\n    key: \"getCustomProperties\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getCustomProperties() {\n      return regeneratorRuntime.wrap(function getCustomProperties$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              return _context3.delegateYield(this._customProperties.entries(), \"t0\", 1);\n\n            case 1:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, getCustomProperties, this);\n    })\n    /**\n     * Returns identity string based on element's name, styles, classes and other attributes.\n     * Two elements that {@link #isSimilar are similar} will have same identity string.\n     * It has the following format:\n     *\n     *\t\t'name class=\"class1,class2\" style=\"style1:value1;style2:value2\" attr1=\"val1\" attr2=\"val2\"'\n    \t *\n     * For example:\n     *\n     *\t\tconst element = writer.createContainerElement( 'foo', {\n     *\t\t\tbanana: '10',\n     *\t\t\tapple: '20',\n     *\t\t\tstyle: 'color: red; border-color: white;',\n     *\t\t\tclass: 'baz'\n     *\t\t} );\n     *\n     *\t\t// returns 'foo class=\"baz\" style=\"border-color:white;color:red\" apple=\"20\" banana=\"10\"'\n     *\t\telement.getIdentity();\n     *\n     * NOTE: Classes, styles and other attributes are sorted alphabetically.\n     *\n     * @returns {String}\n     */\n\n  }, {\n    key: \"getIdentity\",\n    value: function getIdentity() {\n      var classes = Array.from(this._classes).sort().join(',');\n      var styles = Array.from(this._styles).map(function (i) {\n        return \"\".concat(i[0], \":\").concat(i[1]);\n      }).sort().join(';');\n      var attributes = Array.from(this._attrs).map(function (i) {\n        return \"\".concat(i[0], \"=\\\"\").concat(i[1], \"\\\"\");\n      }).sort().join(' ');\n      return this.name + (classes == '' ? '' : \" class=\\\"\".concat(classes, \"\\\"\")) + (styles == '' ? '' : \" style=\\\"\".concat(styles, \"\\\"\")) + (attributes == '' ? '' : \" \".concat(attributes));\n    }\n    /**\n     * Clones provided element.\n     *\n     * @protected\n     * @param {Boolean} [deep=false] If set to `true` clones element and all its children recursively. When set to `false`,\n     * element will be cloned without any children.\n     * @returns {module:engine/view/element~Element} Clone of this element.\n     */\n\n  }, {\n    key: \"_clone\",\n    value: function _clone() {\n      var deep = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n      var childrenClone = [];\n\n      if (deep) {\n        var _iterator5 = _createForOfIteratorHelper(this.getChildren()),\n            _step5;\n\n        try {\n          for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n            var child = _step5.value;\n            childrenClone.push(child._clone(deep));\n          }\n        } catch (err) {\n          _iterator5.e(err);\n        } finally {\n          _iterator5.f();\n        }\n      } // ContainerElement and AttributeElement should be also cloned properly.\n\n\n      var cloned = new this.constructor(this.name, this._attrs, childrenClone); // Classes and styles are cloned separately - this solution is faster than adding them back to attributes and\n      // parse once again in constructor.\n\n      cloned._classes = new Set(this._classes);\n      cloned._styles = new Map(this._styles); // Clone custom properties.\n\n      cloned._customProperties = new Map(this._customProperties); // Clone filler offset method.\n      // We can't define this method in a prototype because it's behavior which\n      // is changed by e.g. toWidget() function from ckeditor5-widget. Perhaps this should be one of custom props.\n\n      cloned.getFillerOffset = this.getFillerOffset;\n      return cloned;\n    }\n    /**\n     * {@link module:engine/view/element~Element#_insertChild Insert} a child node or a list of child nodes at the end of this node\n     * and sets the parent of these nodes to this element.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#insert\n     * @protected\n     * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.\n     * @fires module:engine/view/node~Node#change\n     * @returns {Number} Number of appended nodes.\n     */\n\n  }, {\n    key: \"_appendChild\",\n    value: function _appendChild(items) {\n      return this._insertChild(this.childCount, items);\n    }\n    /**\n     * Inserts a child node or a list of child nodes on the given index and sets the parent of these nodes to\n     * this element.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#insert\n     * @protected\n     * @param {Number} index Position where nodes should be inserted.\n     * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.\n     * @fires module:engine/view/node~Node#change\n     * @returns {Number} Number of inserted nodes.\n     */\n\n  }, {\n    key: \"_insertChild\",\n    value: function _insertChild(index, items) {\n      this._fireChange('children', this);\n\n      var count = 0;\n      var nodes = normalize(items);\n\n      var _iterator6 = _createForOfIteratorHelper(nodes),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var node = _step6.value;\n\n          // If node that is being added to this element is already inside another element, first remove it from the old parent.\n          if (node.parent !== null) {\n            node._remove();\n          }\n\n          node.parent = this;\n\n          this._children.splice(index, 0, node);\n\n          index++;\n          count++;\n        }\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      return count;\n    }\n    /**\n     * Removes number of child nodes starting at the given index and set the parent of these nodes to `null`.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#remove\n     * @protected\n     * @param {Number} index Number of the first node to remove.\n     * @param {Number} [howMany=1] Number of nodes to remove.\n     * @fires module:engine/view/node~Node#change\n     * @returns {Array.<module:engine/view/node~Node>} The array of removed nodes.\n     */\n\n  }, {\n    key: \"_removeChildren\",\n    value: function _removeChildren(index) {\n      var howMany = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n\n      this._fireChange('children', this);\n\n      for (var i = index; i < index + howMany; i++) {\n        this._children[i].parent = null;\n      }\n\n      return this._children.splice(index, howMany);\n    }\n    /**\n     * Adds or overwrite attribute with a specified key and value.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#setAttribute\n     * @protected\n     * @param {String} key Attribute key.\n     * @param {String} value Attribute value.\n     * @fires module:engine/view/node~Node#change\n     */\n\n  }, {\n    key: \"_setAttribute\",\n    value: function _setAttribute(key, value) {\n      value = String(value);\n\n      this._fireChange('attributes', this);\n\n      if (key == 'class') {\n        parseClasses(this._classes, value);\n      } else if (key == 'style') {\n        parseInlineStyles(this._styles, value);\n      } else {\n        this._attrs.set(key, value);\n      }\n    }\n    /**\n     * Removes attribute from the element.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#removeAttribute\n     * @protected\n     * @param {String} key Attribute key.\n     * @returns {Boolean} Returns true if an attribute existed and has been removed.\n     * @fires module:engine/view/node~Node#change\n     */\n\n  }, {\n    key: \"_removeAttribute\",\n    value: function _removeAttribute(key) {\n      this._fireChange('attributes', this); // Remove class attribute.\n\n\n      if (key == 'class') {\n        if (this._classes.size > 0) {\n          this._classes.clear();\n\n          return true;\n        }\n\n        return false;\n      } // Remove style attribute.\n\n\n      if (key == 'style') {\n        if (this._styles.size > 0) {\n          this._styles.clear();\n\n          return true;\n        }\n\n        return false;\n      } // Remove other attributes.\n\n\n      return this._attrs.delete(key);\n    }\n    /**\n     * Adds specified class.\n     *\n     *\t\telement._addClass( 'foo' ); // Adds 'foo' class.\n     *\t\telement._addClass( [ 'foo', 'bar' ] ); // Adds 'foo' and 'bar' classes.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#addClass\n     * @protected\n     * @param {Array.<String>|String} className\n     * @fires module:engine/view/node~Node#change\n     */\n\n  }, {\n    key: \"_addClass\",\n    value: function _addClass(className) {\n      var _this2 = this;\n\n      this._fireChange('attributes', this);\n\n      className = Array.isArray(className) ? className : [className];\n      className.forEach(function (name) {\n        return _this2._classes.add(name);\n      });\n    }\n    /**\n     * Removes specified class.\n     *\n     *\t\telement._removeClass( 'foo' );  // Removes 'foo' class.\n     *\t\telement._removeClass( [ 'foo', 'bar' ] ); // Removes both 'foo' and 'bar' classes.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#removeClass\n     * @protected\n     * @param {Array.<String>|String} className\n     * @fires module:engine/view/node~Node#change\n     */\n\n  }, {\n    key: \"_removeClass\",\n    value: function _removeClass(className) {\n      var _this3 = this;\n\n      this._fireChange('attributes', this);\n\n      className = Array.isArray(className) ? className : [className];\n      className.forEach(function (name) {\n        return _this3._classes.delete(name);\n      });\n    }\n    /**\n     * Adds style to the element.\n     *\n     *\t\telement._setStyle( 'color', 'red' );\n     *\t\telement._setStyle( {\n     *\t\t\tcolor: 'red',\n     *\t\t\tposition: 'fixed'\n     *\t\t} );\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#setStyle\n     * @protected\n     * @param {String|Object} property Property name or object with key - value pairs.\n     * @param {String} [value] Value to set. This parameter is ignored if object is provided as the first parameter.\n     * @fires module:engine/view/node~Node#change\n     */\n\n  }, {\n    key: \"_setStyle\",\n    value: function _setStyle(property, value) {\n      this._fireChange('attributes', this);\n\n      if (isPlainObject(property)) {\n        var keys = Object.keys(property);\n\n        for (var _i3 = 0, _keys = keys; _i3 < _keys.length; _i3++) {\n          var key = _keys[_i3];\n\n          this._styles.set(key, property[key]);\n        }\n      } else {\n        this._styles.set(property, value);\n      }\n    }\n    /**\n     * Removes specified style.\n     *\n     *\t\telement._removeStyle( 'color' );  // Removes 'color' style.\n     *\t\telement._removeStyle( [ 'color', 'border-top' ] ); // Removes both 'color' and 'border-top' styles.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#removeStyle\n     * @protected\n     * @param {Array.<String>|String} property\n     * @fires module:engine/view/node~Node#change\n     */\n\n  }, {\n    key: \"_removeStyle\",\n    value: function _removeStyle(property) {\n      var _this4 = this;\n\n      this._fireChange('attributes', this);\n\n      property = Array.isArray(property) ? property : [property];\n      property.forEach(function (name) {\n        return _this4._styles.delete(name);\n      });\n    }\n    /**\n     * Sets a custom property. Unlike attributes, custom properties are not rendered to the DOM,\n     * so they can be used to add special data to elements.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#setCustomProperty\n     * @protected\n     * @param {String|Symbol} key\n     * @param {*} value\n     */\n\n  }, {\n    key: \"_setCustomProperty\",\n    value: function _setCustomProperty(key, value) {\n      this._customProperties.set(key, value);\n    }\n    /**\n     * Removes the custom property stored under the given key.\n     *\n     * @see module:engine/view/downcastwriter~DowncastWriter#removeCustomProperty\n     * @protected\n     * @param {String|Symbol} key\n     * @returns {Boolean} Returns true if property was removed.\n     */\n\n  }, {\n    key: \"_removeCustomProperty\",\n    value: function _removeCustomProperty(key) {\n      return this._customProperties.delete(key);\n    }\n    /**\n     * Returns block {@link module:engine/view/filler filler} offset or `null` if block filler is not needed.\n     *\n     * @abstract\n     * @method module:engine/view/element~Element#getFillerOffset\n     */\n\n  }, {\n    key: \"childCount\",\n    get: function get() {\n      return this._children.length;\n    }\n    /**\n     * Is `true` if there are no nodes inside this element, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isEmpty\",\n    get: function get() {\n      return this._children.length === 0;\n    }\n  }]);\n\n  return Element;\n}(Node); // Parses attributes provided to the element constructor before they are applied to an element. If attributes are passed\n// as an object (instead of `Map`), the object is transformed to the map. Attributes with `null` value are removed.\n// Attributes with non-`String` value are converted to `String`.\n//\n// @param {Object|Map} attrs Attributes to parse.\n// @returns {Map} Parsed attributes.\n\n\nexport { Element as default };\n\nfunction parseAttributes(attrs) {\n  if (isPlainObject(attrs)) {\n    attrs = objectToMap(attrs);\n  } else {\n    attrs = new Map(attrs);\n  }\n\n  var _iterator7 = _createForOfIteratorHelper(attrs),\n      _step7;\n\n  try {\n    for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n      var _step7$value = _slicedToArray(_step7.value, 2),\n          key = _step7$value[0],\n          value = _step7$value[1];\n\n      if (value === null) {\n        attrs.delete(key);\n      } else if (typeof value != 'string') {\n        attrs.set(key, String(value));\n      }\n    }\n  } catch (err) {\n    _iterator7.e(err);\n  } finally {\n    _iterator7.f();\n  }\n\n  return attrs;\n} // Parses inline styles and puts property - value pairs into styles map.\n// Styles map is cleared before insertion.\n//\n// @param {Map.<String, String>} stylesMap Map to insert parsed properties and values.\n// @param {String} stylesString Styles to parse.\n\n\nfunction parseInlineStyles(stylesMap, stylesString) {\n  // `null` if no quote was found in input string or last found quote was a closing quote. See below.\n  var quoteType = null;\n  var propertyNameStart = 0;\n  var propertyValueStart = 0;\n  var propertyName = null;\n  stylesMap.clear(); // Do not set anything if input string is empty.\n\n  if (stylesString === '') {\n    return;\n  } // Fix inline styles that do not end with `;` so they are compatible with algorithm below.\n\n\n  if (stylesString.charAt(stylesString.length - 1) != ';') {\n    stylesString = stylesString + ';';\n  } // Seek the whole string for \"special characters\".\n\n\n  for (var i = 0; i < stylesString.length; i++) {\n    var char = stylesString.charAt(i);\n\n    if (quoteType === null) {\n      // No quote found yet or last found quote was a closing quote.\n      switch (char) {\n        case ':':\n          // Most of time colon means that property name just ended.\n          // Sometimes however `:` is found inside property value (for example in background image url).\n          if (!propertyName) {\n            // Treat this as end of property only if property name is not already saved.\n            // Save property name.\n            propertyName = stylesString.substr(propertyNameStart, i - propertyNameStart); // Save this point as the start of property value.\n\n            propertyValueStart = i + 1;\n          }\n\n          break;\n\n        case '\"':\n        case '\\'':\n          // Opening quote found (this is an opening quote, because `quoteType` is `null`).\n          quoteType = char;\n          break;\n\n        case ';':\n          {\n            // Property value just ended.\n            // Use previously stored property value start to obtain property value.\n            var propertyValue = stylesString.substr(propertyValueStart, i - propertyValueStart);\n\n            if (propertyName) {\n              // Save parsed part.\n              stylesMap.set(propertyName.trim(), propertyValue.trim());\n            }\n\n            propertyName = null; // Save this point as property name start. Property name starts immediately after previous property value ends.\n\n            propertyNameStart = i + 1;\n            break;\n          }\n      }\n    } else if (char === quoteType) {\n      // If a quote char is found and it is a closing quote, mark this fact by `null`-ing `quoteType`.\n      quoteType = null;\n    }\n  }\n} // Parses class attribute and puts all classes into classes set.\n// Classes set s cleared before insertion.\n//\n// @param {Set.<String>} classesSet Set to insert parsed classes.\n// @param {String} classesString String with classes to parse.\n\n\nfunction parseClasses(classesSet, classesString) {\n  var classArray = classesString.split(/\\s+/);\n  classesSet.clear();\n  classArray.forEach(function (name) {\n    return classesSet.add(name);\n  });\n} // Converts strings to Text and non-iterables to arrays.\n//\n// @param {String|module:engine/view/item~Item|Iterable.<String|module:engine/view/item~Item>}\n// @returns {Iterable.<module:engine/view/node~Node>}\n\n\nfunction normalize(nodes) {\n  // Separate condition because string is iterable.\n  if (typeof nodes == 'string') {\n    return [new Text(nodes)];\n  }\n\n  if (!isIterable(nodes)) {\n    nodes = [nodes];\n  } // Array.from to enable .map() on non-arrays.\n\n\n  return Array.from(nodes).map(function (node) {\n    if (typeof node == 'string') {\n      return new Text(node);\n    }\n\n    if (node instanceof TextProxy) {\n      return new Text(node.data);\n    }\n\n    return node;\n  });\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/emptyelement\n */\nimport Element from \"./element\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Node from \"./node\";\n/**\n * Empty element class. It is used to represent elements that cannot contain any child nodes (for example `<img>` elements).\n *\n * To create a new empty element use the\n * {@link module:engine/view/downcastwriter~DowncastWriter#createEmptyElement `downcastWriter#createEmptyElement()`} method.\n *\n * @extends module:engine/view/element~Element\n */\n\nvar EmptyElement = /*#__PURE__*/function (_Element) {\n  _inherits(EmptyElement, _Element);\n\n  var _super = _createSuper(EmptyElement);\n\n  /**\n   * Creates new instance of EmptyElement.\n   *\n   * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-emptyelement-cannot-add` when third parameter is passed,\n   * to inform that usage of EmptyElement is incorrect (adding child nodes to EmptyElement is forbidden).\n   *\n   * @see module:engine/view/downcastwriter~DowncastWriter#createEmptyElement\n   * @protected\n   * @param {String} name Node name.\n   * @param {Object|Iterable} [attributes] Collection of attributes.\n   */\n  function EmptyElement(name, attributes, children) {\n    var _this;\n\n    _classCallCheck(this, EmptyElement);\n\n    _this = _super.call(this, name, attributes, children);\n    /**\n     * Returns `null` because filler is not needed for EmptyElements.\n     *\n     * @method #getFillerOffset\n     * @returns {null} Always returns null.\n     */\n\n    _this.getFillerOffset = getFillerOffset;\n    return _this;\n  }\n  /**\n   * Checks whether this object is of the given.\n   *\n   *\t\temptyElement.is( 'emptyElement' ); // -> true\n   *\t\temptyElement.is( 'element' ); // -> true\n   *\t\temptyElement.is( 'node' ); // -> true\n   *\t\temptyElement.is( 'view:emptyElement' ); // -> true\n   *\t\temptyElement.is( 'view:element' ); // -> true\n   *\t\temptyElement.is( 'view:node' ); // -> true\n   *\n   *\t\temptyElement.is( 'model:element' ); // -> false\n   *\t\temptyElement.is( 'documentFragment' ); // -> false\n   *\n   * Assuming that the object being checked is an empty element, you can also check its\n   * {@link module:engine/view/emptyelement~EmptyElement#name name}:\n   *\n   *\t\temptyElement.is( 'img' ); // -> true if this is a img element\n   *\t\temptyElement.is( 'emptyElement', 'img' ); // -> same as above\n   *\t\ttext.is( 'img' ); -> false\n   *\n   * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n   *\n   * @param {String} type Type to check when `name` parameter is present.\n   * Otherwise, it acts like the `name` parameter.\n   * @param {String} [name] Element name.\n   * @returns {Boolean}\n   */\n\n\n  _createClass(EmptyElement, [{\n    key: \"is\",\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type.replace(/^view:/, '');\n\n      if (!name) {\n        return cutType == 'emptyElement' || _get(_getPrototypeOf(EmptyElement.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'emptyElement' && name == this.name || _get(_getPrototypeOf(EmptyElement.prototype), \"is\", this).call(this, type, name);\n      }\n    }\n    /**\n     * Overrides {@link module:engine/view/element~Element#_insertChild} method.\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-emptyelement-cannot-add` to prevent\n     * adding any child nodes to EmptyElement.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_insertChild\",\n    value: function _insertChild(index, nodes) {\n      if (nodes && (nodes instanceof Node || Array.from(nodes).length > 0)) {\n        /**\n         * Cannot add children to {@link module:engine/view/emptyelement~EmptyElement}.\n         *\n         * @error view-emptyelement-cannot-add\n         */\n        throw new CKEditorError('view-emptyelement-cannot-add: Cannot add child nodes to EmptyElement instance.', [this, nodes]);\n      }\n    }\n  }]);\n\n  return EmptyElement;\n}(Element); // Returns `null` because block filler is not needed for EmptyElements.\n//\n// @returns {null}\n\n\nexport { EmptyElement as default };\n\nfunction getFillerOffset() {\n  return null;\n}","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\n/**\n * Set of utils related to block and inline fillers handling.\n *\n * Browsers do not allow to put caret in elements which does not have height. Because of it, we need to fill all\n * empty elements which should be selectable with elements or characters called \"fillers\". Unfortunately there is no one\n * universal filler, this is why two types are uses:\n *\n * * Block filler is an element which fill block elements, like `<p>`. CKEditor uses `<br>` as a block filler during the editing,\n * as browsers do natively. So instead of an empty `<p>` there will be `<p><br></p>`. The advantage of block filler is that\n * it is transparent for the selection, so when the caret is before the `<br>` and user presses right arrow he will be\n * moved to the next paragraph, not after the `<br>`. The disadvantage is that it breaks a block, so it can not be used\n * in the middle of a line of text. The {@link module:engine/view/filler~BR_FILLER `<br>` filler} can be replaced with any other\n * character in the data output, for instance {@link module:engine/view/filler~NBSP_FILLER non-breaking space}.\n *\n * * Inline filler is a filler which does not break a line of text, so it can be used inside the text, for instance in the empty\n * `<b>` surrendered by text: `foo<b></b>bar`, if we want to put the caret there. CKEditor uses a sequence of the zero-width\n * spaces as an {@link module:engine/view/filler~INLINE_FILLER inline filler} having the predetermined\n * {@link module:engine/view/filler~INLINE_FILLER_LENGTH length}. A sequence is used, instead of a single character to\n * avoid treating random zero-width spaces as the inline filler. Disadvantage of the inline filler is that it is not\n * transparent for the selection. The arrow key moves the caret between zero-width spaces characters, so the additional\n * code is needed to handle the caret.\n *\n * Both inline and block fillers are handled by the {@link module:engine/view/renderer~Renderer renderer} and are not present in the\n * view.\n *\n * @module engine/view/filler\n */\n\n/**\n * Non-breaking space filler creator. This is a function which creates `&nbsp;` text node.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~BR_FILLER\n * @function\n */\n\nexport var NBSP_FILLER = function NBSP_FILLER(domDocument) {\n  return domDocument.createTextNode(\"\\xA0\");\n};\n/**\n * `<br>` filler creator. This is a function which creates `<br data-cke-filler=\"true\">` element.\n * It defines how the filler is created.\n *\n * @see module:engine/view/filler~NBSP_FILLER\n * @function\n */\n\nexport var BR_FILLER = function BR_FILLER(domDocument) {\n  var fillerBr = domDocument.createElement('br');\n  fillerBr.dataset.ckeFiller = true;\n  return fillerBr;\n};\n/**\n * Length of the {@link module:engine/view/filler~INLINE_FILLER INLINE_FILLER}.\n */\n\nexport var INLINE_FILLER_LENGTH = 7;\n/**\n * Inline filler which is a sequence of the zero width spaces.\n */\n\nexport var INLINE_FILLER = function () {\n  var inlineFiller = '';\n\n  for (var i = 0; i < INLINE_FILLER_LENGTH; i++) {\n    inlineFiller += \"\\u200B\";\n  }\n\n  return inlineFiller;\n}(); // Usu IIF so the INLINE_FILLER appears as a constant in the docs.\n\n/**\n * Checks if the node is a text node which starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // true\n *\t\tstartsWithFiller( document.createTextNode( 'foo' ) ); // false\n *\t\tstartsWithFiller( document.createElement( 'p' ) ); // false\n *\n * @param {Node} domNode DOM node.\n * @returns {Boolean} True if the text node starts with the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\n\nexport function startsWithFiller(domNode) {\n  return isText(domNode) && domNode.data.substr(0, INLINE_FILLER_LENGTH) === INLINE_FILLER;\n}\n/**\n * Checks if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n *\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER ) ); // true\n *\t\tisInlineFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ); // false\n *\n * @param {Text} domText DOM text node.\n * @returns {Boolean} True if the text node contains only the {@link module:engine/view/filler~INLINE_FILLER inline filler}.\n */\n\nexport function isInlineFiller(domText) {\n  return domText.data.length == INLINE_FILLER_LENGTH && startsWithFiller(domText);\n}\n/**\n * Get string data from the text node, removing an {@link module:engine/view/filler~INLINE_FILLER inline filler} from it,\n * if text node contains it.\n *\n *\t\tgetDataWithoutFiller( document.createTextNode( INLINE_FILLER + 'foo' ) ) == 'foo' // true\n *\t\tgetDataWithoutFiller( document.createTextNode( 'foo' ) ) == 'foo' // true\n *\n * @param {Text} domText DOM text node, possible with inline filler.\n * @returns {String} Data without filler.\n */\n\nexport function getDataWithoutFiller(domText) {\n  if (startsWithFiller(domText)) {\n    return domText.data.slice(INLINE_FILLER_LENGTH);\n  } else {\n    return domText.data;\n  }\n}\n/**\n * Assign key observer which move cursor from the end of the inline filler to the beginning of it when\n * the left arrow is pressed, so the filler does not break navigation.\n *\n * @param {module:engine/view/view~View} view View controller instance we should inject quirks handling on.\n */\n\nexport function injectQuirksHandling(view) {\n  view.document.on('keydown', jumpOverInlineFiller);\n} // Move cursor from the end of the inline filler to the beginning of it when, so the filler does not break navigation.\n\nfunction jumpOverInlineFiller(evt, data) {\n  if (data.keyCode == keyCodes.arrowleft) {\n    var domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n\n    if (domSelection.rangeCount == 1 && domSelection.getRangeAt(0).collapsed) {\n      var domParent = domSelection.getRangeAt(0).startContainer;\n      var domOffset = domSelection.getRangeAt(0).startOffset;\n\n      if (startsWithFiller(domParent) && domOffset <= INLINE_FILLER_LENGTH) {\n        domSelection.collapse(domParent, 0);\n      }\n    }\n  }\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/matcher\n */\n\n/**\n * View matcher class.\n * Instance of this class can be used to find {@link module:engine/view/element~Element elements} that match given pattern.\n */\nvar Matcher = /*#__PURE__*/function () {\n  /**\n   * Creates new instance of Matcher.\n   *\n   * @param {String|RegExp|Object} [pattern] Match patterns. See {@link module:engine/view/matcher~Matcher#add add method} for\n   * more information.\n   */\n  function Matcher() {\n    _classCallCheck(this, Matcher);\n\n    /**\n     * @private\n     * @type {Array<String|RegExp|Object>}\n     */\n    this._patterns = [];\n    this.add.apply(this, arguments);\n  }\n  /**\n   * Adds pattern or patterns to matcher instance.\n   *\n   *\t\t// String.\n   *\t\tmatcher.add( 'div' );\n   *\n   *\t\t// Regular expression.\n   *\t\tmatcher.add( /^\\w/ );\n   *\n   *\t\t// Single class.\n   *\t\tmatcher.add( {\n   *\t\t\tclasses: 'foobar'\n   *\t\t} );\n   *\n   * See {@link module:engine/view/matcher~MatcherPattern} for more examples.\n   *\n   * Multiple patterns can be added in one call:\n   *\n   * \t\tmatcher.add( 'div', { classes: 'foobar' } );\n   *\n   * @param {Object|String|RegExp|Function} pattern Object describing pattern details. If string or regular expression\n   * is provided it will be used to match element's name. Pattern can be also provided in a form\n   * of a function - then this function will be called with each {@link module:engine/view/element~Element element} as a parameter.\n   * Function's return value will be stored under `match` key of the object returned from\n   * {@link module:engine/view/matcher~Matcher#match match} or {@link module:engine/view/matcher~Matcher#matchAll matchAll} methods.\n   * @param {String|RegExp} [pattern.name] Name or regular expression to match element's name.\n   * @param {Object} [pattern.attributes] Object with key-value pairs representing attributes to match. Each object key\n   * represents attribute name. Value under that key can be either:\n   * * `true` - then attribute is just required (can be empty),\n   * * a string - then attribute has to be equal, or\n   * * a regular expression - then attribute has to match the expression.\n   * @param {String|RegExp|Array} [pattern.classes] Class name or array of class names to match. Each name can be\n   * provided in a form of string or regular expression.\n   * @param {Object} [pattern.styles] Object with key-value pairs representing styles to match. Each object key\n   * represents style name. Value under that key can be either a string or a regular expression and it will be used\n   * to match style value.\n   */\n\n\n  _createClass(Matcher, [{\n    key: \"add\",\n    value: function add() {\n      for (var _len = arguments.length, pattern = new Array(_len), _key = 0; _key < _len; _key++) {\n        pattern[_key] = arguments[_key];\n      }\n\n      for (var _i = 0, _pattern = pattern; _i < _pattern.length; _i++) {\n        var item = _pattern[_i];\n\n        // String or RegExp pattern is used as element's name.\n        if (typeof item == 'string' || item instanceof RegExp) {\n          item = {\n            name: item\n          };\n        } // Single class name/RegExp can be provided.\n\n\n        if (item.classes && (typeof item.classes == 'string' || item.classes instanceof RegExp)) {\n          item.classes = [item.classes];\n        }\n\n        this._patterns.push(item);\n      }\n    }\n    /**\n     * Matches elements for currently stored patterns. Returns match information about first found\n     * {@link module:engine/view/element~Element element}, otherwise returns `null`.\n     *\n     * Example of returned object:\n     *\n     *\t\t{\n     *\t\t\telement: <instance of found element>,\n     *\t\t\tpattern: <pattern used to match found element>,\n     *\t\t\tmatch: {\n     *\t\t\t\tname: true,\n     *\t\t\t\tattributes: [ 'title', 'href' ],\n     *\t\t\t\tclasses: [ 'foo' ],\n     *\t\t\t\tstyles: [ 'color', 'position' ]\n     *\t\t\t}\n     *\t\t}\n     *\n     * @see module:engine/view/matcher~Matcher#add\n     * @see module:engine/view/matcher~Matcher#matchAll\n     * @param {...module:engine/view/element~Element} element View element to match against stored patterns.\n     * @returns {Object|null} result\n     * @returns {module:engine/view/element~Element} result.element Matched view element.\n     * @returns {Object|String|RegExp|Function} result.pattern Pattern that was used to find matched element.\n     * @returns {Object} result.match Object representing matched element parts.\n     * @returns {Boolean} [result.match.name] True if name of the element was matched.\n     * @returns {Array} [result.match.attributes] Array with matched attribute names.\n     * @returns {Array} [result.match.classes] Array with matched class names.\n     * @returns {Array} [result.match.styles] Array with matched style names.\n     */\n\n  }, {\n    key: \"match\",\n    value: function match() {\n      for (var _len2 = arguments.length, element = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n        element[_key2] = arguments[_key2];\n      }\n\n      for (var _i2 = 0, _element = element; _i2 < _element.length; _i2++) {\n        var singleElement = _element[_i2];\n\n        var _iterator = _createForOfIteratorHelper(this._patterns),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var pattern = _step.value;\n            var match = isElementMatching(singleElement, pattern);\n\n            if (match) {\n              return {\n                element: singleElement,\n                pattern: pattern,\n                match: match\n              };\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n\n      return null;\n    }\n    /**\n     * Matches elements for currently stored patterns. Returns array of match information with all found\n     * {@link module:engine/view/element~Element elements}. If no element is found - returns `null`.\n     *\n     * @see module:engine/view/matcher~Matcher#add\n     * @see module:engine/view/matcher~Matcher#match\n     * @param {...module:engine/view/element~Element} element View element to match against stored patterns.\n     * @returns {Array.<Object>|null} Array with match information about found elements or `null`. For more information\n     * see {@link module:engine/view/matcher~Matcher#match match method} description.\n     */\n\n  }, {\n    key: \"matchAll\",\n    value: function matchAll() {\n      var results = [];\n\n      for (var _len3 = arguments.length, element = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n        element[_key3] = arguments[_key3];\n      }\n\n      for (var _i3 = 0, _element2 = element; _i3 < _element2.length; _i3++) {\n        var singleElement = _element2[_i3];\n\n        var _iterator2 = _createForOfIteratorHelper(this._patterns),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var pattern = _step2.value;\n            var match = isElementMatching(singleElement, pattern);\n\n            if (match) {\n              results.push({\n                element: singleElement,\n                pattern: pattern,\n                match: match\n              });\n            }\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      }\n\n      return results.length > 0 ? results : null;\n    }\n    /**\n     * Returns the name of the element to match if there is exactly one pattern added to the matcher instance\n     * and it matches element name defined by `string` (not `RegExp`). Otherwise, returns `null`.\n     *\n     * @returns {String|null} Element name trying to match.\n     */\n\n  }, {\n    key: \"getElementName\",\n    value: function getElementName() {\n      if (this._patterns.length !== 1) {\n        return null;\n      }\n\n      var pattern = this._patterns[0];\n      var name = pattern.name;\n      return typeof pattern != 'function' && name && !(name instanceof RegExp) ? name : null;\n    }\n  }]);\n\n  return Matcher;\n}(); // Returns match information if {@link module:engine/view/element~Element element} is matching provided pattern.\n// If element cannot be matched to provided pattern - returns `null`.\n//\n// @param {module:engine/view/element~Element} element\n// @param {Object|String|RegExp|Function} pattern\n// @returns {Object|null} Returns object with match information or null if element is not matching.\n\n\nexport { Matcher as default };\n\nfunction isElementMatching(element, pattern) {\n  // If pattern is provided as function - return result of that function;\n  if (typeof pattern == 'function') {\n    return pattern(element);\n  }\n\n  var match = {}; // Check element's name.\n\n  if (pattern.name) {\n    match.name = matchName(pattern.name, element.name);\n\n    if (!match.name) {\n      return null;\n    }\n  } // Check element's attributes.\n\n\n  if (pattern.attributes) {\n    match.attributes = matchAttributes(pattern.attributes, element);\n\n    if (!match.attributes) {\n      return null;\n    }\n  } // Check element's classes.\n\n\n  if (pattern.classes) {\n    match.classes = matchClasses(pattern.classes, element);\n\n    if (!match.classes) {\n      return false;\n    }\n  } // Check element's styles.\n\n\n  if (pattern.styles) {\n    match.styles = matchStyles(pattern.styles, element);\n\n    if (!match.styles) {\n      return false;\n    }\n  }\n\n  return match;\n} // Checks if name can be matched by provided pattern.\n//\n// @param {String|RegExp} pattern\n// @param {String} name\n// @returns {Boolean} Returns `true` if name can be matched, `false` otherwise.\n\n\nfunction matchName(pattern, name) {\n  // If pattern is provided as RegExp - test against this regexp.\n  if (pattern instanceof RegExp) {\n    return pattern.test(name);\n  }\n\n  return pattern === name;\n} // Checks if attributes of provided element can be matched against provided patterns.\n//\n// @param {Object} patterns Object with information about attributes to match. Each key of the object will be\n// used as attribute name. Value of each key can be a string or regular expression to match against attribute value.\n// @param {module:engine/view/element~Element} element Element which attributes will be tested.\n// @returns {Array|null} Returns array with matched attribute names or `null` if no attributes were matched.\n\n\nfunction matchAttributes(patterns, element) {\n  var match = [];\n\n  for (var name in patterns) {\n    var pattern = patterns[name];\n\n    if (element.hasAttribute(name)) {\n      var attribute = element.getAttribute(name);\n\n      if (pattern === true) {\n        match.push(name);\n      } else if (pattern instanceof RegExp) {\n        if (pattern.test(attribute)) {\n          match.push(name);\n        } else {\n          return null;\n        }\n      } else if (attribute === pattern) {\n        match.push(name);\n      } else {\n        return null;\n      }\n    } else {\n      return null;\n    }\n  }\n\n  return match;\n} // Checks if classes of provided element can be matched against provided patterns.\n//\n// @param {Array.<String|RegExp>} patterns Array of strings or regular expressions to match against element's classes.\n// @param {module:engine/view/element~Element} element Element which classes will be tested.\n// @returns {Array|null} Returns array with matched class names or `null` if no classes were matched.\n\n\nfunction matchClasses(patterns, element) {\n  var match = [];\n\n  var _iterator3 = _createForOfIteratorHelper(patterns),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var pattern = _step3.value;\n\n      if (pattern instanceof RegExp) {\n        var classes = element.getClassNames();\n\n        var _iterator4 = _createForOfIteratorHelper(classes),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var name = _step4.value;\n\n            if (pattern.test(name)) {\n              match.push(name);\n            }\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n\n        if (match.length === 0) {\n          return null;\n        }\n      } else if (element.hasClass(pattern)) {\n        match.push(pattern);\n      } else {\n        return null;\n      }\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  return match;\n} // Checks if styles of provided element can be matched against provided patterns.\n//\n// @param {Object} patterns Object with information about styles to match. Each key of the object will be\n// used as style name. Value of each key can be a string or regular expression to match against style value.\n// @param {module:engine/view/element~Element} element Element which styles will be tested.\n// @returns {Array|null} Returns array with matched style names or `null` if no styles were matched.\n\n\nfunction matchStyles(patterns, element) {\n  var match = [];\n\n  for (var name in patterns) {\n    var pattern = patterns[name];\n\n    if (element.hasStyle(name)) {\n      var style = element.getStyle(name);\n\n      if (pattern instanceof RegExp) {\n        if (pattern.test(style)) {\n          match.push(name);\n        } else {\n          return null;\n        }\n      } else if (style === pattern) {\n        match.push(name);\n      } else {\n        return null;\n      }\n    } else {\n      return null;\n    }\n  }\n\n  return match;\n}\n/**\n * An entity that is a valid pattern recognized by a matcher. `MatcherPattern` is used by {@link ~Matcher} to recognize\n * if a view element fits in a group of view elements described by the pattern.\n *\n * `MatcherPattern` can be given as a `String`, a `RegExp`, an `Object` or a `Function`.\n *\n * If `MatcherPattern` is given as a `String` or `RegExp`, it will match any view element that has a matching name:\n *\n *\t\t// Match any element with name equal to 'div'.\n *\t\tconst pattern = 'div';\n *\n *\t\t// Match any element which name starts on 'p'.\n *\t\tconst pattern = /^p/;\n *\n * If `MatcherPattern` is given as an `Object`, all the object's properties will be matched with view element properties.\n *\n *\t\t// Match view element's name.\n *\t\tconst pattern = { name: /^p/ };\n *\n *\t\t// Match view element which has matching attributes.\n *\t\tconst pattern = {\n *\t\t\tattributes: {\n *\t\t\t\ttitle: 'foobar',\t// Attribute title should equal 'foobar'.\n *\t\t\t\tfoo: /^\\w+/,\t\t// Attribute foo should match /^\\w+/ regexp.\n *\t\t\t\tbar: true\t\t\t// Attribute bar should be set (can be empty).\n *\t\t\t}\n *\t\t};\n *\n *\t\t// Match view element which has given class.\n *\t\tconst pattern = {\n *\t\t\tclasses: 'foobar'\n *\t\t};\n *\n *\t\t// Match view element class using regular expression.\n *\t\tconst pattern = {\n *\t\t\tclasses: /foo.../\n *\t\t};\n *\n *\t\t// Multiple classes to match.\n *\t\tconst pattern = {\n *\t\t\tclasses: [ 'baz', 'bar', /foo.../ ]\n *\t\t};\n *\n *\t\t// Match view element which has given styles.\n *\t\tconst pattern = {\n *\t\t\tstyles: {\n *\t\t\t\tposition: 'absolute',\n *\t\t\t\tcolor: /^\\w*blue$/\n *\t\t\t}\n *\t\t};\n *\n *\t\t// Pattern with multiple properties.\n *\t\tconst pattern = {\n *\t\t\tname: 'span',\n *\t\t\tstyles: {\n *\t\t\t\t'font-weight': 'bold'\n *\t\t\t},\n *\t\t\tclasses: 'highlighted'\n *\t\t};\n *\n * If `MatcherPattern` is given as a `Function`, the function takes a view element as a first and only parameter and\n * the function should decide whether that element matches. If so, it should return what part of the view element has been matched.\n * Otherwise, the function should return `null`. The returned result will be included in `match` property of the object\n * returned by {@link ~Matcher#match} call.\n *\n *\t\t// Match an empty <div> element.\n *\t\tconst pattern = element => {\n *\t\t\tif ( element.name == 'div' && element.childCount > 0 ) {\n *\t\t\t\t// Return which part of the element was matched.\n *\t\t\t\treturn { name: true };\n *\t\t\t}\n *\n *\t\t\treturn null;\n *\t\t};\n *\n *\t\t// Match a <p> element with big font (\"heading-like\" element).\n *\t\tconst pattern = element => {\n *\t\t\tif ( element.name == 'p' ) {\n *\t\t\t\tconst fontSize = element.getStyle( 'font-size' );\n *\t\t\t\tconst size = fontSize.match( /(\\d+)/px );\n *\n *\t\t\t\tif ( size && Number( size[ 1 ] ) > 26 ) {\n *\t\t\t\t\treturn { name: true, attribute: [ 'font-size' ] };\n *\t\t\t\t}\n *\t\t\t}\n *\n *\t\t\treturn null;\n *\t\t};\n *\n * `MatcherPattern` is defined in a way that it is a superset of {@link module:engine/view/elementdefinition~ElementDefinition},\n * that is, every `ElementDefinition` also can be used as a `MatcherPattern`.\n *\n * @typedef {String|RegExp|Object|Function} module:engine/view/matcher~MatcherPattern\n *\n * @property {String|RegExp} [name] View element name to match.\n * @property {String|RegExp|Array.<String|RegExp>} [classes] View element's class name(s) to match.\n * @property {Object} [styles] Object with key-value pairs representing styles to match.\n * Each object key represents style name. Value can be given as `String` or `RegExp`.\n * @property {Object} [attributes] Object with key-value pairs representing attributes to match.\n * Each object key represents attribute name. Value can be given as `String` or `RegExp`.\n */","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/node\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nimport { clone } from 'lodash-es'; // To check if component is loaded more than once.\n\nimport '@ckeditor/ckeditor5-utils/src/version';\n/**\n * Abstract tree view node class.\n *\n * This is an abstract class. Its constructor should not be used directly.\n * Use the {@link module:engine/view/element~Element} class to create view elements\n * or {@link module:engine/view/text~Text} class to create view text nodes.\n *\n * @abstract\n */\n\nvar Node = /*#__PURE__*/function () {\n  /**\n   * Creates a tree view node.\n   */\n  function Node() {\n    _classCallCheck(this, Node);\n\n    /**\n     * Parent element. Null by default. Set by {@link module:engine/view/element~Element#_insertChild}.\n     *\n     * @readonly\n     * @member {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment|null}\n     */\n    this.parent = null;\n  }\n  /**\n   * Index of the node in the parent element or null if the node has no parent.\n   *\n   * Accessing this property throws an error if this node's parent element does not contain it.\n   * This means that view tree got broken.\n   *\n   * @readonly\n   * @type {Number|null}\n   */\n\n\n  _createClass(Node, [{\n    key: \"getPath\",\n\n    /**\n     * Gets a path to the node. The path is an array containing indices of consecutive ancestors of this node,\n     * beginning from {@link module:engine/view/node~Node#root root}, down to this node's index.\n     *\n     *\t\tconst abc = downcastWriter.createText( 'abc' );\n     *\t\tconst foo = downcastWriter.createText( 'foo' );\n     *\t\tconst h1 = downcastWriter.createElement( 'h1', null, downcastWriter.createText( 'header' ) );\n     *\t\tconst p = downcastWriter.createElement( 'p', null, [ abc, foo ] );\n     *\t\tconst div = downcastWriter.createElement( 'div', null, [ h1, p ] );\n     *\t\tfoo.getPath(); // Returns [ 1, 3 ]. `foo` is in `p` which is in `div`. `p` starts at offset 1, while `foo` at 3.\n     *\t\th1.getPath(); // Returns [ 0 ].\n     *\t\tdiv.getPath(); // Returns [].\n     *\n     * @returns {Array.<Number>} The path.\n     */\n    value: function getPath() {\n      var path = [];\n      var node = this; // eslint-disable-line consistent-this\n\n      while (node.parent) {\n        path.unshift(node.index);\n        node = node.parent;\n      }\n\n      return path;\n    }\n    /**\n     * Returns ancestors array of this node.\n     *\n     * @param {Object} options Options object.\n     * @param {Boolean} [options.includeSelf=false] When set to `true` this node will be also included in parent's array.\n     * @param {Boolean} [options.parentFirst=false] When set to `true`, array will be sorted from node's parent to root element,\n     * otherwise root element will be the first item in the array.\n     * @returns {Array} Array with ancestors.\n     */\n\n  }, {\n    key: \"getAncestors\",\n    value: function getAncestors() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n        includeSelf: false,\n        parentFirst: false\n      };\n      var ancestors = [];\n      var parent = options.includeSelf ? this : this.parent;\n\n      while (parent) {\n        ancestors[options.parentFirst ? 'push' : 'unshift'](parent);\n        parent = parent.parent;\n      }\n\n      return ancestors;\n    }\n    /**\n     * Returns a {@link module:engine/view/element~Element} or {@link module:engine/view/documentfragment~DocumentFragment}\n     * which is a common ancestor of both nodes.\n     *\n     * @param {module:engine/view/node~Node} node The second node.\n     * @param {Object} options Options object.\n     * @param {Boolean} [options.includeSelf=false] When set to `true` both nodes will be considered \"ancestors\" too.\n     * Which means that if e.g. node A is inside B, then their common ancestor will be B.\n     * @returns {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"getCommonAncestor\",\n    value: function getCommonAncestor(node) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var ancestorsA = this.getAncestors(options);\n      var ancestorsB = node.getAncestors(options);\n      var i = 0;\n\n      while (ancestorsA[i] == ancestorsB[i] && ancestorsA[i]) {\n        i++;\n      }\n\n      return i === 0 ? null : ancestorsA[i - 1];\n    }\n    /**\n     * Returns whether this node is before given node. `false` is returned if nodes are in different trees (for example,\n     * in different {@link module:engine/view/documentfragment~DocumentFragment}s).\n     *\n     * @param {module:engine/view/node~Node} node Node to compare with.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isBefore\",\n    value: function isBefore(node) {\n      // Given node is not before this node if they are same.\n      if (this == node) {\n        return false;\n      } // Return `false` if it is impossible to compare nodes.\n\n\n      if (this.root !== node.root) {\n        return false;\n      }\n\n      var thisPath = this.getPath();\n      var nodePath = node.getPath();\n      var result = compareArrays(thisPath, nodePath);\n\n      switch (result) {\n        case 'prefix':\n          return true;\n\n        case 'extension':\n          return false;\n\n        default:\n          return thisPath[result] < nodePath[result];\n      }\n    }\n    /**\n     * Returns whether this node is after given node. `false` is returned if nodes are in different trees (for example,\n     * in different {@link module:engine/view/documentfragment~DocumentFragment}s).\n     *\n     * @param {module:engine/view/node~Node} node Node to compare with.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isAfter\",\n    value: function isAfter(node) {\n      // Given node is not before this node if they are same.\n      if (this == node) {\n        return false;\n      } // Return `false` if it is impossible to compare nodes.\n\n\n      if (this.root !== node.root) {\n        return false;\n      } // In other cases, just check if the `node` is before, and return the opposite.\n\n\n      return !this.isBefore(node);\n    }\n    /**\n     * Removes node from parent.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_remove\",\n    value: function _remove() {\n      this.parent._removeChildren(this.index);\n    }\n    /**\n     * @protected\n     * @param {module:engine/view/document~ChangeType} type Type of the change.\n     * @param {module:engine/view/node~Node} node Changed node.\n     * @fires change\n     */\n\n  }, {\n    key: \"_fireChange\",\n    value: function _fireChange(type, node) {\n      this.fire('change:' + type, node);\n\n      if (this.parent) {\n        this.parent._fireChange(type, node);\n      }\n    }\n    /**\n     * Custom toJSON method to solve child-parent circular dependencies.\n     *\n     * @returns {Object} Clone of this object with the parent property removed.\n     */\n\n  }, {\n    key: \"toJSON\",\n    value: function toJSON() {\n      var json = clone(this); // Due to circular references we need to remove parent reference.\n\n      delete json.parent;\n      return json;\n    }\n    /**\n     * Checks whether this object is of the given type.\n     *\n     * This method is useful when processing view objects that are of unknown type. For example, a function\n     * may return a {@link module:engine/view/documentfragment~DocumentFragment} or a {@link module:engine/view/node~Node}\n     * that can be either a text node or an element. This method can be used to check what kind of object is returned.\n     *\n     *\t\tsomeObject.is( 'element' ); // -> true if this is an element\n     *\t\tsomeObject.is( 'node' ); // -> true if this is a node (a text node or an element)\n     *\t\tsomeObject.is( 'documentFragment' ); // -> true if this is a document fragment\n     *\n     * Since this method is also available on a range of model objects, you can prefix the type of the object with\n     * `model:` or `view:` to check, for example, if this is the model's or view's element:\n     *\n     *\t\tviewElement.is( 'view:element' ); // -> true\n     *\t\tviewElement.is( 'model:element' ); // -> false\n     *\n     * By using this method it is also possible to check a name of an element:\n     *\n     *\t\timgElement.is( 'img' ); // -> true\n     *\t\timgElement.is( 'element', 'img' ); // -> same as above\n     *\t\timgElement.is( 'view:element', 'img' ); // -> same as above, but more precise\n     *\n     * The list of view objects which implement the `is()` method:\n     *\n     * * {@link module:engine/view/attributeelement~AttributeElement#is `AttributeElement#is()`}\n     * * {@link module:engine/view/containerelement~ContainerElement#is `ContainerElement#is()`}\n     * * {@link module:engine/view/documentfragment~DocumentFragment#is `DocumentFragment#is()`}\n     * * {@link module:engine/view/documentselection~DocumentSelection#is `DocumentSelection#is()`}\n     * * {@link module:engine/view/editableelement~EditableElement#is `EditableElement#is()`}\n     * * {@link module:engine/view/element~Element#is `Element#is()`}\n     * * {@link module:engine/view/emptyelement~EmptyElement#is `EmptyElement#is()`}\n     * * {@link module:engine/view/node~Node#is `Node#is()`}\n     * * {@link module:engine/view/position~Position#is `Position#is()`}\n     * * {@link module:engine/view/range~Range#is `Range#is()`}\n     * * {@link module:engine/view/rooteditableelement~RootEditableElement#is `RootEditableElement#is()`}\n     * * {@link module:engine/view/selection~Selection#is `Selection#is()`}\n     * * {@link module:engine/view/text~Text#is `Text#is()`}\n     * * {@link module:engine/view/textproxy~TextProxy#is `TextProxy#is()`}\n     * * {@link module:engine/view/uielement~UIElement#is `UIElement#is()`}\n     *\n     * @method #is\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'node' || type == 'view:node';\n    }\n    /**\n     * Clones this node.\n     *\n     * @protected\n     * @method #_clone\n     * @returns {module:engine/view/node~Node} Clone of this node.\n     */\n\n    /**\n     * Checks if provided node is similar to this node.\n     *\n     * @method #isSimilar\n     * @returns {Boolean} True if nodes are similar.\n     */\n\n  }, {\n    key: \"index\",\n    get: function get() {\n      var pos;\n\n      if (!this.parent) {\n        return null;\n      } // No parent or child doesn't exist in parent's children.\n\n\n      if ((pos = this.parent.getChildIndex(this)) == -1) {\n        /**\n         * The node's parent does not contain this node. It means that the document tree is corrupted.\n         *\n         * @error view-node-not-found-in-parent\n         */\n        throw new CKEditorError('view-node-not-found-in-parent: The node\\'s parent does not contain this node.', this);\n      }\n\n      return pos;\n    }\n    /**\n     * Node's next sibling, or `null` if it is the last child.\n     *\n     * @readonly\n     * @type {module:engine/view/node~Node|null}\n     */\n\n  }, {\n    key: \"nextSibling\",\n    get: function get() {\n      var index = this.index;\n      return index !== null && this.parent.getChild(index + 1) || null;\n    }\n    /**\n     * Node's previous sibling, or `null` if it is the first child.\n     *\n     * @readonly\n     * @type {module:engine/view/node~Node|null}\n     */\n\n  }, {\n    key: \"previousSibling\",\n    get: function get() {\n      var index = this.index;\n      return index !== null && this.parent.getChild(index - 1) || null;\n    }\n    /**\n     * Top-most ancestor of the node. If the node has no parent it is the root itself.\n     *\n     * @readonly\n     * @type {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      var root = this; // eslint-disable-line consistent-this\n\n      while (root.parent) {\n        root = root.parent;\n      }\n\n      return root;\n    }\n    /**\n     * {@link module:engine/view/document~Document View document} that owns this node, or `null` if the node is inside\n     * {@link module:engine/view/documentfragment~DocumentFragment document fragment}.\n     *\n     * @readonly\n     * @type {module:engine/view/document~Document|null}\n     */\n\n  }, {\n    key: \"document\",\n    get: function get() {\n      // Parent might be Node, null or DocumentFragment.\n      if (this.parent instanceof Node) {\n        return this.parent.document;\n      } else {\n        return null;\n      }\n    }\n  }]);\n\n  return Node;\n}();\n/**\n * Fired when list of {@link module:engine/view/element~Element elements} children changes.\n *\n * Change event is bubbled – it is fired on all ancestors.\n *\n * @event change:children\n * @param {module:engine/view/node~Node} changedNode\n */\n\n/**\n * Fired when list of {@link module:engine/view/element~Element elements} attributes changes.\n *\n * Change event is bubbled – it is fired on all ancestors.\n *\n * @event change:attributes\n * @param {module:engine/view/node~Node} changedNode\n */\n\n/**\n * Fired when {@link module:engine/view/text~Text text nodes} data changes.\n *\n * Change event is bubbled – it is fired on all ancestors.\n *\n * @event change:text\n * @param {module:engine/view/node~Node} changedNode\n */\n\n/**\n * @event change\n */\n\n\nexport { Node as default };\nmix(Node, EmitterMixin);","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/clickobserver\n */\nimport DomEventObserver from \"./domeventobserver\";\n/**\n * {@link module:engine/view/document~Document#event:click Click} event observer.\n *\n * Note that this observer is not available by default. To make it available it needs to be added to\n * {@link module:engine/view/view~View view controller}\n * by a {@link module:engine/view/view~View#addObserver} method.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\n\nvar ClickObserver = /*#__PURE__*/function (_DomEventObserver) {\n  _inherits(ClickObserver, _DomEventObserver);\n\n  var _super = _createSuper(ClickObserver);\n\n  function ClickObserver(view) {\n    var _this;\n\n    _classCallCheck(this, ClickObserver);\n\n    _this = _super.call(this, view);\n    _this.domEventType = 'click';\n    return _this;\n  }\n\n  _createClass(ClickObserver, [{\n    key: \"onDomEvent\",\n    value: function onDomEvent(domEvent) {\n      this.fire(domEvent.type, domEvent);\n    }\n  }]);\n\n  return ClickObserver;\n}(DomEventObserver);\n/**\n * Fired when one of the editables has been clicked.\n *\n * Introduced by {@link module:engine/view/observer/clickobserver~ClickObserver}.\n *\n * Note that this event is not available by default. To make it available\n * {@link module:engine/view/observer/clickobserver~ClickObserver} needs to be added\n * to {@link module:engine/view/view~View} by a {@link module:engine/view/view~View#addObserver} method.\n *\n * @see module:engine/view/observer/clickobserver~ClickObserver\n * @event module:engine/view/document~Document#event:click\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n\nexport { ClickObserver as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/compositionobserver\n */\nimport DomEventObserver from \"./domeventobserver\";\n/**\n * {@link module:engine/view/document~Document#event:compositionstart Compositionstart},\n * {@link module:engine/view/document~Document#event:compositionupdate compositionupdate} and\n * {@link module:engine/view/document~Document#event:compositionend compositionend} events observer.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\n\nvar CompositionObserver = /*#__PURE__*/function (_DomEventObserver) {\n  _inherits(CompositionObserver, _DomEventObserver);\n\n  var _super = _createSuper(CompositionObserver);\n\n  function CompositionObserver(view) {\n    var _this;\n\n    _classCallCheck(this, CompositionObserver);\n\n    _this = _super.call(this, view);\n    _this.domEventType = ['compositionstart', 'compositionupdate', 'compositionend'];\n    var document = _this.document;\n    document.on('compositionstart', function () {\n      document.isComposing = true;\n    });\n    document.on('compositionend', function () {\n      document.isComposing = false;\n    });\n    return _this;\n  }\n\n  _createClass(CompositionObserver, [{\n    key: \"onDomEvent\",\n    value: function onDomEvent(domEvent) {\n      this.fire(domEvent.type, domEvent);\n    }\n  }]);\n\n  return CompositionObserver;\n}(DomEventObserver);\n/**\n * Fired when composition starts inside one of the editables.\n *\n * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n *\n * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/compositionobserver~CompositionObserver\n * @event module:engine/view/document~Document#event:compositionstart\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n/**\n * Fired when composition is updated inside one of the editables.\n *\n * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n *\n * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/compositionobserver~CompositionObserver\n * @event module:engine/view/document~Document#event:compositionupdate\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n/**\n * Fired when composition ends inside one of the editables.\n *\n * Introduced by {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n *\n * Note that because {@link module:engine/view/observer/compositionobserver~CompositionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/compositionobserver~CompositionObserver\n * @event module:engine/view/document~Document#event:compositionend\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n\nexport { CompositionObserver as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/domeventdata\n */\nimport { extend } from 'lodash-es';\n/**\n * Information about a DOM event in context of the {@link module:engine/view/document~Document}.\n * It wraps the native event, which usually should not be used as the wrapper contains\n * additional data (like key code for keyboard events).\n */\n\nvar DomEventData = /*#__PURE__*/function () {\n  /**\n   * @param {module:engine/view/view~View} view The instance of the view controller.\n   * @param {Event} domEvent The DOM event.\n   * @param {Object} [additionalData] Additional properties that the instance should contain.\n   */\n  function DomEventData(view, domEvent, additionalData) {\n    _classCallCheck(this, DomEventData);\n\n    /**\n     * Instance of the view controller.\n     *\n     * @readonly\n     * @member {module:engine/view/view~View} module:engine/view/observer/observer~Observer.DomEvent#view\n     */\n    this.view = view;\n    /**\n     * The instance of the document.\n     *\n     * @readonly\n     * @member {module:engine/view/document~Document} module:engine/view/observer/observer~Observer.DomEvent#document\n     */\n\n    this.document = view.document;\n    /**\n     * The DOM event.\n     *\n     * @readonly\n     * @member {Event} module:engine/view/observer/observer~Observer.DomEvent#domEvent\n     */\n\n    this.domEvent = domEvent;\n    /**\n     * The DOM target.\n     *\n     * @readonly\n     * @member {HTMLElement} module:engine/view/observer/observer~Observer.DomEvent#target\n     */\n\n    this.domTarget = domEvent.target;\n    extend(this, additionalData);\n  }\n  /**\n   * The tree view element representing the target.\n   *\n   * @readonly\n   * @type module:engine/view/element~Element\n   */\n\n\n  _createClass(DomEventData, [{\n    key: \"preventDefault\",\n\n    /**\n     * Prevents the native's event default action.\n     */\n    value: function preventDefault() {\n      this.domEvent.preventDefault();\n    }\n    /**\n     * Stops native event propagation.\n     */\n\n  }, {\n    key: \"stopPropagation\",\n    value: function stopPropagation() {\n      this.domEvent.stopPropagation();\n    }\n  }, {\n    key: \"target\",\n    get: function get() {\n      return this.view.domConverter.mapDomToView(this.domTarget);\n    }\n  }]);\n\n  return DomEventData;\n}();\n\nexport { DomEventData as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/domeventobserver\n */\nimport Observer from \"./observer\";\nimport DomEventData from \"./domeventdata\";\n/**\n * Base class for DOM event observers. This class handles\n * {@link module:engine/view/observer/observer~Observer#observe adding} listeners to DOM elements,\n * {@link module:engine/view/observer/observer~Observer#disable disabling} and\n * {@link module:engine/view/observer/observer~Observer#enable re-enabling} events.\n * Child class needs to define\n * {@link module:engine/view/observer/domeventobserver~DomEventObserver#domEventType DOM event type} and\n * {@link module:engine/view/observer/domeventobserver~DomEventObserver#onDomEvent callback}.\n *\n * For instance:\n *\n *\t\tclass ClickObserver extends DomEventObserver {\n *\t\t\t// It can also be defined as a normal property in the constructor.\n *\t\t\tget domEventType() {\n *\t\t\t\treturn 'click';\n *\t\t\t}\n *\n *\t\t\tonDomEvent( domEvent ) {\n *\t\t\t\tthis.fire( 'click', domEvent );\n *\t\t\t}\n *\t\t}\n *\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar DomEventObserver = /*#__PURE__*/function (_Observer) {\n  _inherits(DomEventObserver, _Observer);\n\n  var _super = _createSuper(DomEventObserver);\n\n  /**\n   * Type of the DOM event the observer should listen on. Array of types can be defined\n   * if the obsever should listen to multiple DOM events.\n   *\n   * @readonly\n   * @member {String|Array.<String>} #domEventType\n   */\n\n  /**\n   * Callback which should be called when the DOM event occurred. Note that the callback will not be called if\n   * observer {@link #isEnabled is not enabled}.\n   *\n   * @see #domEventType\n   * @abstract\n   * @method #onDomEvent\n   */\n\n  /**\n   * @inheritDoc\n   */\n  function DomEventObserver(view) {\n    var _this;\n\n    _classCallCheck(this, DomEventObserver);\n\n    _this = _super.call(this, view);\n    /**\n     * If set to `true` DOM events will be listened on the capturing phase.\n     * Default value is `false`.\n     *\n     * @member {Boolean}\n     */\n\n    _this.useCapture = false;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(DomEventObserver, [{\n    key: \"observe\",\n    value: function observe(domElement) {\n      var _this2 = this;\n\n      var types = typeof this.domEventType == 'string' ? [this.domEventType] : this.domEventType;\n      types.forEach(function (type) {\n        _this2.listenTo(domElement, type, function (eventInfo, domEvent) {\n          if (_this2.isEnabled) {\n            _this2.onDomEvent(domEvent);\n          }\n        }, {\n          useCapture: _this2.useCapture\n        });\n      });\n    }\n    /**\n     * Calls `Document#fire()` if observer {@link #isEnabled is enabled}.\n     *\n     * @see module:utils/emittermixin~EmitterMixin#fire\n     * @param {String} eventType The event type (name).\n     * @param {Event} domEvent The DOM event.\n     * @param {Object} [additionalData] The additional data which should extend the\n     * {@link module:engine/view/observer/domeventdata~DomEventData event data} object.\n     */\n\n  }, {\n    key: \"fire\",\n    value: function fire(eventType, domEvent, additionalData) {\n      if (this.isEnabled) {\n        this.document.fire(eventType, new DomEventData(this.view, domEvent, additionalData));\n      }\n    }\n  }]);\n\n  return DomEventObserver;\n}(Observer);\n\nexport { DomEventObserver as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/fakeselectionobserver\n */\nimport Observer from \"./observer\";\nimport ViewSelection from \"../selection\";\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport { debounce } from 'lodash-es';\n/**\n * Fake selection observer class. If view selection is fake it is placed in dummy DOM container. This observer listens\n * on {@link module:engine/view/document~Document#event:keydown keydown} events and handles moving fake view selection to the correct place\n * if arrow keys are pressed.\n * Fires {@link module:engine/view/document~Document#event:selectionChange selectionChange event} simulating natural behaviour of\n * {@link module:engine/view/observer/selectionobserver~SelectionObserver SelectionObserver}.\n *\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar FakeSelectionObserver = /*#__PURE__*/function (_Observer) {\n  _inherits(FakeSelectionObserver, _Observer);\n\n  var _super = _createSuper(FakeSelectionObserver);\n\n  /**\n   * Creates new FakeSelectionObserver instance.\n   *\n   * @param {module:engine/view/view~View} view\n   */\n  function FakeSelectionObserver(view) {\n    var _this;\n\n    _classCallCheck(this, FakeSelectionObserver);\n\n    _this = _super.call(this, view);\n    /**\n     * Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call.\n     *\n     * @private\n     * @param {Object} data Selection change data.\n     * @method #_fireSelectionChangeDoneDebounced\n     */\n\n    _this._fireSelectionChangeDoneDebounced = debounce(function (data) {\n      return _this.document.fire('selectionChangeDone', data);\n    }, 200);\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(FakeSelectionObserver, [{\n    key: \"observe\",\n    value: function observe() {\n      var _this2 = this;\n\n      var document = this.document;\n      document.on('keydown', function (eventInfo, data) {\n        var selection = document.selection;\n\n        if (selection.isFake && _isArrowKeyCode(data.keyCode) && _this2.isEnabled) {\n          // Prevents default key down handling - no selection change will occur.\n          data.preventDefault();\n\n          _this2._handleSelectionMove(data.keyCode);\n        }\n      }, {\n        priority: 'lowest'\n      });\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      _get(_getPrototypeOf(FakeSelectionObserver.prototype), \"destroy\", this).call(this);\n\n      this._fireSelectionChangeDoneDebounced.cancel();\n    }\n    /**\n     * Handles collapsing view selection according to given key code. If left or up key is provided - new selection will be\n     * collapsed to left. If right or down key is pressed - new selection will be collapsed to right.\n     *\n     * This method fires {@link module:engine/view/document~Document#event:selectionChange} and\n     * {@link module:engine/view/document~Document#event:selectionChangeDone} events imitating behaviour of\n     * {@link module:engine/view/observer/selectionobserver~SelectionObserver}.\n     *\n     * @private\n     * @param {Number} keyCode\n     * @fires module:engine/view/document~Document#event:selectionChange\n     * @fires module:engine/view/document~Document#event:selectionChangeDone\n     */\n\n  }, {\n    key: \"_handleSelectionMove\",\n    value: function _handleSelectionMove(keyCode) {\n      var selection = this.document.selection;\n      var newSelection = new ViewSelection(selection.getRanges(), {\n        backward: selection.isBackward,\n        fake: false\n      }); // Left or up arrow pressed - move selection to start.\n\n      if (keyCode == keyCodes.arrowleft || keyCode == keyCodes.arrowup) {\n        newSelection.setTo(newSelection.getFirstPosition());\n      } // Right or down arrow pressed - move selection to end.\n\n\n      if (keyCode == keyCodes.arrowright || keyCode == keyCodes.arrowdown) {\n        newSelection.setTo(newSelection.getLastPosition());\n      }\n\n      var data = {\n        oldSelection: selection,\n        newSelection: newSelection,\n        domSelection: null\n      }; // Fire dummy selection change event.\n\n      this.document.fire('selectionChange', data); // Call` #_fireSelectionChangeDoneDebounced` every time when `selectionChange` event is fired.\n      // This function is debounced what means that `selectionChangeDone` event will be fired only when\n      // defined int the function time will elapse since the last time the function was called.\n      // So `selectionChangeDone` will be fired when selection will stop changing.\n\n      this._fireSelectionChangeDoneDebounced(data);\n    }\n  }]);\n\n  return FakeSelectionObserver;\n}(Observer); // Checks if one of the arrow keys is pressed.\n//\n// @private\n// @param {Number} keyCode\n// @returns {Boolean}\n\n\nexport { FakeSelectionObserver as default };\n\nfunction _isArrowKeyCode(keyCode) {\n  return keyCode == keyCodes.arrowright || keyCode == keyCodes.arrowleft || keyCode == keyCodes.arrowup || keyCode == keyCodes.arrowdown;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/focusobserver\n */\n\n/* globals setTimeout, clearTimeout */\nimport DomEventObserver from \"./domeventobserver\";\n/**\n * {@link module:engine/view/document~Document#event:focus Focus}\n * and {@link module:engine/view/document~Document#event:blur blur} events observer.\n * Focus observer handle also {@link module:engine/view/rooteditableelement~RootEditableElement#isFocused isFocused} property of the\n * {@link module:engine/view/rooteditableelement~RootEditableElement root elements}.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\n\nvar FocusObserver = /*#__PURE__*/function (_DomEventObserver) {\n  _inherits(FocusObserver, _DomEventObserver);\n\n  var _super = _createSuper(FocusObserver);\n\n  function FocusObserver(view) {\n    var _this;\n\n    _classCallCheck(this, FocusObserver);\n\n    _this = _super.call(this, view);\n    _this.domEventType = ['focus', 'blur'];\n    _this.useCapture = true;\n    var document = _this.document;\n    document.on('focus', function () {\n      document.isFocused = true; // Unfortunately native `selectionchange` event is fired asynchronously.\n      // We need to wait until `SelectionObserver` handle the event and then render. Otherwise rendering will\n      // overwrite new DOM selection with selection from the view.\n      // See https://github.com/ckeditor/ckeditor5-engine/issues/795 for more details.\n      // Long timeout is needed to solve #676 and https://github.com/ckeditor/ckeditor5-engine/issues/1157 issues.\n\n      _this._renderTimeoutId = setTimeout(function () {\n        return view.forceRender();\n      }, 50);\n    });\n    document.on('blur', function (evt, data) {\n      var selectedEditable = document.selection.editableElement;\n\n      if (selectedEditable === null || selectedEditable === data.target) {\n        document.isFocused = false; // Re-render the document to update view elements.\n\n        view.forceRender();\n      }\n    });\n    /**\n     * Identifier of the timeout currently used by focus listener to delay rendering execution.\n     *\n     * @private\n     * @member {Number} #_renderTimeoutId\n     */\n\n    return _this;\n  }\n\n  _createClass(FocusObserver, [{\n    key: \"onDomEvent\",\n    value: function onDomEvent(domEvent) {\n      this.fire(domEvent.type, domEvent);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      if (this._renderTimeoutId) {\n        clearTimeout(this._renderTimeoutId);\n      }\n\n      _get(_getPrototypeOf(FocusObserver.prototype), \"destroy\", this).call(this);\n    }\n  }]);\n\n  return FocusObserver;\n}(DomEventObserver);\n/**\n * Fired when one of the editables gets focus.\n *\n * Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.\n *\n * Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/focusobserver~FocusObserver\n * @event module:engine/view/document~Document#event:focus\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n/**\n * Fired when one of the editables loses focus.\n *\n * Introduced by {@link module:engine/view/observer/focusobserver~FocusObserver}.\n *\n * Note that because {@link module:engine/view/observer/focusobserver~FocusObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/focusobserver~FocusObserver\n * @event module:engine/view/document~Document#event:blur\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n\nexport { FocusObserver as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2018, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module engine/view/observer/inputobserver\n */\nimport DomEventObserver from \"./domeventobserver\";\n/**\n * Observer for events connected with data input.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\n\nvar InputObserver = /*#__PURE__*/function (_DomEventObserver) {\n  _inherits(InputObserver, _DomEventObserver);\n\n  var _super = _createSuper(InputObserver);\n\n  function InputObserver(view) {\n    var _this;\n\n    _classCallCheck(this, InputObserver);\n\n    _this = _super.call(this, view);\n    _this.domEventType = ['beforeinput'];\n    return _this;\n  }\n\n  _createClass(InputObserver, [{\n    key: \"onDomEvent\",\n    value: function onDomEvent(domEvent) {\n      this.fire(domEvent.type, domEvent);\n    }\n  }]);\n\n  return InputObserver;\n}(DomEventObserver);\n/**\n * Fired before browser inputs (or deletes) some data.\n *\n * This event is available only on browsers which support DOM `beforeinput` event.\n *\n * Introduced by {@link module:engine/view/observer/inputobserver~InputObserver}.\n *\n * Note that because {@link module:engine/view/observer/inputobserver~InputObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/inputobserver~InputObserver\n * @event module:engine/view/document~Document#event:beforeinput\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n\nexport { InputObserver as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/keyobserver\n */\nimport DomEventObserver from \"./domeventobserver\";\nimport { getCode } from '@ckeditor/ckeditor5-utils/src/keyboard';\n/**\n * Observer for events connected with pressing keyboard keys.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\n\nvar KeyObserver = /*#__PURE__*/function (_DomEventObserver) {\n  _inherits(KeyObserver, _DomEventObserver);\n\n  var _super = _createSuper(KeyObserver);\n\n  function KeyObserver(view) {\n    var _this;\n\n    _classCallCheck(this, KeyObserver);\n\n    _this = _super.call(this, view);\n    _this.domEventType = ['keydown', 'keyup'];\n    return _this;\n  }\n\n  _createClass(KeyObserver, [{\n    key: \"onDomEvent\",\n    value: function onDomEvent(domEvt) {\n      this.fire(domEvt.type, domEvt, {\n        keyCode: domEvt.keyCode,\n        altKey: domEvt.altKey,\n        ctrlKey: domEvt.ctrlKey || domEvt.metaKey,\n        shiftKey: domEvt.shiftKey,\n\n        get keystroke() {\n          return getCode(this);\n        }\n\n      });\n    }\n  }]);\n\n  return KeyObserver;\n}(DomEventObserver);\n/**\n * Fired when a key has been pressed.\n *\n * Introduced by {@link module:engine/view/observer/keyobserver~KeyObserver}.\n *\n * Note that because {@link module:engine/view/observer/keyobserver~KeyObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/keyobserver~KeyObserver\n * @event module:engine/view/document~Document#event:keydown\n * @param {module:engine/view/observer/keyobserver~KeyEventData} keyEventData\n */\n\n/**\n * Fired when a key has been released.\n *\n * Introduced by {@link module:engine/view/observer/keyobserver~KeyObserver}.\n *\n * Note that because {@link module:engine/view/observer/keyobserver~KeyObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/keyobserver~KeyObserver\n * @event module:engine/view/document~Document#event:keyup\n * @param {module:engine/view/observer/keyobserver~KeyEventData} keyEventData\n */\n\n/**\n * The value of both events - {@link module:engine/view/document~Document#event:keydown} and\n * {@link module:engine/view/document~Document#event:keyup}.\n *\n * @class module:engine/view/observer/keyobserver~KeyEventData\n * @extends module:engine/view/observer/domeventdata~DomEventData\n * @implements module:utils/keyboard~KeystrokeInfo\n */\n\n/**\n * Code of the whole keystroke. See {@link module:utils/keyboard~getCode}.\n *\n * @readonly\n * @member {Number} module:engine/view/observer/keyobserver~KeyEventData#keystroke\n */\n\n\nexport { KeyObserver as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/mouseobserver\n */\nimport DomEventObserver from \"./domeventobserver\";\n/**\n * Mouse events observer.\n *\n * Note that this observer is not available by default. To make it available it needs to be added to\n * {@link module:engine/view/view~View} by {@link module:engine/view/view~View#addObserver} method.\n *\n * @extends module:engine/view/observer/domeventobserver~DomEventObserver\n */\n\nvar MouseObserver = /*#__PURE__*/function (_DomEventObserver) {\n  _inherits(MouseObserver, _DomEventObserver);\n\n  var _super = _createSuper(MouseObserver);\n\n  function MouseObserver(view) {\n    var _this;\n\n    _classCallCheck(this, MouseObserver);\n\n    _this = _super.call(this, view);\n    _this.domEventType = 'mousedown';\n    return _this;\n  }\n\n  _createClass(MouseObserver, [{\n    key: \"onDomEvent\",\n    value: function onDomEvent(domEvent) {\n      this.fire(domEvent.type, domEvent);\n    }\n  }]);\n\n  return MouseObserver;\n}(DomEventObserver);\n/**\n * Fired when mouse button is pressed down on one of the editables.\n *\n * Introduced by {@link module:engine/view/observer/mouseobserver~MouseObserver}.\n *\n * Note that this event is not available by default. To make it available {@link module:engine/view/observer/mouseobserver~MouseObserver}\n * needs to be added to {@link module:engine/view/view~View} by a {@link module:engine/view/view~View#addObserver} method.\n *\n * @see module:engine/view/observer/mouseobserver~MouseObserver\n * @event module:engine/view/document~Document#event:mousedown\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n\nexport { MouseObserver as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/mutationobserver\n */\n\n/* globals window */\nimport Observer from \"./observer\";\nimport ViewSelection from \"../selection\";\nimport { startsWithFiller, getDataWithoutFiller } from \"../filler\";\nimport { isEqualWith } from 'lodash-es';\n/**\n * Mutation observer class observes changes in the DOM, fires {@link module:engine/view/document~Document#event:mutations} event, mark view\n * elements as changed and call {@link module:engine/view/renderer~Renderer#render}.\n * Because all mutated nodes are marked as \"to be rendered\" and the\n * {@link module:engine/view/renderer~Renderer#render} is called, all changes will be reverted, unless the mutation will be handled by the\n * {@link module:engine/view/document~Document#event:mutations} event listener. It means user will see only handled changes, and the editor\n * will block all changes which are not handled.\n *\n * Mutation Observer also take care of reducing number of mutations which are fired. It removes duplicates and\n * mutations on elements which do not have corresponding view elements. Also\n * {@link module:engine/view/observer/mutationobserver~MutatedText text mutation} is fired only if parent element do not change child list.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar MutationObserver = /*#__PURE__*/function (_Observer) {\n  _inherits(MutationObserver, _Observer);\n\n  var _super = _createSuper(MutationObserver);\n\n  function MutationObserver(view) {\n    var _this;\n\n    _classCallCheck(this, MutationObserver);\n\n    _this = _super.call(this, view);\n    /**\n     * Native mutation observer config.\n     *\n     * @private\n     * @member {Object}\n     */\n\n    _this._config = {\n      childList: true,\n      characterData: true,\n      characterDataOldValue: true,\n      subtree: true\n    };\n    /**\n     * Reference to the {@link module:engine/view/view~View#domConverter}.\n     *\n     * @member {module:engine/view/domconverter~DomConverter}\n     */\n\n    _this.domConverter = view.domConverter;\n    /**\n     * Reference to the {@link module:engine/view/view~View#_renderer}.\n     *\n     * @member {module:engine/view/renderer~Renderer}\n     */\n\n    _this.renderer = view._renderer;\n    /**\n     * Observed DOM elements.\n     *\n     * @private\n     * @member {Array.<HTMLElement>}\n     */\n\n    _this._domElements = [];\n    /**\n     * Native mutation observer.\n     *\n     * @private\n     * @member {MutationObserver}\n     */\n\n    _this._mutationObserver = new window.MutationObserver(_this._onMutations.bind(_assertThisInitialized(_this)));\n    return _this;\n  }\n  /**\n   * Synchronously fires {@link module:engine/view/document~Document#event:mutations} event with all mutations in record queue.\n   * At the same time empties the queue so mutations will not be fired twice.\n   */\n\n\n  _createClass(MutationObserver, [{\n    key: \"flush\",\n    value: function flush() {\n      this._onMutations(this._mutationObserver.takeRecords());\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"observe\",\n    value: function observe(domElement) {\n      this._domElements.push(domElement);\n\n      if (this.isEnabled) {\n        this._mutationObserver.observe(domElement, this._config);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"enable\",\n    value: function enable() {\n      _get(_getPrototypeOf(MutationObserver.prototype), \"enable\", this).call(this);\n\n      var _iterator = _createForOfIteratorHelper(this._domElements),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var domElement = _step.value;\n\n          this._mutationObserver.observe(domElement, this._config);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      _get(_getPrototypeOf(MutationObserver.prototype), \"disable\", this).call(this);\n\n      this._mutationObserver.disconnect();\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      _get(_getPrototypeOf(MutationObserver.prototype), \"destroy\", this).call(this);\n\n      this._mutationObserver.disconnect();\n    }\n    /**\n     * Handles mutations. Deduplicates, mark view elements to sync, fire event and call render.\n     *\n     * @private\n     * @param {Array.<Object>} domMutations Array of native mutations.\n     */\n\n  }, {\n    key: \"_onMutations\",\n    value: function _onMutations(domMutations) {\n      // As a result of this.flush() we can have an empty collection.\n      if (domMutations.length === 0) {\n        return;\n      }\n\n      var domConverter = this.domConverter; // Use map and set for deduplication.\n\n      var mutatedTexts = new Map();\n      var mutatedElements = new Set(); // Handle `childList` mutations first, so we will be able to check if the `characterData` mutation is in the\n      // element with changed structure anyway.\n\n      var _iterator2 = _createForOfIteratorHelper(domMutations),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var mutation = _step2.value;\n\n          if (mutation.type === 'childList') {\n            var element = domConverter.mapDomToView(mutation.target); // Do not collect mutations from UIElements.\n\n            if (element && element.is('uiElement')) {\n              continue;\n            }\n\n            if (element && !this._isBogusBrMutation(mutation)) {\n              mutatedElements.add(element);\n            }\n          }\n        } // Handle `characterData` mutations later, when we have the full list of nodes which changed structure.\n\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var _iterator3 = _createForOfIteratorHelper(domMutations),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var _mutation = _step3.value;\n\n          var _element = domConverter.mapDomToView(_mutation.target); // Do not collect mutations from UIElements.\n\n\n          if (_element && _element.is('uiElement')) {\n            continue;\n          }\n\n          if (_mutation.type === 'characterData') {\n            var text = domConverter.findCorrespondingViewText(_mutation.target);\n\n            if (text && !mutatedElements.has(text.parent)) {\n              // Use text as a key, for deduplication. If there will be another mutation on the same text element\n              // we will have only one in the map.\n              mutatedTexts.set(text, {\n                type: 'text',\n                oldText: text.data,\n                newText: getDataWithoutFiller(_mutation.target),\n                node: text\n              });\n            } // When we added first letter to the text node which had only inline filler, for the DOM it is mutation\n            // on text, but for the view, where filler text node did not existed, new text node was created, so we\n            // need to fire 'children' mutation instead of 'text'.\n            else if (!text && startsWithFiller(_mutation.target)) {\n                mutatedElements.add(domConverter.mapDomToView(_mutation.target.parentNode));\n              }\n          }\n        } // Now we build the list of mutations to fire and mark elements. We did not do it earlier to avoid marking the\n        // same node multiple times in case of duplication.\n        // List of mutations we will fire.\n\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      var viewMutations = [];\n\n      var _iterator4 = _createForOfIteratorHelper(mutatedTexts.values()),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var mutatedText = _step4.value;\n          this.renderer.markToSync('text', mutatedText.node);\n          viewMutations.push(mutatedText);\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      var _iterator5 = _createForOfIteratorHelper(mutatedElements),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var viewElement = _step5.value;\n          var domElement = domConverter.mapViewToDom(viewElement);\n          var viewChildren = Array.from(viewElement.getChildren());\n          var newViewChildren = Array.from(domConverter.domChildrenToView(domElement, {\n            withChildren: false\n          })); // It may happen that as a result of many changes (sth was inserted and then removed),\n          // both elements haven't really changed. #1031\n\n          if (!isEqualWith(viewChildren, newViewChildren, sameNodes)) {\n            this.renderer.markToSync('children', viewElement);\n            viewMutations.push({\n              type: 'children',\n              oldChildren: viewChildren,\n              newChildren: newViewChildren,\n              node: viewElement\n            });\n          }\n        } // Retrieve `domSelection` using `ownerDocument` of one of mutated nodes.\n        // There should not be simultaneous mutation in multiple documents, so it's fine.\n\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      var domSelection = domMutations[0].target.ownerDocument.getSelection();\n      var viewSelection = null;\n\n      if (domSelection && domSelection.anchorNode) {\n        // If `domSelection` is inside a dom node that is already bound to a view node from view tree, get\n        // corresponding selection in the view and pass it together with `viewMutations`. The `viewSelection` may\n        // be used by features handling mutations.\n        // Only one range is supported.\n        var viewSelectionAnchor = domConverter.domPositionToView(domSelection.anchorNode, domSelection.anchorOffset);\n        var viewSelectionFocus = domConverter.domPositionToView(domSelection.focusNode, domSelection.focusOffset); // Anchor and focus has to be properly mapped to view.\n\n        if (viewSelectionAnchor && viewSelectionFocus) {\n          viewSelection = new ViewSelection(viewSelectionAnchor);\n          viewSelection.setFocus(viewSelectionFocus);\n        }\n      }\n\n      this.document.fire('mutations', viewMutations, viewSelection); // If nothing changes on `mutations` event, at this point we have \"dirty DOM\" (changed) and de-synched\n      // view (which has not been changed). In order to \"reset DOM\" we render the view again.\n\n      this.view.forceRender();\n\n      function sameNodes(child1, child2) {\n        // First level of comparison (array of children vs array of children) – use the Lodash's default behavior.\n        if (Array.isArray(child1)) {\n          return;\n        } // Elements.\n\n\n        if (child1 === child2) {\n          return true;\n        } // Texts.\n        else if (child1.is('text') && child2.is('text')) {\n            return child1.data === child2.data;\n          } // Not matching types.\n\n\n        return false;\n      }\n    }\n    /**\n     * Checks if mutation was generated by the browser inserting bogus br on the end of the block element.\n     * Such mutations are generated while pressing space or performing native spellchecker correction\n     * on the end of the block element in Firefox browser.\n     *\n     * @private\n     * @param {Object} mutation Native mutation object.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_isBogusBrMutation\",\n    value: function _isBogusBrMutation(mutation) {\n      var addedNode = null; // Check if mutation added only one node on the end of its parent.\n\n      if (mutation.nextSibling === null && mutation.removedNodes.length === 0 && mutation.addedNodes.length == 1) {\n        addedNode = this.domConverter.domToView(mutation.addedNodes[0], {\n          withChildren: false\n        });\n      }\n\n      return addedNode && addedNode.is('element', 'br');\n    }\n  }]);\n\n  return MutationObserver;\n}(Observer);\n/**\n * Fired when mutation occurred. If tree view is not changed on this event, DOM will be reverted to the state before\n * mutation, so all changes which should be applied, should be handled on this event.\n *\n * Introduced by {@link module:engine/view/observer/mutationobserver~MutationObserver}.\n *\n * Note that because {@link module:engine/view/observer/mutationobserver~MutationObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/mutationobserver~MutationObserver\n * @event module:engine/view/document~Document#event:mutations\n * @param {Array.<module:engine/view/observer/mutationobserver~MutatedText|module:engine/view/observer/mutationobserver~MutatedChildren>}\n * viewMutations Array of mutations.\n * For mutated texts it will be {@link module:engine/view/observer/mutationobserver~MutatedText} and for mutated elements it will be\n * {@link module:engine/view/observer/mutationobserver~MutatedChildren}. You can recognize the type based on the `type` property.\n * @param {module:engine/view/selection~Selection|null} viewSelection View selection that is a result of converting DOM selection to view.\n * Keep in\n * mind that the DOM selection is already \"updated\", meaning that it already acknowledges changes done in mutation.\n */\n\n/**\n * Mutation item for text.\n *\n * @see module:engine/view/document~Document#event:mutations\n * @see module:engine/view/observer/mutationobserver~MutatedChildren\n *\n * @typedef {Object} module:engine/view/observer/mutationobserver~MutatedText\n *\n * @property {String} type For text mutations it is always 'text'.\n * @property {module:engine/view/text~Text} node Mutated text node.\n * @property {String} oldText Old text.\n * @property {String} newText New text.\n */\n\n/**\n * Mutation item for child nodes.\n *\n * @see module:engine/view/document~Document#event:mutations\n * @see module:engine/view/observer/mutationobserver~MutatedText\n *\n * @typedef {Object} module:engine/view/observer/mutationobserver~MutatedChildren\n *\n * @property {String} type For child nodes mutations it is always 'children'.\n * @property {module:engine/view/element~Element} node Parent of the mutated children.\n * @property {Array.<module:engine/view/node~Node>} oldChildren Old child nodes.\n * @property {Array.<module:engine/view/node~Node>} newChildren New child nodes.\n */\n\n\nexport { MutationObserver as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/observer\n */\nimport DomEmitterMixin from '@ckeditor/ckeditor5-utils/src/dom/emittermixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * Abstract base observer class. Observers are classes which listen to DOM events, do the preliminary\n * processing and fire events on the {@link module:engine/view/document~Document} objects.\n * Observers can also add features to the view, for instance by updating its status or marking elements\n * which need refresh on DOM events.\n *\n * @abstract\n */\n\nvar Observer = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the observer.\n   *\n   * @param {module:engine/view/view~View} view\n   */\n  function Observer(view) {\n    _classCallCheck(this, Observer);\n\n    /**\n     * Instance of the view controller.\n     *\n     * @readonly\n     * @member {module:engine/view/view~View}\n     */\n    this.view = view;\n    /**\n     * Reference to the {@link module:engine/view/document~Document} object.\n     *\n     * @readonly\n     * @member {module:engine/view/document~Document}\n     */\n\n    this.document = view.document;\n    /**\n     * State of the observer. If it is disabled events will not be fired.\n     *\n     * @readonly\n     * @member {Boolean}\n     */\n\n    this.isEnabled = false;\n  }\n  /**\n   * Enables the observer. This method is called when the observer is registered to the\n   * {@link module:engine/view/view~View} and after {@link module:engine/view/view~View#forceRender rendering}\n   * (all observers are {@link #disable disabled} before rendering).\n   *\n   * A typical use case for disabling observers is that mutation observers need to be disabled for the rendering.\n   * However, a child class may not need to be disabled, so it can implement an empty method.\n   *\n   * @see module:engine/view/observer/observer~Observer#disable\n   */\n\n\n  _createClass(Observer, [{\n    key: \"enable\",\n    value: function enable() {\n      this.isEnabled = true;\n    }\n    /**\n     * Disables the observer. This method is called before\n     * {@link module:engine/view/view~View#forceRender rendering} to prevent firing events during rendering.\n     *\n     * @see module:engine/view/observer/observer~Observer#enable\n     */\n\n  }, {\n    key: \"disable\",\n    value: function disable() {\n      this.isEnabled = false;\n    }\n    /**\n     * Disables and destroys the observer, among others removes event listeners created by the observer.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.disable();\n      this.stopListening();\n    }\n    /**\n     * Starts observing the given root element.\n     *\n     * @method #observe\n     * @param {HTMLElement} domElement\n     * @param {String} name The name of the root element.\n     */\n\n  }]);\n\n  return Observer;\n}();\n\nexport { Observer as default };\nmix(Observer, DomEmitterMixin);","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.weak-set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/observer/selectionobserver\n */\n\n/* global setInterval, clearInterval */\nimport Observer from \"./observer\";\nimport MutationObserver from \"./mutationobserver\";\nimport { debounce } from 'lodash-es';\n/**\n * Selection observer class observes selection changes in the document. If selection changes on the document this\n * observer checks if there are any mutations and if DOM selection is different than the\n * {@link module:engine/view/document~Document#selection view selection}. Selection observer fires\n * {@link module:engine/view/document~Document#event:selectionChange} event only if selection change was the only change in the document\n * and DOM selection is different then the view selection.\n *\n * Note that this observer is attached by the {@link module:engine/view/view~View} and is available by default.\n *\n * @see module:engine/view/observer/mutationobserver~MutationObserver\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar SelectionObserver = /*#__PURE__*/function (_Observer) {\n  _inherits(SelectionObserver, _Observer);\n\n  var _super = _createSuper(SelectionObserver);\n\n  function SelectionObserver(view) {\n    var _this;\n\n    _classCallCheck(this, SelectionObserver);\n\n    _this = _super.call(this, view);\n    /**\n     * Instance of the mutation observer. Selection observer calls\n     * {@link module:engine/view/observer/mutationobserver~MutationObserver#flush} to ensure that the mutations will be handled\n     * before the {@link module:engine/view/document~Document#event:selectionChange} event is fired.\n     *\n     * @readonly\n     * @member {module:engine/view/observer/mutationobserver~MutationObserver}\n     * module:engine/view/observer/selectionobserver~SelectionObserver#mutationObserver\n     */\n\n    _this.mutationObserver = view.getObserver(MutationObserver);\n    /**\n     * Reference to the view {@link module:engine/view/documentselection~DocumentSelection} object used to compare\n     * new selection with it.\n     *\n     * @readonly\n     * @member {module:engine/view/documentselection~DocumentSelection}\n     * module:engine/view/observer/selectionobserver~SelectionObserver#selection\n     */\n\n    _this.selection = _this.document.selection;\n    /* eslint-disable max-len */\n\n    /**\n     * Reference to the {@link module:engine/view/view~View#domConverter}.\n     *\n     * @readonly\n     * @member {module:engine/view/domconverter~DomConverter} module:engine/view/observer/selectionobserver~SelectionObserver#domConverter\n     */\n\n    /* eslint-enable max-len */\n\n    _this.domConverter = view.domConverter;\n    /**\n     * Set of documents which have added \"selectionchange\" listener to avoid adding listener twice to the same\n     * document.\n     *\n     * @private\n     * @member {WeakSet.<Document>} module:engine/view/observer/selectionobserver~SelectionObserver#_documents\n     */\n\n    _this._documents = new WeakSet();\n    /**\n     * Fires debounced event `selectionChangeDone`. It uses `lodash#debounce` method to delay function call.\n     *\n     * @private\n     * @param {Object} data Selection change data.\n     * @method #_fireSelectionChangeDoneDebounced\n     */\n\n    _this._fireSelectionChangeDoneDebounced = debounce(function (data) {\n      return _this.document.fire('selectionChangeDone', data);\n    }, 200);\n    _this._clearInfiniteLoopInterval = setInterval(function () {\n      return _this._clearInfiniteLoop();\n    }, 1000);\n    /**\n     * Private property to check if the code does not enter infinite loop.\n     *\n     * @private\n     * @member {Number} module:engine/view/observer/selectionobserver~SelectionObserver#_loopbackCounter\n     */\n\n    _this._loopbackCounter = 0;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(SelectionObserver, [{\n    key: \"observe\",\n    value: function observe(domElement) {\n      var _this2 = this;\n\n      var domDocument = domElement.ownerDocument; // Add listener once per each document.\n\n      if (this._documents.has(domDocument)) {\n        return;\n      }\n\n      this.listenTo(domDocument, 'selectionchange', function () {\n        _this2._handleSelectionChange(domDocument);\n      });\n\n      this._documents.add(domDocument);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      _get(_getPrototypeOf(SelectionObserver.prototype), \"destroy\", this).call(this);\n\n      clearInterval(this._clearInfiniteLoopInterval);\n\n      this._fireSelectionChangeDoneDebounced.cancel();\n    }\n    /**\n     * Selection change listener. {@link module:engine/view/observer/mutationobserver~MutationObserver#flush Flush} mutations, check if\n     * selection changes and fires {@link module:engine/view/document~Document#event:selectionChange} event on every change\n     * and {@link module:engine/view/document~Document#event:selectionChangeDone} when selection stop changing.\n     *\n     * @private\n     * @param {Document} domDocument DOM document.\n     */\n\n  }, {\n    key: \"_handleSelectionChange\",\n    value: function _handleSelectionChange(domDocument) {\n      // Selection is handled when document is not focused but is read-only. This is because in read-only\n      // mode contenteditable is set as false and editor won't receive focus but we still need to know\n      // selection position.\n      if (!this.isEnabled || !this.document.isFocused && !this.document.isReadOnly) {\n        return;\n      } // Ensure the mutation event will be before selection event on all browsers.\n\n\n      this.mutationObserver.flush(); // If there were mutations then the view will be re-rendered by the mutation observer and selection\n      // will be updated, so selections will equal and event will not be fired, as expected.\n\n      var domSelection = domDocument.defaultView.getSelection();\n      var newViewSelection = this.domConverter.domSelectionToView(domSelection);\n\n      if (this.selection.isEqual(newViewSelection) && this.domConverter.isDomSelectionCorrect(domSelection)) {\n        return;\n      } // Ensure we are not in the infinite loop (#400).\n      // This counter is reset each second. 60 selection changes in 1 second is enough high number\n      // to be very difficult (impossible) to achieve using just keyboard keys (during normal editor use).\n\n\n      if (++this._loopbackCounter > 60) {\n        // Selection change observer detected an infinite rendering loop.\n        // Most probably you try to put the selection in the position which is not allowed\n        // by the browser and browser fixes it automatically what causes `selectionchange` event on\n        // which a loopback through a model tries to re-render the wrong selection and again.\n        //\n        // @if CK_DEBUG // console.warn( 'Selection change observer detected an infinite rendering loop.' );\n        return;\n      }\n\n      if (this.selection.isSimilar(newViewSelection)) {\n        // If selection was equal and we are at this point of algorithm, it means that it was incorrect.\n        // Just re-render it, no need to fire any events, etc.\n        this.view.forceRender();\n      } else {\n        var data = {\n          oldSelection: this.selection,\n          newSelection: newViewSelection,\n          domSelection: domSelection\n        }; // Prepare data for new selection and fire appropriate events.\n\n        this.document.fire('selectionChange', data); // Call` #_fireSelectionChangeDoneDebounced` every time when `selectionChange` event is fired.\n        // This function is debounced what means that `selectionChangeDone` event will be fired only when\n        // defined int the function time will elapse since the last time the function was called.\n        // So `selectionChangeDone` will be fired when selection will stop changing.\n\n        this._fireSelectionChangeDoneDebounced(data);\n      }\n    }\n    /**\n     * Clears `SelectionObserver` internal properties connected with preventing infinite loop.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_clearInfiniteLoop\",\n    value: function _clearInfiniteLoop() {\n      this._loopbackCounter = 0;\n    }\n  }]);\n\n  return SelectionObserver;\n}(Observer);\n/**\n * Fired when selection has changed. This event is fired only when the selection change was the only change that happened\n * in the document, and old selection is different then the new selection.\n *\n * Introduced by {@link module:engine/view/observer/selectionobserver~SelectionObserver}.\n *\n * Note that because {@link module:engine/view/observer/selectionobserver~SelectionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/selectionobserver~SelectionObserver\n * @event module:engine/view/document~Document#event:selectionChange\n * @param {Object} data\n * @param {module:engine/view/documentselection~DocumentSelection} data.oldSelection Old View selection which is\n * {@link module:engine/view/document~Document#selection}.\n * @param {module:engine/view/selection~Selection} data.newSelection New View selection which is converted DOM selection.\n * @param {Selection} data.domSelection Native DOM selection.\n */\n\n/**\n * Fired when selection stops changing.\n *\n * Introduced by {@link module:engine/view/observer/selectionobserver~SelectionObserver}.\n *\n * Note that because {@link module:engine/view/observer/selectionobserver~SelectionObserver} is attached by the\n * {@link module:engine/view/view~View} this event is available by default.\n *\n * @see module:engine/view/observer/selectionobserver~SelectionObserver\n * @event module:engine/view/document~Document#event:selectionChangeDone\n * @param {Object} data\n * @param {module:engine/view/documentselection~DocumentSelection} data.oldSelection Old View selection which is\n * {@link module:engine/view/document~Document#selection}.\n * @param {module:engine/view/selection~Selection} data.newSelection New View selection which is converted DOM selection.\n * @param {Selection} data.domSelection Native DOM selection.\n */\n\n\nexport { SelectionObserver as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/es6.string.anchor\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.weak-map\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/placeholder\n */\nimport \"../../theme/placeholder.css\"; // Each document stores information about its placeholder elements and check functions.\n\nvar documentPlaceholders = new WeakMap();\n/**\n * A helper that enables a placeholder on the provided view element (also updates its visibility).\n * The placeholder is a CSS pseudo–element (with a text content) attached to the element.\n *\n * To change the placeholder text, simply call this method again with new options.\n *\n * To disable the placeholder, use {@link module:engine/view/placeholder~disablePlaceholder `disablePlaceholder()`} helper.\n *\n * @param {Object} [options] Configuration options of the placeholder.\n * @param {module:engine/view/view~View} options.view Editing view instance.\n * @param {module:engine/view/element~Element} options.element Element that will gain a placeholder.\n * See `options.isDirectHost` to learn more.\n * @param {String} options.text Placeholder text.\n * @param {Boolean} [options.isDirectHost=true] If set `false`, the placeholder will not be enabled directly\n * in the passed `element` but in one of its children (selected automatically, i.e. a first empty child element).\n * Useful when attaching placeholders to elements that can host other elements (not just text), for instance,\n * editable root elements.\n */\n\nexport function enablePlaceholder(options) {\n  var view = options.view,\n      element = options.element,\n      text = options.text,\n      _options$isDirectHost = options.isDirectHost,\n      isDirectHost = _options$isDirectHost === void 0 ? true : _options$isDirectHost;\n  var doc = view.document; // Use a single a single post fixer per—document to update all placeholders.\n\n  if (!documentPlaceholders.has(doc)) {\n    documentPlaceholders.set(doc, new Map()); // If a post-fixer callback makes a change, it should return `true` so other post–fixers\n    // can re–evaluate the document again.\n\n    doc.registerPostFixer(function (writer) {\n      return updateDocumentPlaceholders(doc, writer);\n    });\n  } // Store information about the element placeholder under its document.\n\n\n  documentPlaceholders.get(doc).set(element, {\n    text: text,\n    isDirectHost: isDirectHost\n  }); // Update the placeholders right away.\n\n  view.change(function (writer) {\n    return updateDocumentPlaceholders(doc, writer);\n  });\n}\n/**\n * Disables the placeholder functionality from a given element.\n *\n * See {@link module:engine/view/placeholder~enablePlaceholder `enablePlaceholder()`} to learn more.\n *\n * @param {module:engine/view/view~View} view\n * @param {module:engine/view/element~Element} element\n */\n\nexport function disablePlaceholder(view, element) {\n  var doc = element.document;\n  view.change(function (writer) {\n    if (!documentPlaceholders.has(doc)) {\n      return;\n    }\n\n    var placeholders = documentPlaceholders.get(doc);\n    var config = placeholders.get(element);\n    writer.removeAttribute('data-placeholder', config.hostElement);\n    hidePlaceholder(writer, config.hostElement);\n    placeholders.delete(element);\n  });\n}\n/**\n * Shows a placeholder in the provided element by changing related attributes and CSS classes.\n *\n * **Note**: This helper will not update the placeholder visibility nor manage the\n * it in any way in the future. What it does is a one–time state change of an element. Use\n * {@link module:engine/view/placeholder~enablePlaceholder `enablePlaceholder()`} and\n * {@link module:engine/view/placeholder~disablePlaceholder `disablePlaceholder()`} for full\n * placeholder functionality.\n *\n * **Note**: This helper will blindly show the placeholder directly in the root editable element if\n * one is passed, which could result in a visual clash if the editable element has some children\n * (for instance, an empty paragraph). Use {@link module:engine/view/placeholder~enablePlaceholder `enablePlaceholder()`}\n * in that case or make sure the correct element is passed to the helper.\n *\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer\n * @param {module:engine/view/element~Element} element\n * @returns {Boolean} `true`, if any changes were made to the `element`.\n */\n\nexport function showPlaceholder(writer, element) {\n  if (!element.hasClass('ck-placeholder')) {\n    writer.addClass('ck-placeholder', element);\n    return true;\n  }\n\n  return false;\n}\n/**\n * Hides a placeholder in the element by changing related attributes and CSS classes.\n *\n * **Note**: This helper will not update the placeholder visibility nor manage the\n * it in any way in the future. What it does is a one–time state change of an element. Use\n * {@link module:engine/view/placeholder~enablePlaceholder `enablePlaceholder()`} and\n * {@link module:engine/view/placeholder~disablePlaceholder `disablePlaceholder()`} for full\n * placeholder functionality.\n *\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer\n * @param {module:engine/view/element~Element} element\n * @returns {Boolean} `true`, if any changes were made to the `element`.\n */\n\nexport function hidePlaceholder(writer, element) {\n  if (element.hasClass('ck-placeholder')) {\n    writer.removeClass('ck-placeholder', element);\n    return true;\n  }\n\n  return false;\n}\n/**\n * Checks if a placeholder should be displayed in the element.\n *\n * **Note**: This helper will blindly check the possibility of showing a placeholder directly in the\n * root editable element if one is passed, which may not be the expected result. If an element can\n * host other elements (not just text), most likely one of its children should be checked instead\n * because it will be the final host for the placeholder. Use\n * {@link module:engine/view/placeholder~enablePlaceholder `enablePlaceholder()`} in that case or make\n * sure the correct element is passed to the helper.\n *\n * @param {module:engine/view/element~Element} element\n * @returns {Boolean}\n */\n\nexport function needsPlaceholder(element) {\n  var doc = element.document; // The element was removed from document.\n\n  if (!doc) {\n    return false;\n  } // The element is empty only as long as it contains nothing but uiElements.\n\n\n  var isEmptyish = !Array.from(element.getChildren()).some(function (element) {\n    return !element.is('uiElement');\n  }); // If the element is empty and the document is blurred.\n\n  if (!doc.isFocused && isEmptyish) {\n    return true;\n  }\n\n  var viewSelection = doc.selection;\n  var selectionAnchor = viewSelection.anchor; // If document is focused and the element is empty but the selection is not anchored inside it.\n\n  if (isEmptyish && selectionAnchor && selectionAnchor.parent !== element) {\n    return true;\n  }\n\n  return false;\n} // Updates all placeholders associated with a document in a post–fixer callback.\n//\n// @private\n// @param { module:engine/view/document~Document} doc\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @returns {Boolean} True if any changes were made to the view document.\n\nfunction updateDocumentPlaceholders(doc, writer) {\n  var placeholders = documentPlaceholders.get(doc);\n  var wasViewModified = false;\n\n  var _iterator = _createForOfIteratorHelper(placeholders),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var _step$value = _slicedToArray(_step.value, 2),\n          element = _step$value[0],\n          config = _step$value[1];\n\n      if (updatePlaceholder(writer, element, config)) {\n        wasViewModified = true;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return wasViewModified;\n} // Updates a single placeholder in a post–fixer callback.\n//\n// @private\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {module:engine/view/element~Element} element\n// @param {Object} config Configuration of the placeholder\n// @param {String} config.text\n// @param {Boolean} config.isDirectHost\n// @returns {Boolean} True if any changes were made to the view document.\n\n\nfunction updatePlaceholder(writer, element, config) {\n  var text = config.text,\n      isDirectHost = config.isDirectHost;\n  var hostElement = isDirectHost ? element : getChildPlaceholderHostSubstitute(element);\n  var wasViewModified = false; // When not a direct host, it could happen that there is no child element\n  // capable of displaying a placeholder.\n\n  if (!hostElement) {\n    return false;\n  } // Cache the host element. It will be necessary for disablePlaceholder() to know\n  // which element should have class and attribute removed because, depending on\n  // the config.isDirectHost value, it could be the element or one of its descendants.\n\n\n  config.hostElement = hostElement; // This may be necessary when updating the placeholder text to something else.\n\n  if (hostElement.getAttribute('data-placeholder') !== text) {\n    writer.setAttribute('data-placeholder', text, hostElement);\n    wasViewModified = true;\n  }\n\n  if (needsPlaceholder(hostElement)) {\n    if (showPlaceholder(writer, hostElement)) {\n      wasViewModified = true;\n    }\n  } else if (hidePlaceholder(writer, hostElement)) {\n    wasViewModified = true;\n  }\n\n  return wasViewModified;\n} // Gets a child element capable of displaying a placeholder if a parent element can host more\n// than just text (for instance, when it is a root editable element). The child element\n// can then be used in other placeholder helpers as a substitute of its parent.\n//\n// @private\n// @param {module:engine/view/element~Element} parent\n// @returns {module:engine/view/element~Element|null}\n\n\nfunction getChildPlaceholderHostSubstitute(parent) {\n  if (parent.childCount === 1) {\n    var firstChild = parent.getChild(0);\n\n    if (firstChild.is('element') && !firstChild.is('uiElement')) {\n      return firstChild;\n    }\n  }\n\n  return null;\n}","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/position\n */\nimport TreeWalker from \"./treewalker\";\nimport compareArrays from '@ckeditor/ckeditor5-utils/src/comparearrays';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport EditableElement from \"./editableelement\"; // To check if component is loaded more than once.\n\nimport '@ckeditor/ckeditor5-utils/src/version';\n/**\n * Position in the view tree. Position is represented by its parent node and an offset in this parent.\n *\n * In order to create a new position instance use the `createPosition*()` factory methods available in:\n *\n * * {@link module:engine/view/view~View}\n * * {@link module:engine/view/downcastwriter~DowncastWriter}\n * * {@link module:engine/view/upcastwriter~UpcastWriter}\n */\n\nvar Position = /*#__PURE__*/function () {\n  /**\n   * Creates a position.\n   *\n   * @param {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment} parent Position parent.\n   * @param {Number} offset Position offset.\n   */\n  function Position(parent, offset) {\n    _classCallCheck(this, Position);\n\n    /**\n     * Position parent.\n     *\n     * @readonly\n     * @member {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment}\n     * module:engine/view/position~Position#parent\n     */\n    this.parent = parent;\n    /**\n     * Position offset.\n     *\n     * @readonly\n     * @member {Number} module:engine/view/position~Position#offset\n     */\n\n    this.offset = offset;\n  }\n  /**\n   * Node directly after the position. Equals `null` when there is no node after position or position is located\n   * inside text node.\n   *\n   * @readonly\n   * @type {module:engine/view/node~Node|null}\n   */\n\n\n  _createClass(Position, [{\n    key: \"getShiftedBy\",\n\n    /**\n     * Returns a new instance of Position with offset incremented by `shift` value.\n     *\n     * @param {Number} shift How position offset should get changed. Accepts negative values.\n     * @returns {module:engine/view/position~Position} Shifted position.\n     */\n    value: function getShiftedBy(shift) {\n      var shifted = Position._createAt(this);\n\n      var offset = shifted.offset + shift;\n      shifted.offset = offset < 0 ? 0 : offset;\n      return shifted;\n    }\n    /**\n     * Gets the farthest position which matches the callback using\n     * {@link module:engine/view/treewalker~TreeWalker TreeWalker}.\n     *\n     * For example:\n     *\n     * \t\tgetLastMatchingPosition( value => value.type == 'text' ); // <p>{}foo</p> -> <p>foo[]</p>\n     * \t\tgetLastMatchingPosition( value => value.type == 'text', { direction: 'backward' } ); // <p>foo[]</p> -> <p>{}foo</p>\n     * \t\tgetLastMatchingPosition( value => false ); // Do not move the position.\n     *\n     * @param {Function} skip Callback function. Gets {@link module:engine/view/treewalker~TreeWalkerValue} and should\n     * return `true` if the value should be skipped or `false` if not.\n     * @param {Object} options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.\n     *\n     * @returns {module:engine/view/position~Position} The position after the last item which matches the `skip` callback test.\n     */\n\n  }, {\n    key: \"getLastMatchingPosition\",\n    value: function getLastMatchingPosition(skip) {\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      options.startPosition = this;\n      var treeWalker = new TreeWalker(options);\n      treeWalker.skip(skip);\n      return treeWalker.position;\n    }\n    /**\n     * Returns ancestors array of this position, that is this position's parent and it's ancestors.\n     *\n     * @returns {Array} Array with ancestors.\n     */\n\n  }, {\n    key: \"getAncestors\",\n    value: function getAncestors() {\n      if (this.parent.is('documentFragment')) {\n        return [this.parent];\n      } else {\n        return this.parent.getAncestors({\n          includeSelf: true\n        });\n      }\n    }\n    /**\n     * Returns a {@link module:engine/view/node~Node} or {@link module:engine/view/documentfragment~DocumentFragment}\n     * which is a common ancestor of both positions.\n     *\n     * @param {module:engine/view/position~Position} position\n     * @returns {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"getCommonAncestor\",\n    value: function getCommonAncestor(position) {\n      var ancestorsA = this.getAncestors();\n      var ancestorsB = position.getAncestors();\n      var i = 0;\n\n      while (ancestorsA[i] == ancestorsB[i] && ancestorsA[i]) {\n        i++;\n      }\n\n      return i === 0 ? null : ancestorsA[i - 1];\n    }\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\tposition.is( 'position' ); // -> true\n     *\t\tposition.is( 'view:position' ); // -> true\n     *\n     *\t\tposition.is( 'model:position' ); // -> false\n     *\t\tposition.is( 'element' ); // -> false\n     *\t\tposition.is( 'range' ); // -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'position' || type == 'view:position';\n    }\n    /**\n     * Checks whether this position equals given position.\n     *\n     * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n     * @returns {Boolean} True if positions are same.\n     */\n\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(otherPosition) {\n      return this.parent == otherPosition.parent && this.offset == otherPosition.offset;\n    }\n    /**\n     * Checks whether this position is located before given position. When method returns `false` it does not mean that\n     * this position is after give one. Two positions may be located inside separate roots and in that situation this\n     * method will still return `false`.\n     *\n     * @see module:engine/view/position~Position#isAfter\n     * @see module:engine/view/position~Position#compareWith\n     * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n     * @returns {Boolean} Returns `true` if this position is before given position.\n     */\n\n  }, {\n    key: \"isBefore\",\n    value: function isBefore(otherPosition) {\n      return this.compareWith(otherPosition) == 'before';\n    }\n    /**\n     * Checks whether this position is located after given position. When method returns `false` it does not mean that\n     * this position is before give one. Two positions may be located inside separate roots and in that situation this\n     * method will still return `false`.\n     *\n     * @see module:engine/view/position~Position#isBefore\n     * @see module:engine/view/position~Position#compareWith\n     * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n     * @returns {Boolean} Returns `true` if this position is after given position.\n     */\n\n  }, {\n    key: \"isAfter\",\n    value: function isAfter(otherPosition) {\n      return this.compareWith(otherPosition) == 'after';\n    }\n    /**\n     * Checks whether this position is before, after or in same position that other position. Two positions may be also\n     * different when they are located in separate roots.\n     *\n     * @param {module:engine/view/position~Position} otherPosition Position to compare with.\n     * @returns {module:engine/view/position~PositionRelation}\n     */\n\n  }, {\n    key: \"compareWith\",\n    value: function compareWith(otherPosition) {\n      if (this.root !== otherPosition.root) {\n        return 'different';\n      }\n\n      if (this.isEqual(otherPosition)) {\n        return 'same';\n      } // Get path from root to position's parent element.\n\n\n      var thisPath = this.parent.is('node') ? this.parent.getPath() : [];\n      var otherPath = otherPosition.parent.is('node') ? otherPosition.parent.getPath() : []; // Add the positions' offsets to the parents offsets.\n\n      thisPath.push(this.offset);\n      otherPath.push(otherPosition.offset); // Compare both path arrays to find common ancestor.\n\n      var result = compareArrays(thisPath, otherPath);\n\n      switch (result) {\n        case 'prefix':\n          return 'before';\n\n        case 'extension':\n          return 'after';\n\n        default:\n          return thisPath[result] < otherPath[result] ? 'before' : 'after';\n      }\n    }\n    /**\n     * Creates a {@link module:engine/view/treewalker~TreeWalker TreeWalker} instance with this positions as a start position.\n     *\n     * @param {Object} options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}\n     * @param {module:engine/view/range~Range} [options.boundaries=null] Range to define boundaries of the iterator.\n     * @param {Boolean} [options.singleCharacters=false]\n     * @param {Boolean} [options.shallow=false]\n     * @param {Boolean} [options.ignoreElementEnd=false]\n     */\n\n  }, {\n    key: \"getWalker\",\n    value: function getWalker() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      options.startPosition = this;\n      return new TreeWalker(options);\n    }\n  }, {\n    key: \"clone\",\n    value: function clone() {\n      return new Position(this.parent, this.offset);\n    }\n    /**\n     * Creates position at the given location. The location can be specified as:\n     *\n     * * a {@link module:engine/view/position~Position position},\n     * * parent element and offset (offset defaults to `0`),\n     * * parent element and `'end'` (sets position at the end of that element),\n     * * {@link module:engine/view/item~Item view item} and `'before'` or `'after'` (sets position before or after given view item).\n     *\n     * This method is a shortcut to other constructors such as:\n     *\n     * * {@link module:engine/view/position~Position._createBefore},\n     * * {@link module:engine/view/position~Position._createAfter}.\n     *\n     * @protected\n     * @param {module:engine/view/item~Item|module:engine/view/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/view/item~Item view item}.\n     */\n\n  }, {\n    key: \"nodeAfter\",\n    get: function get() {\n      if (this.parent.is('text')) {\n        return null;\n      }\n\n      return this.parent.getChild(this.offset) || null;\n    }\n    /**\n     * Node directly before the position. Equals `null` when there is no node before position or position is located\n     * inside text node.\n     *\n     * @readonly\n     * @type {module:engine/view/node~Node|null}\n     */\n\n  }, {\n    key: \"nodeBefore\",\n    get: function get() {\n      if (this.parent.is('text')) {\n        return null;\n      }\n\n      return this.parent.getChild(this.offset - 1) || null;\n    }\n    /**\n     * Is `true` if position is at the beginning of its {@link module:engine/view/position~Position#parent parent}, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isAtStart\",\n    get: function get() {\n      return this.offset === 0;\n    }\n    /**\n     * Is `true` if position is at the end of its {@link module:engine/view/position~Position#parent parent}, `false` otherwise.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isAtEnd\",\n    get: function get() {\n      var endOffset = this.parent.is('text') ? this.parent.data.length : this.parent.childCount;\n      return this.offset === endOffset;\n    }\n    /**\n     * Position's root, that is the root of the position's parent element.\n     *\n     * @readonly\n     * @type {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      return this.parent.root;\n    }\n    /**\n     * {@link module:engine/view/editableelement~EditableElement EditableElement} instance that contains this position, or `null` if\n     * position is not inside an editable element.\n     *\n     * @type {module:engine/view/editableelement~EditableElement|null}\n     */\n\n  }, {\n    key: \"editableElement\",\n    get: function get() {\n      var editable = this.parent;\n\n      while (!(editable instanceof EditableElement)) {\n        if (editable.parent) {\n          editable = editable.parent;\n        } else {\n          return null;\n        }\n      }\n\n      return editable;\n    }\n  }], [{\n    key: \"_createAt\",\n    value: function _createAt(itemOrPosition, offset) {\n      if (itemOrPosition instanceof Position) {\n        return new this(itemOrPosition.parent, itemOrPosition.offset);\n      } else {\n        var node = itemOrPosition;\n\n        if (offset == 'end') {\n          offset = node.is('text') ? node.data.length : node.childCount;\n        } else if (offset == 'before') {\n          return this._createBefore(node);\n        } else if (offset == 'after') {\n          return this._createAfter(node);\n        } else if (offset !== 0 && !offset) {\n          /**\n           * {@link module:engine/view/view~View#createPositionAt `View#createPositionAt()`}\n           * requires the offset to be specified when the first parameter is a view item.\n           *\n           * @error view-createPositionAt-offset-required\n           */\n          throw new CKEditorError('view-createPositionAt-offset-required: ' + 'View#createPositionAt() requires the offset when the first parameter is a view item.', node);\n        }\n\n        return new Position(node, offset);\n      }\n    }\n    /**\n     * Creates a new position after given view item.\n     *\n     * @protected\n     * @param {module:engine/view/item~Item} item View item after which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"_createAfter\",\n    value: function _createAfter(item) {\n      // TextProxy is not a instance of Node so we need do handle it in specific way.\n      if (item.is('textProxy')) {\n        return new Position(item.textNode, item.offsetInText + item.data.length);\n      }\n\n      if (!item.parent) {\n        /**\n         * You can not make a position after a root.\n         *\n         * @error view-position-after-root\n         * @param {module:engine/view/node~Node} root\n         */\n        throw new CKEditorError('view-position-after-root: You can not make position after root.', item, {\n          root: item\n        });\n      }\n\n      return new Position(item.parent, item.index + 1);\n    }\n    /**\n     * Creates a new position before given view item.\n     *\n     * @protected\n     * @param {module:engine/view/item~Item} item View item before which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"_createBefore\",\n    value: function _createBefore(item) {\n      // TextProxy is not a instance of Node so we need do handle it in specific way.\n      if (item.is('textProxy')) {\n        return new Position(item.textNode, item.offsetInText);\n      }\n\n      if (!item.parent) {\n        /**\n         * You cannot make a position before a root.\n         *\n         * @error view-position-before-root\n         * @param {module:engine/view/node~Node} root\n         */\n        throw new CKEditorError('view-position-before-root: You can not make position before root.', item, {\n          root: item\n        });\n      }\n\n      return new Position(item.parent, item.index);\n    }\n  }]);\n\n  return Position;\n}();\n/**\n * A flag indicating whether this position is `'before'` or `'after'` or `'same'` as given position.\n * If positions are in different roots `'different'` flag is returned.\n *\n * @typedef {String} module:engine/view/position~PositionRelation\n */\n\n\nexport { Position as default };","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/range\n */\nimport Position from \"./position\";\nimport TreeWalker from \"./treewalker\";\n/**\n * Range in the view tree. A range is represented by its start and end {@link module:engine/view/position~Position positions}.\n *\n * In order to create a new position instance use the `createPosition*()` factory methods available in:\n *\n * * {@link module:engine/view/view~View}\n * * {@link module:engine/view/downcastwriter~DowncastWriter}\n * * {@link module:engine/view/upcastwriter~UpcastWriter}\n */\n\nvar Range = /*#__PURE__*/function () {\n  /**\n   * Creates a range spanning from `start` position to `end` position.\n   *\n   * **Note:** Constructor creates it's own {@link module:engine/view/position~Position} instances basing on passed values.\n   *\n   * @param {module:engine/view/position~Position} start Start position.\n   * @param {module:engine/view/position~Position} [end] End position. If not set, range will be collapsed at the `start` position.\n   */\n  function Range(start) {\n    var end = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n    _classCallCheck(this, Range);\n\n    /**\n     * Start position.\n     *\n     * @readonly\n     * @member {module:engine/view/position~Position}\n     */\n    this.start = start.clone();\n    /**\n     * End position.\n     *\n     * @readonly\n     * @member {module:engine/view/position~Position}\n     */\n\n    this.end = end ? end.clone() : start.clone();\n  }\n  /**\n   * Iterable interface.\n   *\n   * Iterates over all {@link module:engine/view/item~Item view items} that are in this range and returns\n   * them together with additional information like length or {@link module:engine/view/position~Position positions},\n   * grouped as {@link module:engine/view/treewalker~TreeWalkerValue}.\n   *\n   * This iterator uses {@link module:engine/view/treewalker~TreeWalker TreeWalker} with `boundaries` set to this range and\n   * `ignoreElementEnd` option\n   * set to `true`.\n   *\n   * @returns {Iterable.<module:engine/view/treewalker~TreeWalkerValue>}\n   */\n\n\n  _createClass(Range, [{\n    key: Symbol.iterator,\n    value: /*#__PURE__*/regeneratorRuntime.mark(function value() {\n      return regeneratorRuntime.wrap(function value$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              return _context.delegateYield(new TreeWalker({\n                boundaries: this,\n                ignoreElementEnd: true\n              }), \"t0\", 1);\n\n            case 1:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, value, this);\n    })\n    /**\n     * Returns whether the range is collapsed, that is it start and end positions are equal.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"getEnlarged\",\n\n    /**\n     * Creates a maximal range that has the same content as this range but is expanded in both ways (at the beginning\n     * and at the end).\n     *\n     * For example:\n     *\n     *\t\t<p>Foo</p><p><b>{Bar}</b></p> -> <p>Foo</p>[<p><b>Bar</b>]</p>\n     *\t\t<p><b>foo</b>{bar}<span></span></p> -> <p><b>foo[</b>bar<span></span>]</p>\n     *\n     * Note that in the sample above:\n     *\n     * - `<p>` have type of {@link module:engine/view/containerelement~ContainerElement},\n     * - `<b>` have type of {@link module:engine/view/attributeelement~AttributeElement},\n     * - `<span>` have type of {@link module:engine/view/uielement~UIElement}.\n     *\n     * @returns {module:engine/view/range~Range} Enlarged range.\n     */\n    value: function getEnlarged() {\n      var start = this.start.getLastMatchingPosition(enlargeTrimSkip, {\n        direction: 'backward'\n      });\n      var end = this.end.getLastMatchingPosition(enlargeTrimSkip); // Fix positions, in case if they are in Text node.\n\n      if (start.parent.is('text') && start.isAtStart) {\n        start = Position._createBefore(start.parent);\n      }\n\n      if (end.parent.is('text') && end.isAtEnd) {\n        end = Position._createAfter(end.parent);\n      }\n\n      return new Range(start, end);\n    }\n    /**\n     * Creates a minimum range that has the same content as this range but is trimmed in both ways (at the beginning\n     * and at the end).\n     *\n     * For example:\n     *\n     *\t\t<p>Foo</p>[<p><b>Bar</b>]</p> -> <p>Foo</p><p><b>{Bar}</b></p>\n     *\t\t<p><b>foo[</b>bar<span></span>]</p> -> <p><b>foo</b>{bar}<span></span></p>\n     *\n     * Note that in the sample above:\n     *\n     * - `<p>` have type of {@link module:engine/view/containerelement~ContainerElement},\n     * - `<b>` have type of {@link module:engine/view/attributeelement~AttributeElement},\n     * - `<span>` have type of {@link module:engine/view/uielement~UIElement}.\n     *\n     * @returns {module:engine/view/range~Range} Shrink range.\n     */\n\n  }, {\n    key: \"getTrimmed\",\n    value: function getTrimmed() {\n      var start = this.start.getLastMatchingPosition(enlargeTrimSkip);\n\n      if (start.isAfter(this.end) || start.isEqual(this.end)) {\n        return new Range(start, start);\n      }\n\n      var end = this.end.getLastMatchingPosition(enlargeTrimSkip, {\n        direction: 'backward'\n      });\n      var nodeAfterStart = start.nodeAfter;\n      var nodeBeforeEnd = end.nodeBefore; // Because TreeWalker prefers positions next to text node, we need to move them manually into these text nodes.\n\n      if (nodeAfterStart && nodeAfterStart.is('text')) {\n        start = new Position(nodeAfterStart, 0);\n      }\n\n      if (nodeBeforeEnd && nodeBeforeEnd.is('text')) {\n        end = new Position(nodeBeforeEnd, nodeBeforeEnd.data.length);\n      }\n\n      return new Range(start, end);\n    }\n    /**\n     * Two ranges are equal if their start and end positions are equal.\n     *\n     * @param {module:engine/view/range~Range} otherRange Range to compare with.\n     * @returns {Boolean} `true` if ranges are equal, `false` otherwise\n     */\n\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(otherRange) {\n      return this == otherRange || this.start.isEqual(otherRange.start) && this.end.isEqual(otherRange.end);\n    }\n    /**\n     * Checks whether this range contains given {@link module:engine/view/position~Position position}.\n     *\n     * @param {module:engine/view/position~Position} position Position to check.\n     * @returns {Boolean} `true` if given {@link module:engine/view/position~Position position} is contained in this range,\n     * `false` otherwise.\n     */\n\n  }, {\n    key: \"containsPosition\",\n    value: function containsPosition(position) {\n      return position.isAfter(this.start) && position.isBefore(this.end);\n    }\n    /**\n     * Checks whether this range contains given {@link module:engine/view/range~Range range}.\n     *\n     * @param {module:engine/view/range~Range} otherRange Range to check.\n     * @param {Boolean} [loose=false] Whether the check is loose or strict. If the check is strict (`false`), compared range cannot\n     * start or end at the same position as this range boundaries. If the check is loose (`true`), compared range can start, end or\n     * even be equal to this range. Note that collapsed ranges are always compared in strict mode.\n     * @returns {Boolean} `true` if given {@link module:engine/view/range~Range range} boundaries are contained by this range, `false`\n     * otherwise.\n     */\n\n  }, {\n    key: \"containsRange\",\n    value: function containsRange(otherRange) {\n      var loose = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (otherRange.isCollapsed) {\n        loose = false;\n      }\n\n      var containsStart = this.containsPosition(otherRange.start) || loose && this.start.isEqual(otherRange.start);\n      var containsEnd = this.containsPosition(otherRange.end) || loose && this.end.isEqual(otherRange.end);\n      return containsStart && containsEnd;\n    }\n    /**\n     * Computes which part(s) of this {@link module:engine/view/range~Range range} is not a part of given\n     * {@link module:engine/view/range~Range range}.\n     * Returned array contains zero, one or two {@link module:engine/view/range~Range ranges}.\n     *\n     * Examples:\n     *\n     *\t\tlet foo = downcastWriter.createText( 'foo' );\n     *\t\tlet img = downcastWriter.createContainerElement( 'img' );\n     *\t\tlet bar = downcastWriter.createText( 'bar' );\n     *\t\tlet p = downcastWriter.createContainerElement( 'p', null, [ foo, img, bar ] );\n     *\n     *\t\tlet range = view.createRange( view.createPositionAt( foo, 2 ), view.createPositionAt( bar, 1 ); // \"o\", img, \"b\" are in range.\n     *\t\tlet otherRange = view.createRange( // \"oo\", img, \"ba\" are in range.\n     *\t\t\tview.createPositionAt( foo, 1 ),\n     *\t\t\tview.createPositionAt( bar, 2 )\n     *\t\t);\n     *\t\tlet transformed = range.getDifference( otherRange );\n     *\t\t// transformed array has no ranges because `otherRange` contains `range`\n     *\n     *\t\totherRange = view.createRange( view.createPositionAt( foo, 1 ), view.createPositionAt( p, 2 ); // \"oo\", img are in range.\n     *\t\ttransformed = range.getDifference( otherRange );\n     *\t\t// transformed array has one range: from ( p, 2 ) to ( bar, 1 )\n     *\n     *\t\totherRange = view.createRange( view.createPositionAt( p, 1 ), view.createPositionAt( p, 2 ) ); // img is in range.\n     *\t\ttransformed = range.getDifference( otherRange );\n     *\t\t// transformed array has two ranges: from ( foo, 1 ) to ( p, 1 ) and from ( p, 2 ) to ( bar, 1 )\n     *\n     * @param {module:engine/view/range~Range} otherRange Range to differentiate against.\n     * @returns {Array.<module:engine/view/range~Range>} The difference between ranges.\n     */\n\n  }, {\n    key: \"getDifference\",\n    value: function getDifference(otherRange) {\n      var ranges = [];\n\n      if (this.isIntersecting(otherRange)) {\n        // Ranges intersect.\n        if (this.containsPosition(otherRange.start)) {\n          // Given range start is inside this range. This means that we have to\n          // add shrunken range - from the start to the middle of this range.\n          ranges.push(new Range(this.start, otherRange.start));\n        }\n\n        if (this.containsPosition(otherRange.end)) {\n          // Given range end is inside this range. This means that we have to\n          // add shrunken range - from the middle of this range to the end.\n          ranges.push(new Range(otherRange.end, this.end));\n        }\n      } else {\n        // Ranges do not intersect, return the original range.\n        ranges.push(this.clone());\n      }\n\n      return ranges;\n    }\n    /**\n     * Returns an intersection of this {@link module:engine/view/range~Range range} and given {@link module:engine/view/range~Range range}.\n     * Intersection is a common part of both of those ranges. If ranges has no common part, returns `null`.\n     *\n     * Examples:\n     *\n     *\t\tlet foo = downcastWriter.createText( 'foo' );\n     *\t\tlet img = downcastWriter.createContainerElement( 'img' );\n     *\t\tlet bar = downcastWriter.createText( 'bar' );\n     *\t\tlet p = downcastWriter.createContainerElement( 'p', null, [ foo, img, bar ] );\n     *\n     *\t\tlet range = view.createRange( view.createPositionAt( foo, 2 ), view.createPositionAt( bar, 1 ); // \"o\", img, \"b\" are in range.\n     *\t\tlet otherRange = view.createRange( view.createPositionAt( foo, 1 ), view.createPositionAt( p, 2 ); // \"oo\", img are in range.\n     *\t\tlet transformed = range.getIntersection( otherRange ); // range from ( foo, 1 ) to ( p, 2 ).\n     *\n     *\t\totherRange = view.createRange( view.createPositionAt( bar, 1 ), view.createPositionAt( bar, 3 ); \"ar\" is in range.\n     *\t\ttransformed = range.getIntersection( otherRange ); // null - no common part.\n     *\n     * @param {module:engine/view/range~Range} otherRange Range to check for intersection.\n     * @returns {module:engine/view/range~Range|null} A common part of given ranges or `null` if ranges have no common part.\n     */\n\n  }, {\n    key: \"getIntersection\",\n    value: function getIntersection(otherRange) {\n      if (this.isIntersecting(otherRange)) {\n        // Ranges intersect, so a common range will be returned.\n        // At most, it will be same as this range.\n        var commonRangeStart = this.start;\n        var commonRangeEnd = this.end;\n\n        if (this.containsPosition(otherRange.start)) {\n          // Given range start is inside this range. This means thaNt we have to\n          // shrink common range to the given range start.\n          commonRangeStart = otherRange.start;\n        }\n\n        if (this.containsPosition(otherRange.end)) {\n          // Given range end is inside this range. This means that we have to\n          // shrink common range to the given range end.\n          commonRangeEnd = otherRange.end;\n        }\n\n        return new Range(commonRangeStart, commonRangeEnd);\n      } // Ranges do not intersect, so they do not have common part.\n\n\n      return null;\n    }\n    /**\n     * Creates a {@link module:engine/view/treewalker~TreeWalker TreeWalker} instance with this range as a boundary.\n     *\n     * @param {Object} options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.\n     * @param {module:engine/view/position~Position} [options.startPosition]\n     * @param {Boolean} [options.singleCharacters=false]\n     * @param {Boolean} [options.shallow=false]\n     * @param {Boolean} [options.ignoreElementEnd=false]\n     * @returns {module:engine/view/treewalker~TreeWalker}\n     */\n\n  }, {\n    key: \"getWalker\",\n    value: function getWalker() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      options.boundaries = this;\n      return new TreeWalker(options);\n    }\n    /**\n     * Returns a {@link module:engine/view/node~Node} or {@link module:engine/view/documentfragment~DocumentFragment}\n     * which is a common ancestor of range's both ends (in which the entire range is contained).\n     *\n     * @returns {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"getCommonAncestor\",\n    value: function getCommonAncestor() {\n      return this.start.getCommonAncestor(this.end);\n    }\n    /**\n     * Clones this range.\n     *\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"clone\",\n    value: function clone() {\n      return new Range(this.start, this.end);\n    }\n    /**\n     * Returns an iterator that iterates over all {@link module:engine/view/item~Item view items} that are in this range and returns\n     * them.\n     *\n     * This method uses {@link module:engine/view/treewalker~TreeWalker} with `boundaries` set to this range and `ignoreElementEnd` option\n     * set to `true`. However it returns only {@link module:engine/view/item~Item items},\n     * not {@link module:engine/view/treewalker~TreeWalkerValue}.\n     *\n     * You may specify additional options for the tree walker. See {@link module:engine/view/treewalker~TreeWalker} for\n     * a full list of available options.\n     *\n     * @param {Object} options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.\n     * @returns {Iterable.<module:engine/view/item~Item>}\n     */\n\n  }, {\n    key: \"getItems\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getItems() {\n      var options,\n          treeWalker,\n          _iterator,\n          _step,\n          _value,\n          _args2 = arguments;\n\n      return regeneratorRuntime.wrap(function getItems$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              options = _args2.length > 0 && _args2[0] !== undefined ? _args2[0] : {};\n              options.boundaries = this;\n              options.ignoreElementEnd = true;\n              treeWalker = new TreeWalker(options);\n              _iterator = _createForOfIteratorHelper(treeWalker);\n              _context2.prev = 5;\n\n              _iterator.s();\n\n            case 7:\n              if ((_step = _iterator.n()).done) {\n                _context2.next = 13;\n                break;\n              }\n\n              _value = _step.value;\n              _context2.next = 11;\n              return _value.item;\n\n            case 11:\n              _context2.next = 7;\n              break;\n\n            case 13:\n              _context2.next = 18;\n              break;\n\n            case 15:\n              _context2.prev = 15;\n              _context2.t0 = _context2[\"catch\"](5);\n\n              _iterator.e(_context2.t0);\n\n            case 18:\n              _context2.prev = 18;\n\n              _iterator.f();\n\n              return _context2.finish(18);\n\n            case 21:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, getItems, this, [[5, 15, 18, 21]]);\n    })\n    /**\n     * Returns an iterator that iterates over all {@link module:engine/view/position~Position positions} that are boundaries or\n     * contained in this range.\n     *\n     * This method uses {@link module:engine/view/treewalker~TreeWalker} with `boundaries` set to this range. However it returns only\n     * {@link module:engine/view/position~Position positions}, not {@link module:engine/view/treewalker~TreeWalkerValue}.\n     *\n     * You may specify additional options for the tree walker. See {@link module:engine/view/treewalker~TreeWalker} for\n     * a full list of available options.\n     *\n     * @param {Object} options Object with configuration options. See {@link module:engine/view/treewalker~TreeWalker}.\n     * @returns {Iterable.<module:engine/view/position~Position>}\n     */\n\n  }, {\n    key: \"getPositions\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getPositions() {\n      var options,\n          treeWalker,\n          _iterator2,\n          _step2,\n          _value2,\n          _args3 = arguments;\n\n      return regeneratorRuntime.wrap(function getPositions$(_context3) {\n        while (1) {\n          switch (_context3.prev = _context3.next) {\n            case 0:\n              options = _args3.length > 0 && _args3[0] !== undefined ? _args3[0] : {};\n              options.boundaries = this;\n              treeWalker = new TreeWalker(options);\n              _context3.next = 5;\n              return treeWalker.position;\n\n            case 5:\n              _iterator2 = _createForOfIteratorHelper(treeWalker);\n              _context3.prev = 6;\n\n              _iterator2.s();\n\n            case 8:\n              if ((_step2 = _iterator2.n()).done) {\n                _context3.next = 14;\n                break;\n              }\n\n              _value2 = _step2.value;\n              _context3.next = 12;\n              return _value2.nextPosition;\n\n            case 12:\n              _context3.next = 8;\n              break;\n\n            case 14:\n              _context3.next = 19;\n              break;\n\n            case 16:\n              _context3.prev = 16;\n              _context3.t0 = _context3[\"catch\"](6);\n\n              _iterator2.e(_context3.t0);\n\n            case 19:\n              _context3.prev = 19;\n\n              _iterator2.f();\n\n              return _context3.finish(19);\n\n            case 22:\n            case \"end\":\n              return _context3.stop();\n          }\n        }\n      }, getPositions, this, [[6, 16, 19, 22]]);\n    })\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\trange.is( 'range' ); // -> true\n     *\t\trange.is( 'view:range' ); // -> true\n     *\n     *\t\trange.is( 'model:range' ); // -> false\n     *\t\trange.is( 'element' ); // -> false\n     *\t\trange.is( 'selection' ); // -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'range' || type == 'view:range';\n    }\n    /**\n     * Checks and returns whether this range intersects with the given range.\n     *\n     * @param {module:engine/view/range~Range} otherRange Range to compare with.\n     * @returns {Boolean} True if ranges intersect.\n     */\n\n  }, {\n    key: \"isIntersecting\",\n    value: function isIntersecting(otherRange) {\n      return this.start.isBefore(otherRange.end) && this.end.isAfter(otherRange.start);\n    }\n    /**\n     * Creates a range from the given parents and offsets.\n     *\n     * @protected\n     * @param {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment} startElement Start position\n     * parent element.\n     * @param {Number} startOffset Start position offset.\n     * @param {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment} endElement End position\n     * parent element.\n     * @param {Number} endOffset End position offset.\n     * @returns {module:engine/view/range~Range} Created range.\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    get: function get() {\n      return this.start.isEqual(this.end);\n    }\n    /**\n     * Returns whether this range is flat, that is if {@link module:engine/view/range~Range#start start} position and\n     * {@link module:engine/view/range~Range#end end} position are in the same {@link module:engine/view/position~Position#parent parent}.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isFlat\",\n    get: function get() {\n      return this.start.parent === this.end.parent;\n    }\n    /**\n     * Range root element.\n     *\n     * @type {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      return this.start.root;\n    }\n  }], [{\n    key: \"_createFromParentsAndOffsets\",\n    value: function _createFromParentsAndOffsets(startElement, startOffset, endElement, endOffset) {\n      return new this(new Position(startElement, startOffset), new Position(endElement, endOffset));\n    }\n    /**\n     * Creates a new range, spreading from specified {@link module:engine/view/position~Position position} to a position moved by\n     * given `shift`. If `shift` is a negative value, shifted position is treated as the beginning of the range.\n     *\n     * @protected\n     * @param {module:engine/view/position~Position} position Beginning of the range.\n     * @param {Number} shift How long the range should be.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"_createFromPositionAndShift\",\n    value: function _createFromPositionAndShift(position, shift) {\n      var start = position;\n      var end = position.getShiftedBy(shift);\n      return shift > 0 ? new this(start, end) : new this(end, start);\n    }\n    /**\n     * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     * @protected\n     * @param {module:engine/view/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"_createIn\",\n    value: function _createIn(element) {\n      return this._createFromParentsAndOffsets(element, 0, element, element.childCount);\n    }\n    /**\n     * Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.\n     *\n     * @protected\n     * @param {module:engine/view/item~Item} item\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"_createOn\",\n    value: function _createOn(item) {\n      var size = item.is('textProxy') ? item.offsetSize : 1;\n      return this._createFromPositionAndShift(Position._createBefore(item), size);\n    }\n  }]);\n\n  return Range;\n}(); // Function used by getEnlarged and getTrimmed methods.\n\n\nexport { Range as default };\n\nfunction enlargeTrimSkip(value) {\n  if (value.item.is('attributeElement') || value.item.is('uiElement')) {\n    return true;\n  }\n\n  return false;\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.string.anchor\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* globals Node */\n\n/**\n * @module engine/view/renderer\n */\nimport ViewText from \"./text\";\nimport ViewPosition from \"./position\";\nimport { INLINE_FILLER, INLINE_FILLER_LENGTH, startsWithFiller, isInlineFiller } from \"./filler\";\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport diff from '@ckeditor/ckeditor5-utils/src/diff';\nimport insertAt from '@ckeditor/ckeditor5-utils/src/dom/insertat';\nimport remove from '@ckeditor/ckeditor5-utils/src/dom/remove';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport isText from '@ckeditor/ckeditor5-utils/src/dom/istext';\nimport isNode from '@ckeditor/ckeditor5-utils/src/dom/isnode';\nimport fastDiff from '@ckeditor/ckeditor5-utils/src/fastdiff';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n/**\n * Renderer is responsible for updating the DOM structure and the DOM selection based on\n * the {@link module:engine/view/renderer~Renderer#markToSync information about updated view nodes}.\n * In other words, it renders the view to the DOM.\n *\n * Its main responsibility is to make only the necessary, minimal changes to the DOM. However, unlike in many\n * virtual DOM implementations, the primary reason for doing minimal changes is not the performance but ensuring\n * that native editing features such as text composition, autocompletion, spell checking, selection's x-index are\n * affected as little as possible.\n *\n * Renderer uses {@link module:engine/view/domconverter~DomConverter} to transform view nodes and positions\n * to and from the DOM.\n */\n\nvar Renderer = /*#__PURE__*/function () {\n  /**\n   * Creates a renderer instance.\n   *\n   * @param {module:engine/view/domconverter~DomConverter} domConverter Converter instance.\n   * @param {module:engine/view/documentselection~DocumentSelection} selection View selection.\n   */\n  function Renderer(domConverter, selection) {\n    _classCallCheck(this, Renderer);\n\n    /**\n     * Set of DOM Documents instances.\n     *\n     * @readonly\n     * @member {Set.<Document>}\n     */\n    this.domDocuments = new Set();\n    /**\n     * Converter instance.\n     *\n     * @readonly\n     * @member {module:engine/view/domconverter~DomConverter}\n     */\n\n    this.domConverter = domConverter;\n    /**\n     * Set of nodes which attributes changed and may need to be rendered.\n     *\n     * @readonly\n     * @member {Set.<module:engine/view/node~Node>}\n     */\n\n    this.markedAttributes = new Set();\n    /**\n     * Set of elements which child lists changed and may need to be rendered.\n     *\n     * @readonly\n     * @member {Set.<module:engine/view/node~Node>}\n     */\n\n    this.markedChildren = new Set();\n    /**\n     * Set of text nodes which text data changed and may need to be rendered.\n     *\n     * @readonly\n     * @member {Set.<module:engine/view/node~Node>}\n     */\n\n    this.markedTexts = new Set();\n    /**\n     * View selection. Renderer updates DOM selection based on the view selection.\n     *\n     * @readonly\n     * @member {module:engine/view/documentselection~DocumentSelection}\n     */\n\n    this.selection = selection;\n    /**\n     * Indicates if the view document is focused and selection can be rendered. Selection will not be rendered if\n     * this is set to `false`.\n     *\n     * @member {Boolean}\n     */\n\n    this.isFocused = false;\n    /**\n     * The text node in which the inline filler was rendered.\n     *\n     * @private\n     * @member {Text}\n     */\n\n    this._inlineFiller = null;\n    /**\n     * DOM element containing fake selection.\n     *\n     * @private\n     * @type {null|HTMLElement}\n     */\n\n    this._fakeSelectionContainer = null;\n  }\n  /**\n   * Marks a view node to be updated in the DOM by {@link #render `render()`}.\n   *\n   * Note that only view nodes whose parents have corresponding DOM elements need to be marked to be synchronized.\n   *\n   * @see #markedAttributes\n   * @see #markedChildren\n   * @see #markedTexts\n   *\n   * @param {module:engine/view/document~ChangeType} type Type of the change.\n   * @param {module:engine/view/node~Node} node Node to be marked.\n   */\n\n\n  _createClass(Renderer, [{\n    key: \"markToSync\",\n    value: function markToSync(type, node) {\n      if (type === 'text') {\n        if (this.domConverter.mapViewToDom(node.parent)) {\n          this.markedTexts.add(node);\n        }\n      } else {\n        // If the node has no DOM element it is not rendered yet,\n        // its children/attributes do not need to be marked to be sync.\n        if (!this.domConverter.mapViewToDom(node)) {\n          return;\n        }\n\n        if (type === 'attributes') {\n          this.markedAttributes.add(node);\n        } else if (type === 'children') {\n          this.markedChildren.add(node);\n        } else {\n          /**\n           * Unknown type passed to Renderer.markToSync.\n           *\n           * @error renderer-unknown-type\n           */\n          throw new CKEditorError('view-renderer-unknown-type: Unknown type passed to Renderer.markToSync.', this);\n        }\n      }\n    }\n    /**\n     * Renders all buffered changes ({@link #markedAttributes}, {@link #markedChildren} and {@link #markedTexts}) and\n     * the current view selection (if needed) to the DOM by applying a minimal set of changes to it.\n     *\n     * Renderer tries not to break the text composition (e.g. IME) and x-index of the selection,\n     * so it does as little as it is needed to update the DOM.\n     *\n     * Renderer also handles {@link module:engine/view/filler fillers}. Especially, it checks if the inline filler is needed\n     * at the selection position and adds or removes it. To prevent breaking text composition inline filler will not be\n     * removed as long as the selection is in the text node which needed it at first.\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var inlineFillerPosition; // Refresh mappings.\n\n      var _iterator = _createForOfIteratorHelper(this.markedChildren),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var element = _step.value;\n\n          this._updateChildrenMappings(element);\n        } // There was inline filler rendered in the DOM but it's not\n        // at the selection position any more, so we can remove it\n        // (cause even if it's needed, it must be placed in another location).\n\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      if (this._inlineFiller && !this._isSelectionInInlineFiller()) {\n        this._removeInlineFiller();\n      } // If we've got the filler, let's try to guess its position in the view.\n\n\n      if (this._inlineFiller) {\n        inlineFillerPosition = this._getInlineFillerPosition();\n      } // Otherwise, if it's needed, create it at the selection position.\n      else if (this._needsInlineFillerAtSelection()) {\n          inlineFillerPosition = this.selection.getFirstPosition(); // Do not use `markToSync` so it will be added even if the parent is already added.\n\n          this.markedChildren.add(inlineFillerPosition.parent);\n        }\n\n      var _iterator2 = _createForOfIteratorHelper(this.markedAttributes),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var _element = _step2.value;\n\n          this._updateAttrs(_element);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      var _iterator3 = _createForOfIteratorHelper(this.markedChildren),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var _element2 = _step3.value;\n\n          this._updateChildren(_element2, {\n            inlineFillerPosition: inlineFillerPosition\n          });\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      var _iterator4 = _createForOfIteratorHelper(this.markedTexts),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var node = _step4.value;\n\n          if (!this.markedChildren.has(node.parent) && this.domConverter.mapViewToDom(node.parent)) {\n            this._updateText(node, {\n              inlineFillerPosition: inlineFillerPosition\n            });\n          }\n        } // Check whether the inline filler is required and where it really is in the DOM.\n        // At this point in most cases it will be in the DOM, but there are exceptions.\n        // For example, if the inline filler was deep in the created DOM structure, it will not be created.\n        // Similarly, if it was removed at the beginning of this function and then neither text nor children were updated,\n        // it will not be present.\n        // Fix those and similar scenarios.\n\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      if (inlineFillerPosition) {\n        var fillerDomPosition = this.domConverter.viewPositionToDom(inlineFillerPosition);\n        var domDocument = fillerDomPosition.parent.ownerDocument;\n\n        if (!startsWithFiller(fillerDomPosition.parent)) {\n          // Filler has not been created at filler position. Create it now.\n          this._inlineFiller = addInlineFiller(domDocument, fillerDomPosition.parent, fillerDomPosition.offset);\n        } else {\n          // Filler has been found, save it.\n          this._inlineFiller = fillerDomPosition.parent;\n        }\n      } else {\n        // There is no filler needed.\n        this._inlineFiller = null;\n      }\n\n      this._updateSelection();\n\n      this._updateFocus();\n\n      this.markedTexts.clear();\n      this.markedAttributes.clear();\n      this.markedChildren.clear();\n    }\n    /**\n     * Updates mappings of view element's children.\n     *\n     * Children that were replaced in the view structure by similar elements (same tag name) are treated as 'replaced'.\n     * This means that their mappings can be updated so the new view elements are mapped to the existing DOM elements.\n     * Thanks to that these elements do not need to be re-rendered completely.\n     *\n     * @private\n     * @param {module:engine/view/node~Node} viewElement The view element whose children mappings will be updated.\n     */\n\n  }, {\n    key: \"_updateChildrenMappings\",\n    value: function _updateChildrenMappings(viewElement) {\n      var domElement = this.domConverter.mapViewToDom(viewElement);\n\n      if (!domElement) {\n        // If there is no `domElement` it means that it was already removed from DOM and there is no need to process it.\n        return;\n      }\n\n      var actualDomChildren = this.domConverter.mapViewToDom(viewElement).childNodes;\n      var expectedDomChildren = Array.from(this.domConverter.viewChildrenToDom(viewElement, domElement.ownerDocument, {\n        withChildren: false\n      }));\n\n      var diff = this._diffNodeLists(actualDomChildren, expectedDomChildren);\n\n      var actions = this._findReplaceActions(diff, actualDomChildren, expectedDomChildren);\n\n      if (actions.indexOf('replace') !== -1) {\n        var counter = {\n          equal: 0,\n          insert: 0,\n          delete: 0\n        };\n\n        var _iterator5 = _createForOfIteratorHelper(actions),\n            _step5;\n\n        try {\n          for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n            var action = _step5.value;\n\n            if (action === 'replace') {\n              var insertIndex = counter.equal + counter.insert;\n              var deleteIndex = counter.equal + counter.delete;\n              var viewChild = viewElement.getChild(insertIndex); // The 'uiElement' is a special one and its children are not stored in a view (#799),\n              // so we cannot use it with replacing flow (since it uses view children during rendering\n              // which will always result in rendering empty element).\n\n              if (viewChild && !viewChild.is('uiElement')) {\n                this._updateElementMappings(viewChild, actualDomChildren[deleteIndex]);\n              }\n\n              remove(expectedDomChildren[insertIndex]);\n              counter.equal++;\n            } else {\n              counter[action]++;\n            }\n          }\n        } catch (err) {\n          _iterator5.e(err);\n        } finally {\n          _iterator5.f();\n        }\n      }\n    }\n    /**\n     * Updates mappings of a given view element.\n     *\n     * @private\n     * @param {module:engine/view/node~Node} viewElement The view element whose mappings will be updated.\n     * @param {Node} domElement The DOM element representing the given view element.\n     */\n\n  }, {\n    key: \"_updateElementMappings\",\n    value: function _updateElementMappings(viewElement, domElement) {\n      // Remap 'DomConverter' bindings.\n      this.domConverter.unbindDomElement(domElement);\n      this.domConverter.bindElements(domElement, viewElement); // View element may have children which needs to be updated, but are not marked, mark them to update.\n\n      this.markedChildren.add(viewElement); // Because we replace new view element mapping with the existing one, the corresponding DOM element\n      // will not be rerendered. The new view element may have different attributes than the previous one.\n      // Since its corresponding DOM element will not be rerendered, new attributes will not be added\n      // to the DOM, so we need to mark it here to make sure its attributes gets updated. See #1427 for more\n      // detailed case study.\n      // Also there are cases where replaced element is removed from the view structure and then has\n      // its attributes changed or removed. In such cases the element will not be present in `markedAttributes`\n      // and also may be the same (`element.isSimilar()`) as the reused element not having its attributes updated.\n      // To prevent such situations we always mark reused element to have its attributes rerenderd (#1560).\n\n      this.markedAttributes.add(viewElement);\n    }\n    /**\n     * Gets the position of the inline filler based on the current selection.\n     * Here, we assume that we know that the filler is needed and\n     * {@link #_isSelectionInInlineFiller is at the selection position}, and, since it is needed,\n     * it is somewhere at the selection position.\n     *\n     * Note: The filler position cannot be restored based on the filler's DOM text node, because\n     * when this method is called (before rendering), the bindings will often be broken. View-to-DOM\n     * bindings are only dependable after rendering.\n     *\n     * @private\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"_getInlineFillerPosition\",\n    value: function _getInlineFillerPosition() {\n      var firstPos = this.selection.getFirstPosition();\n\n      if (firstPos.parent.is('text')) {\n        return ViewPosition._createBefore(this.selection.getFirstPosition().parent);\n      } else {\n        return firstPos;\n      }\n    }\n    /**\n     * Returns `true` if the selection has not left the inline filler's text node.\n     * If it is `true`, it means that the filler had been added for a reason and the selection did not\n     * leave the filler's text node. For example, the user can be in the middle of a composition so it should not be touched.\n     *\n     * @private\n     * @returns {Boolean} `true` if the inline filler and selection are in the same place.\n     */\n\n  }, {\n    key: \"_isSelectionInInlineFiller\",\n    value: function _isSelectionInInlineFiller() {\n      if (this.selection.rangeCount != 1 || !this.selection.isCollapsed) {\n        return false;\n      } // Note, we can't check if selection's position equals position of the\n      // this._inlineFiller node, because of #663. We may not be able to calculate\n      // the filler's position in the view at this stage.\n      // Instead, we check it the other way – whether selection is anchored in\n      // that text node or next to it.\n      // Possible options are:\n      // \"FILLER{}\"\n      // \"FILLERadded-text{}\"\n\n\n      var selectionPosition = this.selection.getFirstPosition();\n      var position = this.domConverter.viewPositionToDom(selectionPosition);\n\n      if (position && isText(position.parent) && startsWithFiller(position.parent)) {\n        return true;\n      }\n\n      return false;\n    }\n    /**\n     * Removes the inline filler.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_removeInlineFiller\",\n    value: function _removeInlineFiller() {\n      var domFillerNode = this._inlineFiller; // Something weird happened and the stored node doesn't contain the filler's text.\n\n      if (!startsWithFiller(domFillerNode)) {\n        /**\n         * The inline filler node was lost. Most likely, something overwrote the filler text node\n         * in the DOM.\n         *\n         * @error view-renderer-filler-was-lost\n         */\n        throw new CKEditorError('view-renderer-filler-was-lost: The inline filler node was lost.', this);\n      }\n\n      if (isInlineFiller(domFillerNode)) {\n        domFillerNode.parentNode.removeChild(domFillerNode);\n      } else {\n        domFillerNode.data = domFillerNode.data.substr(INLINE_FILLER_LENGTH);\n      }\n\n      this._inlineFiller = null;\n    }\n    /**\n     * Checks if the inline {@link module:engine/view/filler filler} should be added.\n     *\n     * @private\n     * @returns {Boolean} `true` if the inline filler should be added.\n     */\n\n  }, {\n    key: \"_needsInlineFillerAtSelection\",\n    value: function _needsInlineFillerAtSelection() {\n      if (this.selection.rangeCount != 1 || !this.selection.isCollapsed) {\n        return false;\n      }\n\n      var selectionPosition = this.selection.getFirstPosition();\n      var selectionParent = selectionPosition.parent;\n      var selectionOffset = selectionPosition.offset; // If there is no DOM root we do not care about fillers.\n\n      if (!this.domConverter.mapViewToDom(selectionParent.root)) {\n        return false;\n      }\n\n      if (!selectionParent.is('element')) {\n        return false;\n      } // Prevent adding inline filler inside elements with contenteditable=false.\n      // https://github.com/ckeditor/ckeditor5-engine/issues/1170\n\n\n      if (!isEditable(selectionParent)) {\n        return false;\n      } // We have block filler, we do not need inline one.\n\n\n      if (selectionOffset === selectionParent.getFillerOffset()) {\n        return false;\n      }\n\n      var nodeBefore = selectionPosition.nodeBefore;\n      var nodeAfter = selectionPosition.nodeAfter;\n\n      if (nodeBefore instanceof ViewText || nodeAfter instanceof ViewText) {\n        return false;\n      }\n\n      return true;\n    }\n    /**\n     * Checks if text needs to be updated and possibly updates it.\n     *\n     * @private\n     * @param {module:engine/view/text~Text} viewText View text to update.\n     * @param {Object} options\n     * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n     * filler should be rendered.\n     */\n\n  }, {\n    key: \"_updateText\",\n    value: function _updateText(viewText, options) {\n      var domText = this.domConverter.findCorrespondingDomText(viewText);\n      var newDomText = this.domConverter.viewToDom(viewText, domText.ownerDocument);\n      var actualText = domText.data;\n      var expectedText = newDomText.data;\n      var filler = options.inlineFillerPosition;\n\n      if (filler && filler.parent == viewText.parent && filler.offset == viewText.index) {\n        expectedText = INLINE_FILLER + expectedText;\n      }\n\n      if (actualText != expectedText) {\n        var actions = fastDiff(actualText, expectedText);\n\n        var _iterator6 = _createForOfIteratorHelper(actions),\n            _step6;\n\n        try {\n          for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n            var action = _step6.value;\n\n            if (action.type === 'insert') {\n              domText.insertData(action.index, action.values.join(''));\n            } else {\n              // 'delete'\n              domText.deleteData(action.index, action.howMany);\n            }\n          }\n        } catch (err) {\n          _iterator6.e(err);\n        } finally {\n          _iterator6.f();\n        }\n      }\n    }\n    /**\n     * Checks if attribute list needs to be updated and possibly updates it.\n     *\n     * @private\n     * @param {module:engine/view/element~Element} viewElement The view element to update.\n     */\n\n  }, {\n    key: \"_updateAttrs\",\n    value: function _updateAttrs(viewElement) {\n      var domElement = this.domConverter.mapViewToDom(viewElement);\n\n      if (!domElement) {\n        // If there is no `domElement` it means that 'viewElement' is outdated as its mapping was updated\n        // in 'this._updateChildrenMappings()'. There is no need to process it as new view element which\n        // replaced old 'viewElement' mapping was also added to 'this.markedAttributes'\n        // in 'this._updateChildrenMappings()' so it will be processed separately.\n        return;\n      }\n\n      var domAttrKeys = Array.from(domElement.attributes).map(function (attr) {\n        return attr.name;\n      });\n      var viewAttrKeys = viewElement.getAttributeKeys(); // Add or overwrite attributes.\n\n      var _iterator7 = _createForOfIteratorHelper(viewAttrKeys),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var key = _step7.value;\n          domElement.setAttribute(key, viewElement.getAttribute(key));\n        } // Remove from DOM attributes which do not exists in the view.\n\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n\n      var _iterator8 = _createForOfIteratorHelper(domAttrKeys),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var _key = _step8.value;\n\n          if (!viewElement.hasAttribute(_key)) {\n            domElement.removeAttribute(_key);\n          }\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n    }\n    /**\n     * Checks if elements child list needs to be updated and possibly updates it.\n     *\n     * @private\n     * @param {module:engine/view/element~Element} viewElement View element to update.\n     * @param {Object} options\n     * @param {module:engine/view/position~Position} options.inlineFillerPosition The position where the inline\n     * filler should be rendered.\n     */\n\n  }, {\n    key: \"_updateChildren\",\n    value: function _updateChildren(viewElement, options) {\n      var domElement = this.domConverter.mapViewToDom(viewElement);\n\n      if (!domElement) {\n        // If there is no `domElement` it means that it was already removed from DOM.\n        // There is no need to process it. It will be processed when re-inserted.\n        return;\n      }\n\n      var inlineFillerPosition = options.inlineFillerPosition;\n      var actualDomChildren = this.domConverter.mapViewToDom(viewElement).childNodes;\n      var expectedDomChildren = Array.from(this.domConverter.viewChildrenToDom(viewElement, domElement.ownerDocument, {\n        bind: true,\n        inlineFillerPosition: inlineFillerPosition\n      })); // Inline filler element has to be created as it is present in the DOM, but not in the view. It is required\n      // during diffing so text nodes could be compared correctly and also during rendering to maintain\n      // proper order and indexes while updating the DOM.\n\n      if (inlineFillerPosition && inlineFillerPosition.parent === viewElement) {\n        addInlineFiller(domElement.ownerDocument, expectedDomChildren, inlineFillerPosition.offset);\n      }\n\n      var diff = this._diffNodeLists(actualDomChildren, expectedDomChildren);\n\n      var i = 0;\n      var nodesToUnbind = new Set();\n\n      var _iterator9 = _createForOfIteratorHelper(diff),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var action = _step9.value;\n\n          if (action === 'insert') {\n            insertAt(domElement, i, expectedDomChildren[i]);\n            i++;\n          } else if (action === 'delete') {\n            nodesToUnbind.add(actualDomChildren[i]);\n            remove(actualDomChildren[i]);\n          } else {\n            // 'equal'\n            // Force updating text nodes inside elements which did not change and do not need to be re-rendered (#1125).\n            this._markDescendantTextToSync(this.domConverter.domToView(expectedDomChildren[i]));\n\n            i++;\n          }\n        } // Unbind removed nodes. When node does not have a parent it means that it was removed from DOM tree during\n        // comparision with the expected DOM. We don't need to check child nodes, because if child node was reinserted,\n        // it was moved to DOM tree out of the removed node.\n\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      var _iterator10 = _createForOfIteratorHelper(nodesToUnbind),\n          _step10;\n\n      try {\n        for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n          var node = _step10.value;\n\n          if (!node.parentNode) {\n            this.domConverter.unbindDomElement(node);\n          }\n        }\n      } catch (err) {\n        _iterator10.e(err);\n      } finally {\n        _iterator10.f();\n      }\n    }\n    /**\n     * Shorthand for diffing two arrays or node lists of DOM nodes.\n     *\n     * @private\n     * @param {Array.<Node>|NodeList} actualDomChildren Actual DOM children\n     * @param {Array.<Node>|NodeList} expectedDomChildren Expected DOM children.\n     * @returns {Array.<String>} The list of actions based on the {@link module:utils/diff~diff} function.\n     */\n\n  }, {\n    key: \"_diffNodeLists\",\n    value: function _diffNodeLists(actualDomChildren, expectedDomChildren) {\n      actualDomChildren = filterOutFakeSelectionContainer(actualDomChildren, this._fakeSelectionContainer);\n      return diff(actualDomChildren, expectedDomChildren, sameNodes.bind(null, this.domConverter));\n    }\n    /**\n     * Finds DOM nodes that were replaced with the similar nodes (same tag name) in the view. All nodes are compared\n     * within one `insert`/`delete` action group, for example:\n     *\n     * \t\tActual DOM:\t\t<p><b>Foo</b>Bar<i>Baz</i><b>Bax</b></p>\n     * \t\tExpected DOM:\t<p>Bar<b>123</b><i>Baz</i><b>456</b></p>\n     * \t\tInput actions:\t[ insert, insert, delete, delete, equal, insert, delete ]\n     * \t\tOutput actions:\t[ insert, replace, delete, equal, replace ]\n     *\n     * @private\n     * @param {Array.<String>} actions Actions array which is a result of the {@link module:utils/diff~diff} function.\n     * @param {Array.<Node>|NodeList} actualDom Actual DOM children\n     * @param {Array.<Node>} expectedDom Expected DOM children.\n     * @returns {Array.<String>} Actions array modified with the `replace` actions.\n     */\n\n  }, {\n    key: \"_findReplaceActions\",\n    value: function _findReplaceActions(actions, actualDom, expectedDom) {\n      // If there is no both 'insert' and 'delete' actions, no need to check for replaced elements.\n      if (actions.indexOf('insert') === -1 || actions.indexOf('delete') === -1) {\n        return actions;\n      }\n\n      var newActions = [];\n      var actualSlice = [];\n      var expectedSlice = [];\n      var counter = {\n        equal: 0,\n        insert: 0,\n        delete: 0\n      };\n\n      var _iterator11 = _createForOfIteratorHelper(actions),\n          _step11;\n\n      try {\n        for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n          var action = _step11.value;\n\n          if (action === 'insert') {\n            expectedSlice.push(expectedDom[counter.equal + counter.insert]);\n          } else if (action === 'delete') {\n            actualSlice.push(actualDom[counter.equal + counter.delete]);\n          } else {\n            // equal\n            newActions = newActions.concat(diff(actualSlice, expectedSlice, areSimilar).map(function (x) {\n              return x === 'equal' ? 'replace' : x;\n            }));\n            newActions.push('equal'); // Reset stored elements on 'equal'.\n\n            actualSlice = [];\n            expectedSlice = [];\n          }\n\n          counter[action]++;\n        }\n      } catch (err) {\n        _iterator11.e(err);\n      } finally {\n        _iterator11.f();\n      }\n\n      return newActions.concat(diff(actualSlice, expectedSlice, areSimilar).map(function (x) {\n        return x === 'equal' ? 'replace' : x;\n      }));\n    }\n    /**\n     * Marks text nodes to be synchronized.\n     *\n     * If a text node is passed, it will be marked. If an element is passed, all descendant text nodes inside it will be marked.\n     *\n     * @private\n     * @param {module:engine/view/node~Node} viewNode View node to sync.\n     */\n\n  }, {\n    key: \"_markDescendantTextToSync\",\n    value: function _markDescendantTextToSync(viewNode) {\n      if (!viewNode) {\n        return;\n      }\n\n      if (viewNode.is('text')) {\n        this.markedTexts.add(viewNode);\n      } else if (viewNode.is('element')) {\n        var _iterator12 = _createForOfIteratorHelper(viewNode.getChildren()),\n            _step12;\n\n        try {\n          for (_iterator12.s(); !(_step12 = _iterator12.n()).done;) {\n            var child = _step12.value;\n\n            this._markDescendantTextToSync(child);\n          }\n        } catch (err) {\n          _iterator12.e(err);\n        } finally {\n          _iterator12.f();\n        }\n      }\n    }\n    /**\n     * Checks if the selection needs to be updated and possibly updates it.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_updateSelection\",\n    value: function _updateSelection() {\n      // If there is no selection - remove DOM and fake selections.\n      if (this.selection.rangeCount === 0) {\n        this._removeDomSelection();\n\n        this._removeFakeSelection();\n\n        return;\n      }\n\n      var domRoot = this.domConverter.mapViewToDom(this.selection.editableElement); // Do nothing if there is no focus, or there is no DOM element corresponding to selection's editable element.\n\n      if (!this.isFocused || !domRoot) {\n        return;\n      } // Render selection.\n\n\n      if (this.selection.isFake) {\n        this._updateFakeSelection(domRoot);\n      } else {\n        this._removeFakeSelection();\n\n        this._updateDomSelection(domRoot);\n      }\n    }\n    /**\n     * Updates the fake selection.\n     *\n     * @private\n     * @param {HTMLElement} domRoot A valid DOM root where the fake selection container should be added.\n     */\n\n  }, {\n    key: \"_updateFakeSelection\",\n    value: function _updateFakeSelection(domRoot) {\n      var domDocument = domRoot.ownerDocument;\n\n      if (!this._fakeSelectionContainer) {\n        this._fakeSelectionContainer = createFakeSelectionContainer(domDocument);\n      }\n\n      var container = this._fakeSelectionContainer; // Bind fake selection container with the current selection *position*.\n\n      this.domConverter.bindFakeSelection(container, this.selection);\n\n      if (!this._fakeSelectionNeedsUpdate(domRoot)) {\n        return;\n      }\n\n      if (!container.parentElement || container.parentElement != domRoot) {\n        domRoot.appendChild(container);\n      }\n\n      container.textContent = this.selection.fakeSelectionLabel || \"\\xA0\";\n      var domSelection = domDocument.getSelection();\n      var domRange = domDocument.createRange();\n      domSelection.removeAllRanges();\n      domRange.selectNodeContents(container);\n      domSelection.addRange(domRange);\n    }\n    /**\n     * Updates the DOM selection.\n     *\n     * @private\n     * @param {HTMLElement} domRoot A valid DOM root where the DOM selection should be rendered.\n     */\n\n  }, {\n    key: \"_updateDomSelection\",\n    value: function _updateDomSelection(domRoot) {\n      var domSelection = domRoot.ownerDocument.defaultView.getSelection(); // Let's check whether DOM selection needs updating at all.\n\n      if (!this._domSelectionNeedsUpdate(domSelection)) {\n        return;\n      } // Multi-range selection is not available in most browsers, and, at least in Chrome, trying to\n      // set such selection, that is not continuous, throws an error. Because of that, we will just use anchor\n      // and focus of view selection.\n      // Since we are not supporting multi-range selection, we also do not need to check if proper editable is\n      // selected. If there is any editable selected, it is okay (editable is taken from selection anchor).\n\n\n      var anchor = this.domConverter.viewPositionToDom(this.selection.anchor);\n      var focus = this.domConverter.viewPositionToDom(this.selection.focus); // Focus the new editing host.\n      // Otherwise, FF may throw an error (https://github.com/ckeditor/ckeditor5/issues/721).\n\n      domRoot.focus();\n      domSelection.collapse(anchor.parent, anchor.offset);\n      domSelection.extend(focus.parent, focus.offset); // Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n\n      if (env.isGecko) {\n        fixGeckoSelectionAfterBr(focus, domSelection);\n      }\n    }\n    /**\n     * Checks whether a given DOM selection needs to be updated.\n     *\n     * @private\n     * @param {Selection} domSelection The DOM selection to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_domSelectionNeedsUpdate\",\n    value: function _domSelectionNeedsUpdate(domSelection) {\n      if (!this.domConverter.isDomSelectionCorrect(domSelection)) {\n        // Current DOM selection is in incorrect position. We need to update it.\n        return true;\n      }\n\n      var oldViewSelection = domSelection && this.domConverter.domSelectionToView(domSelection);\n\n      if (oldViewSelection && this.selection.isEqual(oldViewSelection)) {\n        return false;\n      } // If selection is not collapsed, it does not need to be updated if it is similar.\n\n\n      if (!this.selection.isCollapsed && this.selection.isSimilar(oldViewSelection)) {\n        // Selection did not changed and is correct, do not update.\n        return false;\n      } // Selections are not similar.\n\n\n      return true;\n    }\n    /**\n     * Checks whether the fake selection needs to be updated.\n     *\n     * @private\n     * @param {HTMLElement} domRoot A valid DOM root where a new fake selection container should be added.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_fakeSelectionNeedsUpdate\",\n    value: function _fakeSelectionNeedsUpdate(domRoot) {\n      var container = this._fakeSelectionContainer;\n      var domSelection = domRoot.ownerDocument.getSelection(); // Fake selection needs to be updated if there's no fake selection container, or the container currently sits\n      // in a different root.\n\n      if (!container || container.parentElement !== domRoot) {\n        return true;\n      } // Make sure that the selection actually is within the fake selection.\n\n\n      if (domSelection.anchorNode !== container && !container.contains(domSelection.anchorNode)) {\n        return true;\n      }\n\n      return container.textContent !== this.selection.fakeSelectionLabel;\n    }\n    /**\n     * Removes the DOM selection.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_removeDomSelection\",\n    value: function _removeDomSelection() {\n      var _iterator13 = _createForOfIteratorHelper(this.domDocuments),\n          _step13;\n\n      try {\n        for (_iterator13.s(); !(_step13 = _iterator13.n()).done;) {\n          var doc = _step13.value;\n          var domSelection = doc.getSelection();\n\n          if (domSelection.rangeCount) {\n            var activeDomElement = doc.activeElement;\n            var viewElement = this.domConverter.mapDomToView(activeDomElement);\n\n            if (activeDomElement && viewElement) {\n              doc.getSelection().removeAllRanges();\n            }\n          }\n        }\n      } catch (err) {\n        _iterator13.e(err);\n      } finally {\n        _iterator13.f();\n      }\n    }\n    /**\n     * Removes the fake selection.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_removeFakeSelection\",\n    value: function _removeFakeSelection() {\n      var container = this._fakeSelectionContainer;\n\n      if (container) {\n        container.remove();\n      }\n    }\n    /**\n     * Checks if focus needs to be updated and possibly updates it.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_updateFocus\",\n    value: function _updateFocus() {\n      if (this.isFocused) {\n        var editable = this.selection.editableElement;\n\n        if (editable) {\n          this.domConverter.focus(editable);\n        }\n      }\n    }\n  }]);\n\n  return Renderer;\n}();\n\nexport { Renderer as default };\nmix(Renderer, ObservableMixin); // Checks if provided element is editable.\n//\n// @private\n// @param {module:engine/view/element~Element} element\n// @returns {Boolean}\n\nfunction isEditable(element) {\n  if (element.getAttribute('contenteditable') == 'false') {\n    return false;\n  }\n\n  var parent = element.findAncestor(function (element) {\n    return element.hasAttribute('contenteditable');\n  });\n  return !parent || parent.getAttribute('contenteditable') == 'true';\n} // Adds inline filler at a given position.\n//\n// The position can be given as an array of DOM nodes and an offset in that array,\n// or a DOM parent element and an offset in that element.\n//\n// @private\n// @param {Document} domDocument\n// @param {Element|Array.<Node>} domParentOrArray\n// @param {Number} offset\n// @returns {Text} The DOM text node that contains an inline filler.\n\n\nfunction addInlineFiller(domDocument, domParentOrArray, offset) {\n  var childNodes = domParentOrArray instanceof Array ? domParentOrArray : domParentOrArray.childNodes;\n  var nodeAfterFiller = childNodes[offset];\n\n  if (isText(nodeAfterFiller)) {\n    nodeAfterFiller.data = INLINE_FILLER + nodeAfterFiller.data;\n    return nodeAfterFiller;\n  } else {\n    var fillerNode = domDocument.createTextNode(INLINE_FILLER);\n\n    if (Array.isArray(domParentOrArray)) {\n      childNodes.splice(offset, 0, fillerNode);\n    } else {\n      insertAt(domParentOrArray, offset, fillerNode);\n    }\n\n    return fillerNode;\n  }\n} // Whether two DOM nodes should be considered as similar.\n// Nodes are considered similar if they have the same tag name.\n//\n// @private\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\n\n\nfunction areSimilar(node1, node2) {\n  return isNode(node1) && isNode(node2) && !isText(node1) && !isText(node2) && node1.tagName.toLowerCase() === node2.tagName.toLowerCase();\n} // Whether two dom nodes should be considered as the same.\n// Two nodes which are considered the same are:\n//\n//\t\t* Text nodes with the same text.\n//\t\t* Element nodes represented by the same object.\n//\t\t* Two block filler elements.\n//\n// @private\n// @param {String} blockFillerMode Block filler mode, see {@link module:engine/view/domconverter~DomConverter#blockFillerMode}.\n// @param {Node} node1\n// @param {Node} node2\n// @returns {Boolean}\n\n\nfunction sameNodes(domConverter, actualDomChild, expectedDomChild) {\n  // Elements.\n  if (actualDomChild === expectedDomChild) {\n    return true;\n  } // Texts.\n  else if (isText(actualDomChild) && isText(expectedDomChild)) {\n      return actualDomChild.data === expectedDomChild.data;\n    } // Block fillers.\n    else if (domConverter.isBlockFiller(actualDomChild) && domConverter.isBlockFiller(expectedDomChild)) {\n        return true;\n      } // Not matching types.\n\n\n  return false;\n} // The following is a Firefox–specific hack (https://github.com/ckeditor/ckeditor5-engine/issues/1439).\n// When the native DOM selection is at the end of the block and preceded by <br /> e.g.\n//\n//\t\t<p>foo<br/>[]</p>\n//\n// which happens a lot when using the soft line break, the browser fails to (visually) move the\n// caret to the new line. A quick fix is as simple as force–refreshing the selection with the same range.\n\n\nfunction fixGeckoSelectionAfterBr(focus, domSelection) {\n  var parent = focus.parent; // This fix works only when the focus point is at the very end of an element.\n  // There is no point in running it in cases unrelated to the browser bug.\n\n  if (parent.nodeType != Node.ELEMENT_NODE || focus.offset != parent.childNodes.length - 1) {\n    return;\n  }\n\n  var childAtOffset = parent.childNodes[focus.offset]; // To stay on the safe side, the fix being as specific as possible, it targets only the\n  // selection which is at the very end of the element and preceded by <br />.\n\n  if (childAtOffset && childAtOffset.tagName == 'BR') {\n    domSelection.addRange(domSelection.getRangeAt(0));\n  }\n}\n\nfunction filterOutFakeSelectionContainer(domChildList, fakeSelectionContainer) {\n  var childList = Array.from(domChildList);\n\n  if (childList.length == 0 || !fakeSelectionContainer) {\n    return childList;\n  }\n\n  var last = childList[childList.length - 1];\n\n  if (last == fakeSelectionContainer) {\n    childList.pop();\n  }\n\n  return childList;\n} // Creates a fake selection container for a given document.\n//\n// @private\n// @param {Document} domDocument\n// @returns {HTMLElement}\n\n\nfunction createFakeSelectionContainer(domDocument) {\n  var container = domDocument.createElement('div');\n  Object.assign(container.style, {\n    position: 'fixed',\n    top: 0,\n    left: '-9999px',\n    // See https://github.com/ckeditor/ckeditor5/issues/752.\n    width: '42px'\n  }); // Fill it with a text node so we can update it later.\n\n  container.textContent = \"\\xA0\";\n  return container;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/rooteditableelement\n */\nimport EditableElement from \"./editableelement\";\nvar rootNameSymbol = Symbol('rootName');\n/**\n * Class representing a single root in the data view. A root can be either {@link ~RootEditableElement#isReadOnly editable or read-only},\n * but in both cases it is called \"an editable\". Roots can contain other {@link module:engine/view/editableelement~EditableElement\n * editable elements} making them \"nested editables\".\n *\n * @extends module:engine/view/editableelement~EditableElement\n */\n\nvar RootEditableElement = /*#__PURE__*/function (_EditableElement) {\n  _inherits(RootEditableElement, _EditableElement);\n\n  var _super = _createSuper(RootEditableElement);\n\n  /**\n   * Creates root editable element.\n   *\n   * @param {String} name Node name.\n   */\n  function RootEditableElement(name) {\n    var _this;\n\n    _classCallCheck(this, RootEditableElement);\n\n    _this = _super.call(this, name);\n    /**\n     * Name of this root inside {@link module:engine/view/document~Document} that is an owner of this root. If no\n     * other name is set, `main` name is used.\n     *\n     * @readonly\n     * @member {String}\n     */\n\n    _this.rootName = 'main';\n    return _this;\n  }\n  /**\n   * Checks whether this object is of the given.\n   *\n   *\t\trootEditableElement.is( 'rootEditableElement' ); // -> true\n   *\t\trootEditableElement.is( 'editableElement' ); // -> true\n   *\t\trootEditableElement.is( 'element' ); // -> true\n   *\t\trootEditableElement.is( 'node' ); // -> true\n   *\t\trootEditableElement.is( 'view:rootEditableElement' ); // -> true\n   *\t\trootEditableElement.is( 'view:editableElement' ); // -> true\n   *\t\trootEditableElement.is( 'view:element' ); // -> true\n   *\t\trootEditableElement.is( 'view:node' ); // -> true\n   *\n   *\t\trootEditableElement.is( 'model:element' ); // -> false\n   *\t\trootEditableElement.is( 'documentFragment' ); // -> false\n   *\n   * Assuming that the object being checked is a root editbale element, you can also check its\n   * {@link module:engine/view/rooteditableelement~RootEditableElement#name name}:\n   *\n   *\t\trootEditableElement.is( 'div' ); // -> true if this is a div root editable element\n   *\t\trootEditableElement.is( 'rootEditableElement', 'div' ); // -> same as above\n   *\t\ttext.is( 'div' ); -> false\n   *\n   * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n   *\n   * @param {String} type Type to check when `name` parameter is present.\n   * Otherwise, it acts like the `name` parameter.\n   * @param {String} [name] Element name.\n   * @returns {Boolean}\n   */\n\n\n  _createClass(RootEditableElement, [{\n    key: \"is\",\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type.replace(/^view:/, '');\n\n      if (!name) {\n        return cutType == 'rootElement' || _get(_getPrototypeOf(RootEditableElement.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'rootElement' && name == this.name || _get(_getPrototypeOf(RootEditableElement.prototype), \"is\", this).call(this, type, name);\n      }\n    }\n  }, {\n    key: \"rootName\",\n    get: function get() {\n      return this.getCustomProperty(rootNameSymbol);\n    },\n    set: function set(rootName) {\n      this._setCustomProperty(rootNameSymbol, rootName);\n    }\n    /**\n     * Overrides old element name and sets new one.\n     * This is needed because view roots are created before they are attached to the DOM.\n     * The name of the root element is temporary at this stage. It has to be changed when the\n     * view root element is attached to the DOM element.\n     *\n     * @protected\n     * @param {String} name The new name of element.\n     */\n\n  }, {\n    key: \"_name\",\n    set: function set(name) {\n      this.name = name;\n    }\n  }]);\n\n  return RootEditableElement;\n}(EditableElement);\n\nexport { RootEditableElement as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.string.anchor\";\nimport \"regenerator-runtime/runtime\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/selection\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Range from \"./range\";\nimport Position from \"./position\";\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport Node from \"./node\";\nimport Element from \"./element\";\nimport count from '@ckeditor/ckeditor5-utils/src/count';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\nimport DocumentSelection from \"./documentselection\";\n/**\n * Class representing an arbirtary selection in the view.\n * See also {@link module:engine/view/documentselection~DocumentSelection}.\n *\n * New selection instances can be created via the constructor or one these methods:\n *\n * * {@link module:engine/view/view~View#createSelection `View#createSelection()`},\n * * {@link module:engine/view/upcastwriter~UpcastWriter#createSelection `UpcastWriter#createSelection()`}.\n *\n * A selection can consist of {@link module:engine/view/range~Range ranges} that can be set by using\n * the {@link module:engine/view/selection~Selection#setTo `Selection#setTo()`} method.\n */\n\nvar Selection = /*#__PURE__*/function () {\n  /**\n   * Creates new selection instance.\n   *\n   * **Note**: The selection constructor is available as a factory method:\n   *\n   * * {@link module:engine/view/view~View#createSelection `View#createSelection()`},\n   * * {@link module:engine/view/upcastwriter~UpcastWriter#createSelection `UpcastWriter#createSelection()`}.\n   *\n   * \t\t// Creates empty selection without ranges.\n   *\t\tconst selection = writer.createSelection();\n   *\n   *\t\t// Creates selection at the given range.\n   *\t\tconst range = writer.createRange( start, end );\n   *\t\tconst selection = writer.createSelection( range );\n   *\n   *\t\t// Creates selection at the given ranges\n   * \t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n   *\t\tconst selection = writer.createSelection( ranges );\n   *\n   *\t\t// Creates selection from the other selection.\n   *\t\tconst otherSelection = writer.createSelection();\n   *\t\tconst selection = writer.createSelection( otherSelection );\n   *\n   *\t\t// Creates selection from the document selection.\n   *\t\tconst selection = writer.createSelection( editor.editing.view.document.selection );\n   *\n   * \t\t// Creates selection at the given position.\n   *\t\tconst position = writer.createPositionFromPath( root, path );\n   *\t\tconst selection = writer.createSelection( position );\n   *\n   *\t\t// Creates collapsed selection at the position of given item and offset.\n   *\t\tconst paragraph = writer.createContainerElement( 'paragraph' );\n   *\t\tconst selection = writer.createSelection( paragraph, offset );\n   *\n   *\t\t// Creates a range inside an {@link module:engine/view/element~Element element} which starts before the\n   *\t\t// first child of that element and ends after the last child of that element.\n   *\t\tconst selection = writer.createSelection( paragraph, 'in' );\n   *\n   *\t\t// Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends\n   *\t\t// just after the item.\n   *\t\tconst selection = writer.createSelection( paragraph, 'on' );\n   *\n   * `Selection`'s constructor allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n   *\n   *\t\t// Creates backward selection.\n   *\t\tconst selection = writer.createSelection( range, { backward: true } );\n   *\n   * Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n   * This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n   * represented in other way, for example by applying proper CSS class.\n   *\n   * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM\n   * (and be  properly handled by screen readers).\n   *\n   *\t\t// Creates fake selection with label.\n   *\t\tconst selection = writer.createSelection( range, { fake: true, label: 'foo' } );\n   *\n   * @param {module:engine/view/selection~Selectable} [selectable=null]\n   * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.\n   * @param {Object} [options]\n   * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n   * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n   * @param {String} [options.label] Label for the fake selection.\n   */\n  function Selection() {\n    var selectable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n    var placeOrOffset = arguments.length > 1 ? arguments[1] : undefined;\n    var options = arguments.length > 2 ? arguments[2] : undefined;\n\n    _classCallCheck(this, Selection);\n\n    /**\n     * Stores all ranges that are selected.\n     *\n     * @protected\n     * @member {Array.<module:engine/view/range~Range>}\n     */\n    this._ranges = [];\n    /**\n     * Specifies whether the last added range was added as a backward or forward range.\n     *\n     * @protected\n     * @member {Boolean}\n     */\n\n    this._lastRangeBackward = false;\n    /**\n     * Specifies whether selection instance is fake.\n     *\n     * @private\n     * @member {Boolean}\n     */\n\n    this._isFake = false;\n    /**\n     * Fake selection's label.\n     *\n     * @private\n     * @member {String}\n     */\n\n    this._fakeSelectionLabel = '';\n    this.setTo(selectable, placeOrOffset, options);\n  }\n  /**\n   * Returns true if selection instance is marked as `fake`.\n   *\n   * @see #setTo\n   * @returns {Boolean}\n   */\n\n\n  _createClass(Selection, [{\n    key: \"getRanges\",\n\n    /**\n     * Returns an iterable that contains copies of all ranges added to the selection.\n     *\n     * @returns {Iterable.<module:engine/view/range~Range>}\n     */\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getRanges() {\n      var _iterator, _step, range;\n\n      return regeneratorRuntime.wrap(function getRanges$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _iterator = _createForOfIteratorHelper(this._ranges);\n              _context.prev = 1;\n\n              _iterator.s();\n\n            case 3:\n              if ((_step = _iterator.n()).done) {\n                _context.next = 9;\n                break;\n              }\n\n              range = _step.value;\n              _context.next = 7;\n              return range.clone();\n\n            case 7:\n              _context.next = 3;\n              break;\n\n            case 9:\n              _context.next = 14;\n              break;\n\n            case 11:\n              _context.prev = 11;\n              _context.t0 = _context[\"catch\"](1);\n\n              _iterator.e(_context.t0);\n\n            case 14:\n              _context.prev = 14;\n\n              _iterator.f();\n\n              return _context.finish(14);\n\n            case 17:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, getRanges, this, [[1, 11, 14, 17]]);\n    })\n    /**\n     * Returns copy of the first range in the selection. First range is the one which\n     * {@link module:engine/view/range~Range#start start} position {@link module:engine/view/position~Position#isBefore is before} start\n     * position of all other ranges (not to confuse with the first range added to the selection).\n     * Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/range~Range|null}\n     */\n\n  }, {\n    key: \"getFirstRange\",\n    value: function getFirstRange() {\n      var first = null;\n\n      var _iterator2 = _createForOfIteratorHelper(this._ranges),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var range = _step2.value;\n\n          if (!first || range.start.isBefore(first.start)) {\n            first = range;\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      return first ? first.clone() : null;\n    }\n    /**\n     * Returns copy of the last range in the selection. Last range is the one which {@link module:engine/view/range~Range#end end}\n     * position {@link module:engine/view/position~Position#isAfter is after} end position of all other ranges (not to confuse\n     * with the last range added to the selection). Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/range~Range|null}\n     */\n\n  }, {\n    key: \"getLastRange\",\n    value: function getLastRange() {\n      var last = null;\n\n      var _iterator3 = _createForOfIteratorHelper(this._ranges),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var range = _step3.value;\n\n          if (!last || range.end.isAfter(last.end)) {\n            last = range;\n          }\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      return last ? last.clone() : null;\n    }\n    /**\n     * Returns copy of the first position in the selection. First position is the position that\n     * {@link module:engine/view/position~Position#isBefore is before} any other position in the selection ranges.\n     * Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/position~Position|null}\n     */\n\n  }, {\n    key: \"getFirstPosition\",\n    value: function getFirstPosition() {\n      var firstRange = this.getFirstRange();\n      return firstRange ? firstRange.start.clone() : null;\n    }\n    /**\n     * Returns copy of the last position in the selection. Last position is the position that\n     * {@link module:engine/view/position~Position#isAfter is after} any other position in the selection ranges.\n     * Returns `null` if no ranges are added to selection.\n     *\n     * @returns {module:engine/view/position~Position|null}\n     */\n\n  }, {\n    key: \"getLastPosition\",\n    value: function getLastPosition() {\n      var lastRange = this.getLastRange();\n      return lastRange ? lastRange.end.clone() : null;\n    }\n    /**\n     * Checks whether, this selection is equal to given selection. Selections are equal if they have same directions,\n     * same number of ranges and all ranges from one selection equal to a range from other selection.\n     *\n     * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} otherSelection\n     * Selection to compare with.\n     * @returns {Boolean} `true` if selections are equal, `false` otherwise.\n     */\n\n  }, {\n    key: \"isEqual\",\n    value: function isEqual(otherSelection) {\n      if (this.isFake != otherSelection.isFake) {\n        return false;\n      }\n\n      if (this.isFake && this.fakeSelectionLabel != otherSelection.fakeSelectionLabel) {\n        return false;\n      }\n\n      if (this.rangeCount != otherSelection.rangeCount) {\n        return false;\n      } else if (this.rangeCount === 0) {\n        return true;\n      }\n\n      if (!this.anchor.isEqual(otherSelection.anchor) || !this.focus.isEqual(otherSelection.focus)) {\n        return false;\n      }\n\n      var _iterator4 = _createForOfIteratorHelper(this._ranges),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var thisRange = _step4.value;\n          var found = false;\n\n          var _iterator5 = _createForOfIteratorHelper(otherSelection._ranges),\n              _step5;\n\n          try {\n            for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n              var otherRange = _step5.value;\n\n              if (thisRange.isEqual(otherRange)) {\n                found = true;\n                break;\n              }\n            }\n          } catch (err) {\n            _iterator5.e(err);\n          } finally {\n            _iterator5.f();\n          }\n\n          if (!found) {\n            return false;\n          }\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      return true;\n    }\n    /**\n     * Checks whether this selection is similar to given selection. Selections are similar if they have same directions, same\n     * number of ranges, and all {@link module:engine/view/range~Range#getTrimmed trimmed} ranges from one selection are\n     * equal to any trimmed range from other selection.\n     *\n     * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} otherSelection\n     * Selection to compare with.\n     * @returns {Boolean} `true` if selections are similar, `false` otherwise.\n     */\n\n  }, {\n    key: \"isSimilar\",\n    value: function isSimilar(otherSelection) {\n      if (this.isBackward != otherSelection.isBackward) {\n        return false;\n      }\n\n      var numOfRangesA = count(this.getRanges());\n      var numOfRangesB = count(otherSelection.getRanges()); // If selections have different number of ranges, they cannot be similar.\n\n      if (numOfRangesA != numOfRangesB) {\n        return false;\n      } // If both selections have no ranges, they are similar.\n\n\n      if (numOfRangesA == 0) {\n        return true;\n      } // Check if each range in one selection has a similar range in other selection.\n\n\n      var _iterator6 = _createForOfIteratorHelper(this.getRanges()),\n          _step6;\n\n      try {\n        for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n          var rangeA = _step6.value;\n          rangeA = rangeA.getTrimmed();\n          var found = false;\n\n          var _iterator7 = _createForOfIteratorHelper(otherSelection.getRanges()),\n              _step7;\n\n          try {\n            for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n              var rangeB = _step7.value;\n              rangeB = rangeB.getTrimmed();\n\n              if (rangeA.start.isEqual(rangeB.start) && rangeA.end.isEqual(rangeB.end)) {\n                found = true;\n                break;\n              }\n            } // For `rangeA`, neither range in `otherSelection` was similar. So selections are not similar.\n\n          } catch (err) {\n            _iterator7.e(err);\n          } finally {\n            _iterator7.f();\n          }\n\n          if (!found) {\n            return false;\n          }\n        } // There were no ranges that weren't matched. Selections are similar.\n\n      } catch (err) {\n        _iterator6.e(err);\n      } finally {\n        _iterator6.f();\n      }\n\n      return true;\n    }\n    /**\n     * Returns the selected element. {@link module:engine/view/element~Element Element} is considered as selected if there is only\n     * one range in the selection, and that range contains exactly one element.\n     * Returns `null` if there is no selected element.\n     *\n     * @returns {module:engine/view/element~Element|null}\n     */\n\n  }, {\n    key: \"getSelectedElement\",\n    value: function getSelectedElement() {\n      if (this.rangeCount !== 1) {\n        return null;\n      }\n\n      var range = this.getFirstRange();\n      var nodeAfterStart = range.start.nodeAfter;\n      var nodeBeforeEnd = range.end.nodeBefore; // Handle the situation when selection position is at the beginning / at the end of a text node.\n      // In such situation `.nodeAfter` and `.nodeBefore` are `null` but the selection still might be spanning\n      // over one element.\n      //\n      // <p>Foo{<span class=\"widget\"></span>}bar</p> vs <p>Foo[<span class=\"widget\"></span>]bar</p>\n      //\n      // These are basically the same selections, only the difference is if the selection position is at\n      // at the end/at the beginning of a text node or just before/just after the text node.\n      //\n\n      if (range.start.parent.is('text') && range.start.isAtEnd && range.start.parent.nextSibling) {\n        nodeAfterStart = range.start.parent.nextSibling;\n      }\n\n      if (range.end.parent.is('text') && range.end.isAtStart && range.end.parent.previousSibling) {\n        nodeBeforeEnd = range.end.parent.previousSibling;\n      }\n\n      return nodeAfterStart instanceof Element && nodeAfterStart == nodeBeforeEnd ? nodeAfterStart : null;\n    }\n    /**\n     * Sets this selection's ranges and direction to the specified location based on the given\n     * {@link module:engine/view/selection~Selectable selectable}.\n     *\n     *\t\t// Sets selection to the given range.\n     *\t\tconst range = writer.createRange( start, end );\n     *\t\tselection.setTo( range );\n     *\n     *\t\t// Sets selection to given ranges.\n     * \t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n     *\t\tselection.setTo( range );\n     *\n     *\t\t// Sets selection to the other selection.\n     *\t\tconst otherSelection = writer.createSelection();\n     *\t\tselection.setTo( otherSelection );\n     *\n     *\t \t// Sets selection to contents of DocumentSelection.\n     *\t\tselection.setTo( editor.editing.view.document.selection );\n     *\n     * \t\t// Sets collapsed selection at the given position.\n     *\t\tconst position = writer.createPositionAt( root, path );\n     *\t\tselection.setTo( position );\n     *\n     * \t\t// Sets collapsed selection at the position of given item and offset.\n     *\t\tselection.setTo( paragraph, offset );\n     *\n     * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     *\t\tselection.setTo( paragraph, 'in' );\n     *\n     * Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends just after the item.\n     *\n     *\t\tselection.setTo( paragraph, 'on' );\n     *\n     * \t\t// Clears selection. Removes all ranges.\n     *\t\tselection.setTo( null );\n     *\n     * `Selection#setTo()` method allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n     *\n     *\t\t// Sets selection as backward.\n     *\t\tselection.setTo( range, { backward: true } );\n     *\n     * Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n     * This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n     * represented in other way, for example by applying proper CSS class.\n     *\n     * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM\n     * (and be  properly handled by screen readers).\n     *\n     *\t\t// Creates fake selection with label.\n     *\t\tselection.setTo( range, { fake: true, label: 'foo' } );\n     *\n     * @fires change\n     * @param {module:engine/view/selection~Selectable} selectable\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Sets place or offset of the selection.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n     * @param {String} [options.label] Label for the fake selection.\n     */\n\n  }, {\n    key: \"setTo\",\n    value: function setTo(selectable, placeOrOffset, options) {\n      if (selectable === null) {\n        this._setRanges([]);\n\n        this._setFakeOptions(placeOrOffset);\n      } else if (selectable instanceof Selection || selectable instanceof DocumentSelection) {\n        this._setRanges(selectable.getRanges(), selectable.isBackward);\n\n        this._setFakeOptions({\n          fake: selectable.isFake,\n          label: selectable.fakeSelectionLabel\n        });\n      } else if (selectable instanceof Range) {\n        this._setRanges([selectable], placeOrOffset && placeOrOffset.backward);\n\n        this._setFakeOptions(placeOrOffset);\n      } else if (selectable instanceof Position) {\n        this._setRanges([new Range(selectable)]);\n\n        this._setFakeOptions(placeOrOffset);\n      } else if (selectable instanceof Node) {\n        var backward = !!options && !!options.backward;\n        var range;\n\n        if (placeOrOffset === undefined) {\n          /**\n           * selection.setTo requires the second parameter when the first parameter is a node.\n           *\n           * @error view-selection-setTo-required-second-parameter\n           */\n          throw new CKEditorError('view-selection-setTo-required-second-parameter: ' + 'selection.setTo requires the second parameter when the first parameter is a node.', this);\n        } else if (placeOrOffset == 'in') {\n          range = Range._createIn(selectable);\n        } else if (placeOrOffset == 'on') {\n          range = Range._createOn(selectable);\n        } else {\n          range = new Range(Position._createAt(selectable, placeOrOffset));\n        }\n\n        this._setRanges([range], backward);\n\n        this._setFakeOptions(options);\n      } else if (isIterable(selectable)) {\n        // We assume that the selectable is an iterable of ranges.\n        // Array.from() is used to prevent setting ranges to the old iterable\n        this._setRanges(selectable, placeOrOffset && placeOrOffset.backward);\n\n        this._setFakeOptions(placeOrOffset);\n      } else {\n        /**\n         * Cannot set selection to given place.\n         *\n         * @error view-selection-setTo-not-selectable\n         */\n        throw new CKEditorError('view-selection-setTo-not-selectable: Cannot set selection to given place.', this);\n      }\n\n      this.fire('change');\n    }\n    /**\n     * Moves {@link #focus} to the specified location.\n     *\n     * The location can be specified in the same form as {@link module:engine/view/view~View#createPositionAt view.createPositionAt()}\n     * parameters.\n     *\n     * @fires change\n     * @param {module:engine/view/item~Item|module:engine/view/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/view/item~Item view item}.\n     */\n\n  }, {\n    key: \"setFocus\",\n    value: function setFocus(itemOrPosition, offset) {\n      if (this.anchor === null) {\n        /**\n         * Cannot set selection focus if there are no ranges in selection.\n         *\n         * @error view-selection-setFocus-no-ranges\n         */\n        throw new CKEditorError('view-selection-setFocus-no-ranges: Cannot set selection focus if there are no ranges in selection.', this);\n      }\n\n      var newFocus = Position._createAt(itemOrPosition, offset);\n\n      if (newFocus.compareWith(this.focus) == 'same') {\n        return;\n      }\n\n      var anchor = this.anchor;\n\n      this._ranges.pop();\n\n      if (newFocus.compareWith(anchor) == 'before') {\n        this._addRange(new Range(newFocus, anchor), true);\n      } else {\n        this._addRange(new Range(anchor, newFocus));\n      }\n\n      this.fire('change');\n    }\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\tselection.is( 'selection' ); // -> true\n     *\t\tselection.is( 'view:selection' ); // -> true\n     *\n     *\t\tselection.is( 'model:selection' ); // -> false\n     *\t\tselection.is( 'element' ); // -> false\n     *\t\tselection.is( 'range' ); // -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"is\",\n    value: function is(type) {\n      return type == 'selection' || type == 'view:selection';\n    }\n    /**\n     * Replaces all ranges that were added to the selection with given array of ranges. Last range of the array\n     * is treated like the last added range and is used to set {@link #anchor anchor} and {@link #focus focus}.\n     * Accepts a flag describing in which way the selection is made.\n     *\n     * @private\n     * @param {Iterable.<module:engine/view/range~Range>} newRanges Iterable object of ranges to set.\n     * @param {Boolean} [isLastBackward=false] Flag describing if last added range was selected forward - from start to end\n     * (`false`) or backward - from end to start (`true`). Defaults to `false`.\n     */\n\n  }, {\n    key: \"_setRanges\",\n    value: function _setRanges(newRanges) {\n      var isLastBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      // New ranges should be copied to prevent removing them by setting them to `[]` first.\n      // Only applies to situations when selection is set to the same selection or same selection's ranges.\n      newRanges = Array.from(newRanges);\n      this._ranges = [];\n\n      var _iterator8 = _createForOfIteratorHelper(newRanges),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var range = _step8.value;\n\n          this._addRange(range);\n        }\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      this._lastRangeBackward = !!isLastBackward;\n    }\n    /**\n     * Sets this selection instance to be marked as `fake`. A fake selection does not render as browser native selection\n     * over selected elements and is hidden to the user. This way, no native selection UI artifacts are displayed to\n     * the user and selection over elements can be represented in other way, for example by applying proper CSS class.\n     *\n     * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM (and be\n     * properly handled by screen readers).\n     *\n     * @private\n     * @param {Object} [options] Options.\n     * @param {Boolean} [options.fake] If set to true selection will be marked as `fake`.\n     * @param {String} [options.label=''] Fake selection label.\n     */\n\n  }, {\n    key: \"_setFakeOptions\",\n    value: function _setFakeOptions() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      this._isFake = !!options.fake;\n      this._fakeSelectionLabel = options.fake ? options.label || '' : '';\n    }\n    /**\n     * Adds a range to the selection. Added range is copied. This means that passed range is not saved in the\n     * selection instance and you can safely operate on it.\n     *\n     * Accepts a flag describing in which way the selection is made - passed range might be selected from\n     * {@link module:engine/view/range~Range#start start} to {@link module:engine/view/range~Range#end end}\n     * or from {@link module:engine/view/range~Range#end end} to {@link module:engine/view/range~Range#start start}.\n     * The flag is used to set {@link #anchor anchor} and {@link #focus focus} properties.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-selection-range-intersects` if added range intersects\n     * with ranges already stored in Selection instance.\n     *\n     * @private\n     * @fires change\n     * @param {module:engine/view/range~Range} range\n     * @param {Boolean} [isBackward]\n     */\n\n  }, {\n    key: \"_addRange\",\n    value: function _addRange(range) {\n      var isBackward = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n      if (!(range instanceof Range)) {\n        /**\n         * Selection range set to an object that is not an instance of {@link module:engine/view/range~Range}.\n         *\n         * @error view-selection-add-range-not-range\n         */\n        throw new CKEditorError('view-selection-add-range-not-range: ' + 'Selection range set to an object that is not an instance of view.Range', this);\n      }\n\n      this._pushRange(range);\n\n      this._lastRangeBackward = !!isBackward;\n    }\n    /**\n     * Adds range to selection - creates copy of given range so it can be safely used and modified.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-selection-range-intersects` if added range intersects\n     * with ranges already stored in selection instance.\n     *\n     * @private\n     * @param {module:engine/view/range~Range} range\n     */\n\n  }, {\n    key: \"_pushRange\",\n    value: function _pushRange(range) {\n      var _iterator9 = _createForOfIteratorHelper(this._ranges),\n          _step9;\n\n      try {\n        for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n          var storedRange = _step9.value;\n\n          if (range.isIntersecting(storedRange)) {\n            /**\n             * Trying to add a range that intersects with another range from selection.\n             *\n             * @error view-selection-range-intersects\n             * @param {module:engine/view/range~Range} addedRange Range that was added to the selection.\n             * @param {module:engine/view/range~Range} intersectingRange Range from selection that intersects with `addedRange`.\n             */\n            throw new CKEditorError('view-selection-range-intersects: Trying to add a range that intersects with another range from selection.', this, {\n              addedRange: range,\n              intersectingRange: storedRange\n            });\n          }\n        }\n      } catch (err) {\n        _iterator9.e(err);\n      } finally {\n        _iterator9.f();\n      }\n\n      this._ranges.push(new Range(range.start, range.end));\n    }\n    /**\n     * Fired whenever selection ranges are changed through {@link ~Selection Selection API}.\n     *\n     * @event change\n     */\n\n  }, {\n    key: \"isFake\",\n    get: function get() {\n      return this._isFake;\n    }\n    /**\n     * Returns fake selection label.\n     *\n     * @see #setTo\n     * @returns {String}\n     */\n\n  }, {\n    key: \"fakeSelectionLabel\",\n    get: function get() {\n      return this._fakeSelectionLabel;\n    }\n    /**\n     * Selection anchor. Anchor may be described as a position where the selection starts. Together with\n     * {@link #focus focus} they define the direction of selection, which is important\n     * when expanding/shrinking selection. Anchor is always the start or end of the most recent added range.\n     * It may be a bit unintuitive when there are multiple ranges in selection.\n     *\n     * @see #focus\n     * @type {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"anchor\",\n    get: function get() {\n      if (!this._ranges.length) {\n        return null;\n      }\n\n      var range = this._ranges[this._ranges.length - 1];\n      var anchor = this._lastRangeBackward ? range.end : range.start;\n      return anchor.clone();\n    }\n    /**\n     * Selection focus. Focus is a position where the selection ends.\n     *\n     * @see #anchor\n     * @type {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"focus\",\n    get: function get() {\n      if (!this._ranges.length) {\n        return null;\n      }\n\n      var range = this._ranges[this._ranges.length - 1];\n      var focus = this._lastRangeBackward ? range.start : range.end;\n      return focus.clone();\n    }\n    /**\n     * Returns whether the selection is collapsed. Selection is collapsed when there is exactly one range which is\n     * collapsed.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isCollapsed\",\n    get: function get() {\n      return this.rangeCount === 1 && this._ranges[0].isCollapsed;\n    }\n    /**\n     * Returns number of ranges in selection.\n     *\n     * @type {Number}\n     */\n\n  }, {\n    key: \"rangeCount\",\n    get: function get() {\n      return this._ranges.length;\n    }\n    /**\n     * Specifies whether the {@link #focus} precedes {@link #anchor}.\n     *\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isBackward\",\n    get: function get() {\n      return !this.isCollapsed && this._lastRangeBackward;\n    }\n    /**\n     * {@link module:engine/view/editableelement~EditableElement EditableElement} instance that contains this selection, or `null`\n     * if the selection is not inside an editable element.\n     *\n     * @type {module:engine/view/editableelement~EditableElement|null}\n     */\n\n  }, {\n    key: \"editableElement\",\n    get: function get() {\n      if (this.anchor) {\n        return this.anchor.editableElement;\n      }\n\n      return null;\n    }\n  }]);\n\n  return Selection;\n}();\n\nexport { Selection as default };\nmix(Selection, EmitterMixin);\n/**\n * An entity that is used to set selection.\n *\n * See also {@link module:engine/view/selection~Selection#setTo}\n *\n * @typedef {\n *    module:engine/view/selection~Selection|\n *    module:engine/view/documentselection~DocumentSelection|\n *    module:engine/view/position~Position|\n *    Iterable.<module:engine/view/range~Range>|\n *    module:engine/view/range~Range|\n *    module:engine/view/item~Item|\n *    null\n * } module:engine/view/selection~Selectable\n */","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/text\n */\nimport Node from \"./node\";\n/**\n * Tree view text node.\n *\n * The constructor of this class shouldn't be used directly. To create new Text instances\n * use the {@link module:engine/view/downcastwriter~DowncastWriter#createText `DowncastWriter#createText()`}\n * method when working on data downcasted from the model or the\n * {@link module:engine/view/upcastwriter~UpcastWriter#createText `UpcastWriter#createText()`}\n * method when working on non-semantic views.\n *\n * @extends module:engine/view/node~Node\n */\n\nvar Text = /*#__PURE__*/function (_Node) {\n  _inherits(Text, _Node);\n\n  var _super = _createSuper(Text);\n\n  /**\n   * Creates a tree view text node.\n   *\n   * @protected\n   * @param {String} data The text's data.\n   */\n  function Text(data) {\n    var _this;\n\n    _classCallCheck(this, Text);\n\n    _this = _super.call(this);\n    /**\n     * The text content.\n     *\n     * Setting the data fires the {@link module:engine/view/node~Node#event:change:text change event}.\n     *\n     * @protected\n     * @member {String} module:engine/view/text~Text#_textData\n     */\n\n    _this._textData = data;\n    return _this;\n  }\n  /**\n   * Checks whether this object is of the given type.\n   *\n   *\t\ttext.is( 'text' ); // -> true\n   *\t\ttext.is( 'node' ); // -> true\n   *\t\ttext.is( 'view:text' ); // -> true\n   *\t\ttext.is( 'view:node' ); // -> true\n   *\n   *\t\ttext.is( 'model:text' ); // -> false\n   *\t\ttext.is( 'element' ); // -> false\n   *\t\ttext.is( 'range' ); // -> false\n   *\n   * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n   *\n   * @param {String} type\n   * @returns {Boolean}\n   */\n\n\n  _createClass(Text, [{\n    key: \"is\",\n    value: function is(type) {\n      return type == 'text' || type == 'view:text' || _get(_getPrototypeOf(Text.prototype), \"is\", this).call(this, type);\n    }\n    /**\n     * The text content.\n     *\n     * @readonly\n     * @type {String}\n     */\n\n  }, {\n    key: \"isSimilar\",\n\n    /**\n     * Checks if this text node is similar to other text node.\n     * Both nodes should have the same data to be considered as similar.\n     *\n     * @param {module:engine/view/text~Text} otherNode Node to check if it is same as this node.\n     * @returns {Boolean}\n     */\n    value: function isSimilar(otherNode) {\n      if (!(otherNode instanceof Text)) {\n        return false;\n      }\n\n      return this === otherNode || this.data === otherNode.data;\n    }\n    /**\n     * Clones this node.\n     *\n     * @protected\n     * @returns {module:engine/view/text~Text} Text node that is a clone of this node.\n     */\n\n  }, {\n    key: \"_clone\",\n    value: function _clone() {\n      return new Text(this.data);\n    }\n  }, {\n    key: \"data\",\n    get: function get() {\n      return this._textData;\n    }\n    /**\n     * This getter is required when using the addition assignment operator on protected property:\n     *\n     *\t\tconst foo = downcastWriter.createText( 'foo' );\n     *\t\tconst bar = downcastWriter.createText( 'bar' );\n     *\n     *\t\tfoo._data += bar.data;   // executes: `foo._data = foo._data + bar.data`\n     *\t\tconsole.log( foo.data ); // prints: 'foobar'\n     *\n     * If the protected getter didn't exist, `foo._data` will return `undefined` and result of the merge will be invalid.\n     *\n     * @protected\n     * @type {String}\n     */\n\n  }, {\n    key: \"_data\",\n    get: function get() {\n      return this.data;\n    }\n    /**\n     * Sets data and fires the {@link module:engine/view/node~Node#event:change:text change event}.\n     *\n     * @protected\n     * @fires change:text\n     * @param {String} data New data for the text node.\n     */\n    ,\n    set: function set(data) {\n      this._fireChange('text', this);\n\n      this._textData = data;\n    }\n  }]);\n\n  return Text;\n}(Node);\n\nexport { Text as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/textproxy\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * TextProxy is a wrapper for substring of {@link module:engine/view/text~Text}. Instance of this class is created by\n * {@link module:engine/view/treewalker~TreeWalker} when only a part of {@link module:engine/view/text~Text} needs to be returned.\n *\n * `TextProxy` has an API similar to {@link module:engine/view/text~Text Text} and allows to do most of the common tasks performed\n * on view nodes.\n *\n * **Note:** Some `TextProxy` instances may represent whole text node, not just a part of it.\n * See {@link module:engine/view/textproxy~TextProxy#isPartial}.\n *\n * **Note:** `TextProxy` is a readonly interface.\n *\n * **Note:** `TextProxy` instances are created on the fly basing on the current state of parent {@link module:engine/view/text~Text}.\n * Because of this it is highly unrecommended to store references to `TextProxy instances because they might get\n * invalidated due to operations on Document. Also TextProxy is not a {@link module:engine/view/node~Node} so it can not be\n * inserted as a child of {@link module:engine/view/element~Element}.\n *\n * `TextProxy` instances are created by {@link module:engine/view/treewalker~TreeWalker view tree walker}. You should not need to create\n * an instance of this class by your own.\n */\n\nvar TextProxy = /*#__PURE__*/function () {\n  /**\n   * Creates a text proxy.\n   *\n   * @protected\n   * @param {module:engine/view/text~Text} textNode Text node which part is represented by this text proxy.\n   * @param {Number} offsetInText Offset in {@link module:engine/view/textproxy~TextProxy#textNode text node}\n   * from which the text proxy starts.\n   * @param {Number} length Text proxy length, that is how many text node's characters, starting from `offsetInText` it represents.\n   * @constructor\n   */\n  function TextProxy(textNode, offsetInText, length) {\n    _classCallCheck(this, TextProxy);\n\n    /**\n     * Reference to the {@link module:engine/view/text~Text} element which TextProxy is a substring.\n     *\n     * @readonly\n     * @member {module:engine/view/text~Text} module:engine/view/textproxy~TextProxy#textNode\n     */\n    this.textNode = textNode;\n\n    if (offsetInText < 0 || offsetInText > textNode.data.length) {\n      /**\n       * Given offsetInText value is incorrect.\n       *\n       * @error view-textproxy-wrong-offsetintext\n       */\n      throw new CKEditorError('view-textproxy-wrong-offsetintext: Given offsetInText value is incorrect.', this);\n    }\n\n    if (length < 0 || offsetInText + length > textNode.data.length) {\n      /**\n       * Given length value is incorrect.\n       *\n       * @error view-textproxy-wrong-length\n       */\n      throw new CKEditorError('view-textproxy-wrong-length: Given length value is incorrect.', this);\n    }\n    /**\n     * Text data represented by this text proxy.\n     *\n     * @readonly\n     * @member {String} module:engine/view/textproxy~TextProxy#data\n     */\n\n\n    this.data = textNode.data.substring(offsetInText, offsetInText + length);\n    /**\n     * Offset in the `textNode` where this `TextProxy` instance starts.\n     *\n     * @readonly\n     * @member {Number} module:engine/view/textproxy~TextProxy#offsetInText\n     */\n\n    this.offsetInText = offsetInText;\n  }\n  /**\n   * Offset size of this node.\n   *\n   * @readonly\n   * @type {Number}\n   */\n\n\n  _createClass(TextProxy, [{\n    key: \"is\",\n\n    /**\n     * Checks whether this object is of the given type.\n     *\n     *\t\ttextProxy.is( 'textProxy' ); // -> true\n     *\t\ttextProxy.is( 'view:textProxy' ); // -> true\n     *\n     *\t\ttextProxy.is( 'model:textProxy' ); // -> false\n     *\t\ttextProxy.is( 'element' ); // -> false\n     *\t\ttextProxy.is( 'range' ); // -> false\n     *\n     * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n     *\n     * @param {String} type\n     * @returns {Boolean}\n     */\n    value: function is(type) {\n      return type == 'textProxy' || type == 'view:textProxy';\n    }\n    /**\n     * Returns ancestors array of this text proxy.\n     *\n     * @param {Object} options Options object.\n     * @param {Boolean} [options.includeSelf=false] When set to `true` {#textNode} will be also included in parent's array.\n     * @param {Boolean} [options.parentFirst=false] When set to `true`, array will be sorted from text proxy parent to\n     * root element, otherwise root element will be the first item in the array.\n     * @returns {Array} Array with ancestors.\n     */\n\n  }, {\n    key: \"getAncestors\",\n    value: function getAncestors() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n        includeSelf: false,\n        parentFirst: false\n      };\n      var ancestors = [];\n      var parent = options.includeSelf ? this.textNode : this.parent;\n\n      while (parent !== null) {\n        ancestors[options.parentFirst ? 'push' : 'unshift'](parent);\n        parent = parent.parent;\n      }\n\n      return ancestors;\n    }\n  }, {\n    key: \"offsetSize\",\n    get: function get() {\n      return this.data.length;\n    }\n    /**\n     * Flag indicating whether `TextProxy` instance covers only part of the original {@link module:engine/view/text~Text text node}\n     * (`true`) or the whole text node (`false`).\n     *\n     * This is `false` when text proxy starts at the very beginning of {@link module:engine/view/textproxy~TextProxy#textNode textNode}\n     * ({@link module:engine/view/textproxy~TextProxy#offsetInText offsetInText} equals `0`) and text proxy sizes is equal to\n     * text node size.\n     *\n     * @readonly\n     * @type {Boolean}\n     */\n\n  }, {\n    key: \"isPartial\",\n    get: function get() {\n      return this.data.length !== this.textNode.data.length;\n    }\n    /**\n     * Parent of this text proxy, which is same as parent of text node represented by this text proxy.\n     *\n     * @readonly\n     * @type {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment|null}\n     */\n\n  }, {\n    key: \"parent\",\n    get: function get() {\n      return this.textNode.parent;\n    }\n    /**\n     * Root of this text proxy, which is same as root of text node represented by this text proxy.\n     *\n     * @readonly\n     * @type {module:engine/view/node~Node|module:engine/view/documentfragment~DocumentFragment}\n     */\n\n  }, {\n    key: \"root\",\n    get: function get() {\n      return this.textNode.root;\n    }\n    /**\n     * {@link module:engine/view/document~Document View document} that owns this text proxy, or `null` if the text proxy is inside\n     * {@link module:engine/view/documentfragment~DocumentFragment document fragment}.\n     *\n     * @readonly\n     * @type {module:engine/view/document~Document|null}\n     */\n\n  }, {\n    key: \"document\",\n    get: function get() {\n      return this.textNode.document;\n    }\n  }]);\n\n  return TextProxy;\n}();\n\nexport { TextProxy as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/treewalker\n */\nimport Element from \"./element\";\nimport Text from \"./text\";\nimport TextProxy from \"./textproxy\";\nimport Position from \"./position\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Position iterator class. It allows to iterate forward and backward over the document.\n */\n\nvar TreeWalker = /*#__PURE__*/function () {\n  /**\n   * Creates a range iterator. All parameters are optional, but you have to specify either `boundaries` or `startPosition`.\n   *\n   * @constructor\n   * @param {Object} options Object with configuration.\n   * @param {module:engine/view/range~Range} [options.boundaries=null] Range to define boundaries of the iterator.\n   * @param {module:engine/view/position~Position} [options.startPosition] Starting position.\n   * @param {'forward'|'backward'} [options.direction='forward'] Walking direction.\n   * @param {Boolean} [options.singleCharacters=false] Flag indicating whether all characters from\n   * {@link module:engine/view/text~Text} should be returned as one {@link module:engine/view/text~Text} (`false`) ore one by one as\n   * {@link module:engine/view/textproxy~TextProxy} (`true`).\n   * @param {Boolean} [options.shallow=false] Flag indicating whether iterator should enter elements or not. If the\n   * iterator is shallow child nodes of any iterated node will not be returned along with `elementEnd` tag.\n   * @param {Boolean} [options.ignoreElementEnd=false] Flag indicating whether iterator should ignore `elementEnd`\n   * tags. If the option is true walker will not return a parent node of start position. If this option is `true`\n   * each {@link module:engine/view/element~Element} will be returned once, while if the option is `false` they might be returned\n   * twice: for `'elementStart'` and `'elementEnd'`.\n   */\n  function TreeWalker() {\n    var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n    _classCallCheck(this, TreeWalker);\n\n    if (!options.boundaries && !options.startPosition) {\n      /**\n       * Neither boundaries nor starting position have been defined.\n       *\n       * @error view-tree-walker-no-start-position\n       */\n      throw new CKEditorError('view-tree-walker-no-start-position: Neither boundaries nor starting position have been defined.', null);\n    }\n\n    if (options.direction && options.direction != 'forward' && options.direction != 'backward') {\n      throw new CKEditorError('view-tree-walker-unknown-direction: Only `backward` and `forward` direction allowed.', options.startPosition, {\n        direction: options.direction\n      });\n    }\n    /**\n     * Iterator boundaries.\n     *\n     * When the iterator is walking `'forward'` on the end of boundary or is walking `'backward'`\n     * on the start of boundary, then `{ done: true }` is returned.\n     *\n     * If boundaries are not defined they are set before first and after last child of the root node.\n     *\n     * @readonly\n     * @member {module:engine/view/range~Range} module:engine/view/treewalker~TreeWalker#boundaries\n     */\n\n\n    this.boundaries = options.boundaries || null;\n    /**\n     * Iterator position. If start position is not defined then position depends on {@link #direction}. If direction is\n     * `'forward'` position starts form the beginning, when direction is `'backward'` position starts from the end.\n     *\n     * @readonly\n     * @member {module:engine/view/position~Position} module:engine/view/treewalker~TreeWalker#position\n     */\n\n    if (options.startPosition) {\n      this.position = Position._createAt(options.startPosition);\n    } else {\n      this.position = Position._createAt(options.boundaries[options.direction == 'backward' ? 'end' : 'start']);\n    }\n    /**\n     * Walking direction. Defaults `'forward'`.\n     *\n     * @readonly\n     * @member {'backward'|'forward'} module:engine/view/treewalker~TreeWalker#direction\n     */\n\n\n    this.direction = options.direction || 'forward';\n    /**\n     * Flag indicating whether all characters from {@link module:engine/view/text~Text} should be returned as one\n     * {@link module:engine/view/text~Text} or one by one as {@link module:engine/view/textproxy~TextProxy}.\n     *\n     * @readonly\n     * @member {Boolean} module:engine/view/treewalker~TreeWalker#singleCharacters\n     */\n\n    this.singleCharacters = !!options.singleCharacters;\n    /**\n     * Flag indicating whether iterator should enter elements or not. If the iterator is shallow child nodes of any\n     * iterated node will not be returned along with `elementEnd` tag.\n     *\n     * @readonly\n     * @member {Boolean} module:engine/view/treewalker~TreeWalker#shallow\n     */\n\n    this.shallow = !!options.shallow;\n    /**\n     * Flag indicating whether iterator should ignore `elementEnd` tags. If set to `true`, walker will not\n     * return a parent node of the start position. Each {@link module:engine/view/element~Element} will be returned once.\n     * When set to `false` each element might be returned twice: for `'elementStart'` and `'elementEnd'`.\n     *\n     * @readonly\n     * @member {Boolean} module:engine/view/treewalker~TreeWalker#ignoreElementEnd\n     */\n\n    this.ignoreElementEnd = !!options.ignoreElementEnd;\n    /**\n     * Start boundary parent.\n     *\n     * @private\n     * @member {module:engine/view/node~Node} module:engine/view/treewalker~TreeWalker#_boundaryStartParent\n     */\n\n    this._boundaryStartParent = this.boundaries ? this.boundaries.start.parent : null;\n    /**\n     * End boundary parent.\n     *\n     * @private\n     * @member {module:engine/view/node~Node} module:engine/view/treewalker~TreeWalker#_boundaryEndParent\n     */\n\n    this._boundaryEndParent = this.boundaries ? this.boundaries.end.parent : null;\n  }\n  /**\n   * Iterable interface.\n   *\n   * @returns {Iterable.<module:engine/view/treewalker~TreeWalkerValue>}\n   */\n\n\n  _createClass(TreeWalker, [{\n    key: Symbol.iterator,\n    value: function value() {\n      return this;\n    }\n    /**\n     * Moves {@link #position} in the {@link #direction} skipping values as long as the callback function returns `true`.\n     *\n     * For example:\n     *\n     * \t\twalker.skip( value => value.type == 'text' ); // <p>{}foo</p> -> <p>foo[]</p>\n     * \t\twalker.skip( value => true ); // Move the position to the end: <p>{}foo</p> -> <p>foo</p>[]\n     * \t\twalker.skip( value => false ); // Do not move the position.\n     *\n     * @param {Function} skip Callback function. Gets {@link module:engine/view/treewalker~TreeWalkerValue} and should\n     * return `true` if the value should be skipped or `false` if not.\n     */\n\n  }, {\n    key: \"skip\",\n    value: function skip(_skip) {\n      var done, value, prevPosition;\n\n      do {\n        prevPosition = this.position;\n\n        var _this$next = this.next();\n\n        done = _this$next.done;\n        value = _this$next.value;\n      } while (!done && _skip(value));\n\n      if (!done) {\n        this.position = prevPosition;\n      }\n    }\n    /**\n     * Gets the next tree walker's value.\n     *\n     * @returns {module:engine/view/treewalker~TreeWalkerValue} Object implementing iterator interface, returning\n     * information about taken step.\n     */\n\n  }, {\n    key: \"next\",\n    value: function next() {\n      if (this.direction == 'forward') {\n        return this._next();\n      } else {\n        return this._previous();\n      }\n    }\n    /**\n     * Makes a step forward in view. Moves the {@link #position} to the next position and returns the encountered value.\n     *\n     * @private\n     * @returns {Object}\n     * @returns {Boolean} return.done `true` if iterator is done, `false` otherwise.\n     * @returns {module:engine/view/treewalker~TreeWalkerValue} return.value Information about taken step.\n     */\n\n  }, {\n    key: \"_next\",\n    value: function _next() {\n      var position = this.position.clone();\n      var previousPosition = this.position;\n      var parent = position.parent; // We are at the end of the root.\n\n      if (parent.parent === null && position.offset === parent.childCount) {\n        return {\n          done: true\n        };\n      } // We reached the walker boundary.\n\n\n      if (parent === this._boundaryEndParent && position.offset == this.boundaries.end.offset) {\n        return {\n          done: true\n        };\n      } // Get node just after current position.\n\n\n      var node; // Text is a specific parent because it contains string instead of child nodes.\n\n      if (parent instanceof Text) {\n        if (position.isAtEnd) {\n          // Prevent returning \"elementEnd\" for Text node. Skip that value and return the next walker step.\n          this.position = Position._createAfter(parent);\n          return this._next();\n        }\n\n        node = parent.data[position.offset];\n      } else {\n        node = parent.getChild(position.offset);\n      }\n\n      if (node instanceof Element) {\n        if (!this.shallow) {\n          position = new Position(node, 0);\n        } else {\n          position.offset++;\n        }\n\n        this.position = position;\n        return this._formatReturnValue('elementStart', node, previousPosition, position, 1);\n      } else if (node instanceof Text) {\n        if (this.singleCharacters) {\n          position = new Position(node, 0);\n          this.position = position;\n          return this._next();\n        } else {\n          var charactersCount = node.data.length;\n          var item; // If text stick out of walker range, we need to cut it and wrap in TextProxy.\n\n          if (node == this._boundaryEndParent) {\n            charactersCount = this.boundaries.end.offset;\n            item = new TextProxy(node, 0, charactersCount);\n            position = Position._createAfter(item);\n          } else {\n            item = new TextProxy(node, 0, node.data.length); // If not just keep moving forward.\n\n            position.offset++;\n          }\n\n          this.position = position;\n          return this._formatReturnValue('text', item, previousPosition, position, charactersCount);\n        }\n      } else if (typeof node == 'string') {\n        var textLength;\n\n        if (this.singleCharacters) {\n          textLength = 1;\n        } else {\n          // Check if text stick out of walker range.\n          var endOffset = parent === this._boundaryEndParent ? this.boundaries.end.offset : parent.data.length;\n          textLength = endOffset - position.offset;\n        }\n\n        var textProxy = new TextProxy(parent, position.offset, textLength);\n        position.offset += textLength;\n        this.position = position;\n        return this._formatReturnValue('text', textProxy, previousPosition, position, textLength);\n      } else {\n        // `node` is not set, we reached the end of current `parent`.\n        position = Position._createAfter(parent);\n        this.position = position;\n\n        if (this.ignoreElementEnd) {\n          return this._next();\n        } else {\n          return this._formatReturnValue('elementEnd', parent, previousPosition, position);\n        }\n      }\n    }\n    /**\n     * Makes a step backward in view. Moves the {@link #position} to the previous position and returns the encountered value.\n     *\n     * @private\n     * @returns {Object}\n     * @returns {Boolean} return.done True if iterator is done.\n     * @returns {module:engine/view/treewalker~TreeWalkerValue} return.value Information about taken step.\n     */\n\n  }, {\n    key: \"_previous\",\n    value: function _previous() {\n      var position = this.position.clone();\n      var previousPosition = this.position;\n      var parent = position.parent; // We are at the beginning of the root.\n\n      if (parent.parent === null && position.offset === 0) {\n        return {\n          done: true\n        };\n      } // We reached the walker boundary.\n\n\n      if (parent == this._boundaryStartParent && position.offset == this.boundaries.start.offset) {\n        return {\n          done: true\n        };\n      } // Get node just before current position.\n\n\n      var node; // Text {@link module:engine/view/text~Text} element is a specific parent because contains string instead of child nodes.\n\n      if (parent instanceof Text) {\n        if (position.isAtStart) {\n          // Prevent returning \"elementStart\" for Text node. Skip that value and return the next walker step.\n          this.position = Position._createBefore(parent);\n          return this._previous();\n        }\n\n        node = parent.data[position.offset - 1];\n      } else {\n        node = parent.getChild(position.offset - 1);\n      }\n\n      if (node instanceof Element) {\n        if (!this.shallow) {\n          position = new Position(node, node.childCount);\n          this.position = position;\n\n          if (this.ignoreElementEnd) {\n            return this._previous();\n          } else {\n            return this._formatReturnValue('elementEnd', node, previousPosition, position);\n          }\n        } else {\n          position.offset--;\n          this.position = position;\n          return this._formatReturnValue('elementStart', node, previousPosition, position, 1);\n        }\n      } else if (node instanceof Text) {\n        if (this.singleCharacters) {\n          position = new Position(node, node.data.length);\n          this.position = position;\n          return this._previous();\n        } else {\n          var charactersCount = node.data.length;\n          var item; // If text stick out of walker range, we need to cut it and wrap in TextProxy.\n\n          if (node == this._boundaryStartParent) {\n            var offset = this.boundaries.start.offset;\n            item = new TextProxy(node, offset, node.data.length - offset);\n            charactersCount = item.data.length;\n            position = Position._createBefore(item);\n          } else {\n            item = new TextProxy(node, 0, node.data.length); // If not just keep moving backward.\n\n            position.offset--;\n          }\n\n          this.position = position;\n          return this._formatReturnValue('text', item, previousPosition, position, charactersCount);\n        }\n      } else if (typeof node == 'string') {\n        var textLength;\n\n        if (!this.singleCharacters) {\n          // Check if text stick out of walker range.\n          var startOffset = parent === this._boundaryStartParent ? this.boundaries.start.offset : 0;\n          textLength = position.offset - startOffset;\n        } else {\n          textLength = 1;\n        }\n\n        position.offset -= textLength;\n        var textProxy = new TextProxy(parent, position.offset, textLength);\n        this.position = position;\n        return this._formatReturnValue('text', textProxy, previousPosition, position, textLength);\n      } else {\n        // `node` is not set, we reached the beginning of current `parent`.\n        position = Position._createBefore(parent);\n        this.position = position;\n        return this._formatReturnValue('elementStart', parent, previousPosition, position, 1);\n      }\n    }\n    /**\n     * Format returned data and adjust `previousPosition` and `nextPosition` if reach the bound of the {@link module:engine/view/text~Text}.\n     *\n     * @private\n     * @param {module:engine/view/treewalker~TreeWalkerValueType} type Type of step.\n     * @param {module:engine/view/item~Item} item Item between old and new position.\n     * @param {module:engine/view/position~Position} previousPosition Previous position of iterator.\n     * @param {module:engine/view/position~Position} nextPosition Next position of iterator.\n     * @param {Number} [length] Length of the item.\n     * @returns {module:engine/view/treewalker~TreeWalkerValue}\n     */\n\n  }, {\n    key: \"_formatReturnValue\",\n    value: function _formatReturnValue(type, item, previousPosition, nextPosition, length) {\n      // Text is a specific parent, because contains string instead of children.\n      // Walker doesn't enter to the Text except situations when walker is iterating over every single character,\n      // or the bound starts/ends inside the Text. So when the position is at the beginning or at the end of the Text\n      // we move it just before or just after Text.\n      if (item instanceof TextProxy) {\n        // Position is at the end of Text.\n        if (item.offsetInText + item.data.length == item.textNode.data.length) {\n          if (this.direction == 'forward' && !(this.boundaries && this.boundaries.end.isEqual(this.position))) {\n            nextPosition = Position._createAfter(item.textNode); // When we change nextPosition of returned value we need also update walker current position.\n\n            this.position = nextPosition;\n          } else {\n            previousPosition = Position._createAfter(item.textNode);\n          }\n        } // Position is at the begining ot the text.\n\n\n        if (item.offsetInText === 0) {\n          if (this.direction == 'backward' && !(this.boundaries && this.boundaries.start.isEqual(this.position))) {\n            nextPosition = Position._createBefore(item.textNode); // When we change nextPosition of returned value we need also update walker current position.\n\n            this.position = nextPosition;\n          } else {\n            previousPosition = Position._createBefore(item.textNode);\n          }\n        }\n      }\n\n      return {\n        done: false,\n        value: {\n          type: type,\n          item: item,\n          previousPosition: previousPosition,\n          nextPosition: nextPosition,\n          length: length\n        }\n      };\n    }\n  }]);\n\n  return TreeWalker;\n}();\n/**\n * Type of the step made by {@link module:engine/view/treewalker~TreeWalker}.\n * Possible values: `'elementStart'` if walker is at the beginning of a node, `'elementEnd'` if walker is at the end\n * of node, or `'text'` if walker traversed over single and multiple characters.\n * For {@link module:engine/view/text~Text} `elementStart` and `elementEnd` is not returned.\n *\n * @typedef {String} module:engine/view/treewalker~TreeWalkerValueType\n */\n\n/**\n * Object returned by {@link module:engine/view/treewalker~TreeWalker} when traversing tree view.\n *\n * @typedef {Object} module:engine/view/treewalker~TreeWalkerValue\n * @property {module:engine/view/treewalker~TreeWalkerValueType} type\n * @property {module:engine/view/item~Item} item Item between the old and the new positions\n * of the tree walker.\n * @property {module:engine/view/position~Position} previousPosition Previous position of the iterator.\n * * Forward iteration: For `'elementEnd'` it is the last position inside the element. For all other types it is the\n * position before the item.\n * * Backward iteration: For `'elementStart'` it is the first position inside the element. For all other types it is\n * the position after item.\n * * If the position is at the beginning or at the end of the {@link module:engine/view/text~Text} it is always moved from the\n * inside of the text to its parent just before or just after that text.\n * @property {module:engine/view/position~Position} nextPosition Next position of the iterator.\n * * Forward iteration: For `'elementStart'` it is the first position inside the element. For all other types it is\n * the position after the item.\n * * Backward iteration: For `'elementEnd'` it is last position inside element. For all other types it is the position\n * before the item.\n * * If the position is at the beginning or at the end of the {@link module:engine/view/text~Text} it is always moved from the\n * inside of the text to its parent just before or just after that text.\n * @property {Number} [length] Length of the item. For `'elementStart'` it is `1`. For `'text'` it is\n * the length of that text. For `'elementEnd'` it is `undefined`.\n */\n\n/**\n * Tree walking directions.\n *\n * @typedef {'forward'|'backward'} module:engine/view/treewalker~TreeWalkerDirection\n */\n\n\nexport { TreeWalker as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/uielement\n */\nimport Element from \"./element\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Node from \"./node\";\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\n/**\n * UI element class. It should be used to represent editing UI which needs to be injected into the editing view\n * If possible, you should keep your UI outside the editing view. However, if that is not possible,\n * UI elements can be used.\n *\n * How a UI element is rendered is in your control (you pass a callback to\n * {@link module:engine/view/downcastwriter~DowncastWriter#createUIElement `downcastWriter#createUIElement()`}).\n * The editor will ignore your UI element – the selection cannot be placed in it, it is skipped (invisible) when\n * the user modifies the selection by using arrow keys and the editor does not listen to any mutations which\n * happen inside your UI elements.\n *\n * The limitation is that you cannot convert a model element to a UI element. UI elements need to be\n * created for {@link module:engine/model/markercollection~Marker markers} or as additinal elements\n * inside normal {@link module:engine/view/containerelement~ContainerElement container elements}.\n *\n * To create a new UI element use the\n * {@link module:engine/view/downcastwriter~DowncastWriter#createUIElement `downcastWriter#createUIElement()`} method.\n *\n * @extends module:engine/view/element~Element\n */\n\nvar UIElement = /*#__PURE__*/function (_Element) {\n  _inherits(UIElement, _Element);\n\n  var _super = _createSuper(UIElement);\n\n  /**\n   * Creates new instance of UIElement.\n   *\n   * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-uielement-cannot-add` when third parameter is passed,\n   * to inform that usage of UIElement is incorrect (adding child nodes to UIElement is forbidden).\n   *\n   * @see module:engine/view/downcastwriter~DowncastWriter#createUIElement\n   * @protected\n   * @param {String} name Node name.\n   * @param {Object|Iterable} [attributes] Collection of attributes.\n   */\n  function UIElement(name, attributes, children) {\n    var _this;\n\n    _classCallCheck(this, UIElement);\n\n    _this = _super.call(this, name, attributes, children);\n    /**\n     * Returns `null` because filler is not needed for UIElements.\n     *\n     * @method #getFillerOffset\n     * @returns {null} Always returns null.\n     */\n\n    _this.getFillerOffset = getFillerOffset;\n    return _this;\n  }\n  /**\n   * Checks whether this object is of the given.\n   *\n   *\t\tuiElement.is( 'uiElement' ); // -> true\n   *\t\tuiElement.is( 'element' ); // -> true\n   *\t\tuiElement.is( 'node' ); // -> true\n   *\t\tuiElement.is( 'view:uiElement' ); // -> true\n   *\t\tuiElement.is( 'view:element' ); // -> true\n   *\t\tuiElement.is( 'view:node' ); // -> true\n   *\n   *\t\tuiElement.is( 'model:element' ); // -> false\n   *\t\tuiElement.is( 'documentFragment' ); // -> false\n   *\n   * Assuming that the object being checked is an ui element, you can also check its\n   * {@link module:engine/view/uielement~UIElement#name name}:\n   *\n   *\t\tuiElement.is( 'span' ); // -> true if this is a span ui element\n   *\t\tuiElement.is( 'uiElement', 'span' ); // -> same as above\n   *\t\ttext.is( 'span' ); -> false\n   *\n   * {@link module:engine/view/node~Node#is Check the entire list of view objects} which implement the `is()` method.\n   *\n   * @param {String} type Type to check when `name` parameter is present.\n   * Otherwise, it acts like the `name` parameter.\n   * @param {String} [name] Element name.\n   * @returns {Boolean}\n   */\n\n\n  _createClass(UIElement, [{\n    key: \"is\",\n    value: function is(type) {\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n      var cutType = type.replace(/^view:/, '');\n\n      if (!name) {\n        return cutType == 'uiElement' || _get(_getPrototypeOf(UIElement.prototype), \"is\", this).call(this, type);\n      } else {\n        return cutType == 'uiElement' && name == this.name || _get(_getPrototypeOf(UIElement.prototype), \"is\", this).call(this, type, name);\n      }\n    }\n    /**\n     * Overrides {@link module:engine/view/element~Element#_insertChild} method.\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `view-uielement-cannot-add` to prevent adding any child nodes\n     * to UIElement.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_insertChild\",\n    value: function _insertChild(index, nodes) {\n      if (nodes && (nodes instanceof Node || Array.from(nodes).length > 0)) {\n        /**\n         * Cannot add children to {@link module:engine/view/uielement~UIElement}.\n         *\n         * @error view-uielement-cannot-add\n         */\n        throw new CKEditorError('view-uielement-cannot-add: Cannot add child nodes to UIElement instance.', this);\n      }\n    }\n    /**\n     * Renders this {@link module:engine/view/uielement~UIElement} to DOM. This method is called by\n     * {@link module:engine/view/domconverter~DomConverter}.\n     * Do not use inheritance to create custom rendering method, replace `render()` method instead:\n     *\n     *\t\tconst myUIElement = downcastWriter.createUIElement( 'span' );\n     *\t\tmyUIElement.render = function( domDocument ) {\n     *\t\t\tconst domElement = this.toDomElement( domDocument );\n     *\t\t\tdomElement.innerHTML = '<b>this is ui element</b>';\n     *\n     *\t\t\treturn domElement;\n     *\t\t};\n     *\n     * @param {Document} domDocument\n     * @returns {HTMLElement}\n     */\n\n  }, {\n    key: \"render\",\n    value: function render(domDocument) {\n      return this.toDomElement(domDocument);\n    }\n    /**\n     * Creates DOM element based on this view UIElement.\n     * Note that each time this method is called new DOM element is created.\n     *\n     * @param {Document} domDocument\n     * @returns {HTMLElement}\n     */\n\n  }, {\n    key: \"toDomElement\",\n    value: function toDomElement(domDocument) {\n      var domElement = domDocument.createElement(this.name);\n\n      var _iterator = _createForOfIteratorHelper(this.getAttributeKeys()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var key = _step.value;\n          domElement.setAttribute(key, this.getAttribute(key));\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return domElement;\n    }\n  }]);\n\n  return UIElement;\n}(Element);\n/**\n * This function injects UI element handling to the given {@link module:engine/view/document~Document document}.\n *\n * A callback is added to {@link module:engine/view/document~Document#event:keydown document keydown event}.\n * The callback handles the situation when right arrow key is pressed and selection is collapsed before a UI element.\n * Without this handler, it would be impossible to \"jump over\" UI element using right arrow key.\n *\n * @param {module:engine/view/view~View} view View controller to which the quirks handling will be injected.\n */\n\n\nexport { UIElement as default };\nexport function injectUiElementHandling(view) {\n  view.document.on('keydown', function (evt, data) {\n    return jumpOverUiElement(evt, data, view.domConverter);\n  });\n} // Returns `null` because block filler is not needed for UIElements.\n//\n// @returns {null}\n\nfunction getFillerOffset() {\n  return null;\n} // Selection cannot be placed in a `UIElement`. Whenever it is placed there, it is moved before it. This\n// causes a situation when it is impossible to jump over `UIElement` using right arrow key, because the selection\n// ends up in ui element (in DOM) and is moved back to the left. This handler fixes this situation.\n\n\nfunction jumpOverUiElement(evt, data, domConverter) {\n  if (data.keyCode == keyCodes.arrowright) {\n    var domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n    var domSelectionCollapsed = domSelection.rangeCount == 1 && domSelection.getRangeAt(0).collapsed; // Jump over UI element if selection is collapsed or shift key is pressed. These are the cases when selection would extend.\n\n    if (domSelectionCollapsed || data.shiftKey) {\n      var domParent = domSelection.focusNode;\n      var domOffset = domSelection.focusOffset;\n      var viewPosition = domConverter.domPositionToView(domParent, domOffset); // In case if dom element is not converted to view or is not mapped or something. Happens for example in some tests.\n\n      if (viewPosition === null) {\n        return;\n      } // Skip all following ui elements.\n\n\n      var jumpedOverAnyUiElement = false;\n      var nextViewPosition = viewPosition.getLastMatchingPosition(function (value) {\n        if (value.item.is('uiElement')) {\n          // Remember that there was at least one ui element.\n          jumpedOverAnyUiElement = true;\n        } // Jump over ui elements, jump over empty attribute elements, move up from inside of attribute element.\n\n\n        if (value.item.is('uiElement') || value.item.is('attributeElement')) {\n          return true;\n        } // Don't jump over text or don't get out of container element.\n\n\n        return false;\n      }); // If anything has been skipped, fix position.\n      // This `if` could be possibly omitted but maybe it is better not to mess with DOM selection if not needed.\n\n      if (jumpedOverAnyUiElement) {\n        var newDomPosition = domConverter.viewPositionToDom(nextViewPosition);\n\n        if (domSelectionCollapsed) {\n          // Selection was collapsed, so collapse it at further position.\n          domSelection.collapse(newDomPosition.parent, newDomPosition.offset);\n        } else {\n          // Selection was not collapse, so extend it instead of collapsing.\n          domSelection.extend(newDomPosition.parent, newDomPosition.offset);\n        }\n      }\n    }\n  }\n}","import \"core-js/modules/es6.regexp.replace\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module module:engine/view/upcastwriter\n */\nimport DocumentFragment from \"./documentfragment\";\nimport Element from \"./element\";\nimport Text from \"./text\";\nimport { isPlainObject } from 'lodash-es';\nimport Position from \"./position\";\nimport Range from \"./range\";\nimport Selection from \"./selection\";\n/**\n * View upcast writer. It provides a set of methods used to manipulate non-semantic view trees.\n *\n * It should be used only while working on a non-semantic view\n * (e.g. a view created from HTML string on paste).\n * To manipulate a view which was or is being downcasted from the the model use the\n * {@link module:engine/view/downcastwriter~DowncastWriter downcast writer}.\n *\n * Read more about changing the view in the {@glink framework/guides/architecture/editing-engine#changing-the-view Changing the view}\n * section of the {@glink framework/guides/architecture/editing-engine Editing engine architecture} guide.\n *\n * Unlike `DowncastWriter`, which is available in the {@link module:engine/view/view~View#change `View#change()`} block,\n * `UpcastWriter` can be created wherever you need it:\n *\n *\t\tconst writer = new UpcastWriter();\n *\t\tconst text = writer.createText( 'foo!' );\n *\n *\t\twriter.appendChild( text, someViewElement );\n */\n\nvar UpcastWriter = /*#__PURE__*/function () {\n  function UpcastWriter() {\n    _classCallCheck(this, UpcastWriter);\n  }\n\n  _createClass(UpcastWriter, [{\n    key: \"createDocumentFragment\",\n\n    /**\n     * Creates a new {@link module:engine/view/documentfragment~DocumentFragment} instance.\n     *\n     * @param {module:engine/view/node~Node|Iterable.<module:engine/view/node~Node>} [children]\n     * A list of nodes to be inserted into the created document fragment.\n     * @returns {module:engine/view/documentfragment~DocumentFragment} The created document fragment.\n     */\n    value: function createDocumentFragment(children) {\n      return new DocumentFragment(children);\n    }\n    /**\n     * Creates a new {@link module:engine/view/element~Element} instance.\n     *\n     * Attributes can be passed in various formats:\n     *\n     *\t\tupcastWriter.createElement( 'div', { class: 'editor', contentEditable: 'true' } ); // object\n     *\t\tupcastWriter.createElement( 'div', [ [ 'class', 'editor' ], [ 'contentEditable', 'true' ] ] ); // map-like iterator\n     *\t\tupcastWriter.createElement( 'div', mapOfAttributes ); // map\n     *\n     * @param {String} name Node name.\n     * @param {Object|Iterable} [attrs] Collection of attributes.\n     * @param {module:engine/view/node~Node|Iterable.<module:engine/view/node~Node>} [children]\n     * A list of nodes to be inserted into created element.\n     * @returns {module:engine/view/element~Element} Created element.\n     */\n\n  }, {\n    key: \"createElement\",\n    value: function createElement(name, attrs, children) {\n      return new Element(name, attrs, children);\n    }\n    /**\n     * Creates a new {@link module:engine/view/text~Text} instance.\n     *\n     * @param {String} data The text's data.\n     * @returns {module:engine/view/text~Text} The created text node.\n     */\n\n  }, {\n    key: \"createText\",\n    value: function createText(data) {\n      return new Text(data);\n    }\n    /**\n     * Clones the provided element.\n     *\n     * @see module:engine/view/element~Element#_clone\n     * @param {module:engine/view/element~Element} element Element to be cloned.\n     * @param {Boolean} [deep=false] If set to `true` clones element and all its children recursively. When set to `false`,\n     * element will be cloned without any children.\n     * @returns {module:engine/view/element~Element} Clone of this element.\n     */\n\n  }, {\n    key: \"clone\",\n    value: function clone(element) {\n      var deep = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n      return element._clone(deep);\n    }\n    /**\n     * Appends a child node or a list of child nodes at the end of this node\n     * and sets the parent of these nodes to this element.\n     *\n     * @see module:engine/view/element~Element#_appendChild\n     * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.\n     * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} element Element\n     * to which items will be appended.\n     * @fires module:engine/view/node~Node#event:change\n     * @returns {Number} Number of appended nodes.\n     */\n\n  }, {\n    key: \"appendChild\",\n    value: function appendChild(items, element) {\n      return element._appendChild(items);\n    }\n    /**\n     * Inserts a child node or a list of child nodes on the given index and sets the parent of these nodes to\n     * this element.\n     *\n     * @see module:engine/view/element~Element#_insertChild\n     * @param {Number} index Offset at which nodes should be inserted.\n     * @param {module:engine/view/item~Item|Iterable.<module:engine/view/item~Item>} items Items to be inserted.\n     * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} element Element\n     * to which items will be inserted.\n     * @fires module:engine/view/node~Node#event:change\n     * @returns {Number} Number of inserted nodes.\n     */\n\n  }, {\n    key: \"insertChild\",\n    value: function insertChild(index, items, element) {\n      return element._insertChild(index, items);\n    }\n    /**\n     * Removes the given number of child nodes starting at the given index and set the parent of these nodes to `null`.\n     *\n     * @see module:engine/view/element~Element#_removeChildren\n     * @param {Number} index Offset from which nodes will be removed.\n     * @param {Number} howMany Number of nodes to remove.\n     * @param {module:engine/view/element~Element|module:engine/view/documentfragment~DocumentFragment} element Element\n     * which children will be removed.\n     * @fires module:engine/view/node~Node#event:change\n     * @returns {Array.<module:engine/view/node~Node>} The array containing removed nodes.\n     */\n\n  }, {\n    key: \"removeChildren\",\n    value: function removeChildren(index, howMany, element) {\n      return element._removeChildren(index, howMany);\n    }\n    /**\n     * Removes given element from the view structure. Will not have effect on detached elements.\n     *\n     * @param {module:engine/view/element~Element} element Element which will be removed.\n     * @returns {Array.<module:engine/view/node~Node>} The array containing removed nodes.\n     */\n\n  }, {\n    key: \"remove\",\n    value: function remove(element) {\n      var parent = element.parent;\n\n      if (parent) {\n        return this.removeChildren(parent.getChildIndex(element), 1, parent);\n      }\n\n      return [];\n    }\n    /**\n     * Replaces given element with the new one in the view structure. Will not have effect on detached elements.\n     *\n     * @param {module:engine/view/element~Element} oldElement Element which will be replaced.\n     * @param {module:engine/view/element~Element} newElement Element which will be inserted in the place of the old element.\n     * @returns {Boolean} Whether old element was successfully replaced.\n     */\n\n  }, {\n    key: \"replace\",\n    value: function replace(oldElement, newElement) {\n      var parent = oldElement.parent;\n\n      if (parent) {\n        var index = parent.getChildIndex(oldElement);\n        this.removeChildren(index, 1, parent);\n        this.insertChild(index, newElement, parent);\n        return true;\n      }\n\n      return false;\n    }\n    /**\n     * Removes given element from view structure and places its children in its position.\n     * It does nothing if element has no parent.\n     *\n     * @param {module:engine/view/element~Element} element Element to unwrap.\n     */\n\n  }, {\n    key: \"unwrapElement\",\n    value: function unwrapElement(element) {\n      var parent = element.parent;\n\n      if (parent) {\n        var index = parent.getChildIndex(element);\n        this.remove(element);\n        this.insertChild(index, element.getChildren(), parent);\n      }\n    }\n    /**\n     * Renames element by creating a copy of a given element but with its name changed and then moving contents of the\n     * old element to the new one.\n     *\n     * Since this function creates a new element and removes the given one, the new element is returned to keep reference.\n     *\n     * @param {String} newName New element name.\n     * @param {module:engine/view/element~Element} element Element to be renamed.\n     * @returns {module:engine/view/element~Element|null} New element or null if the old element\n     * was not replaced (happens for detached elements).\n     */\n\n  }, {\n    key: \"rename\",\n    value: function rename(newName, element) {\n      var newElement = new Element(newName, element.getAttributes(), element.getChildren());\n      return this.replace(element, newElement) ? newElement : null;\n    }\n    /**\n     * Adds or overwrites element's attribute with a specified key and value.\n     *\n     *\t\twriter.setAttribute( linkElement, 'href', 'http://ckeditor.com' );\n     *\n     * @see module:engine/view/element~Element#_setAttribute\n     * @param {String} key Attribute key.\n     * @param {String} value Attribute value.\n     * @param {module:engine/view/element~Element} element Element for which attribute will be set.\n     */\n\n  }, {\n    key: \"setAttribute\",\n    value: function setAttribute(key, value, element) {\n      element._setAttribute(key, value);\n    }\n    /**\n     * Removes attribute from the element.\n     *\n     *\t\twriter.removeAttribute( linkElement, 'href' );\n     *\n     * @see module:engine/view/element~Element#_removeAttribute\n     * @param {String} key Attribute key.\n     * @param {module:engine/view/element~Element} element Element from which attribute will be removed.\n     */\n\n  }, {\n    key: \"removeAttribute\",\n    value: function removeAttribute(key, element) {\n      element._removeAttribute(key);\n    }\n    /**\n     * Adds specified class to the element.\n     *\n     *\t\twriter.addClass( linkElement, 'foo' );\n     *\t\twriter.addClass( linkElement, [ 'foo', 'bar' ] );\n     *\n     * @see module:engine/view/element~Element#_addClass\n     * @param {Array.<String>|String} className Single class name or array of class names which will be added.\n     * @param {module:engine/view/element~Element} element Element for which class will be added.\n     */\n\n  }, {\n    key: \"addClass\",\n    value: function addClass(className, element) {\n      element._addClass(className);\n    }\n    /**\n     * Removes specified class from the element.\n     *\n     *\t\twriter.removeClass( linkElement, 'foo' );\n     *\t\twriter.removeClass( linkElement, [ 'foo', 'bar' ] );\n     *\n     * @see module:engine/view/element~Element#_removeClass\n     * @param {Array.<String>|String} className Single class name or array of class names which will be removed.\n     * @param {module:engine/view/element~Element} element Element from which class will be removed.\n     */\n\n  }, {\n    key: \"removeClass\",\n    value: function removeClass(className, element) {\n      element._removeClass(className);\n    }\n    /**\n     * Adds style to the element.\n     *\n     *\t\twriter.setStyle( element, 'color', 'red' );\n     *\t\twriter.setStyle( element, {\n     *\t\t\tcolor: 'red',\n     *\t\t\tposition: 'fixed'\n     *\t\t} );\n     *\n     * @see module:engine/view/element~Element#_setStyle\n     * @param {String|Object} property Property name or object with key - value pairs.\n     * @param {String} [value] Value to set. This parameter is ignored if object is provided as the first parameter.\n     * @param {module:engine/view/element~Element} element Element for which style will be added.\n     */\n\n  }, {\n    key: \"setStyle\",\n    value: function setStyle(property, value, element) {\n      if (isPlainObject(property) && element === undefined) {\n        element = value;\n      }\n\n      element._setStyle(property, value);\n    }\n    /**\n     * Removes specified style from the element.\n     *\n     *\t\twriter.removeStyle( element, 'color' );  // Removes 'color' style.\n     *\t\twriter.removeStyle( element, [ 'color', 'border-top' ] ); // Removes both 'color' and 'border-top' styles.\n     *\n     * @see module:engine/view/element~Element#_removeStyle\n     * @param {Array.<String>|String} property Style property name or names to be removed.\n     * @param {module:engine/view/element~Element} element Element from which style will be removed.\n     */\n\n  }, {\n    key: \"removeStyle\",\n    value: function removeStyle(property, element) {\n      element._removeStyle(property);\n    }\n    /**\n     * Sets a custom property on element. Unlike attributes, custom properties are not rendered to the DOM,\n     * so they can be used to add special data to elements.\n     *\n     * @see module:engine/view/element~Element#_setCustomProperty\n     * @param {String|Symbol} key Custom property name/key.\n     * @param {*} value Custom property value to be stored.\n     * @param {module:engine/view/element~Element} element Element for which custom property will be set.\n     */\n\n  }, {\n    key: \"setCustomProperty\",\n    value: function setCustomProperty(key, value, element) {\n      element._setCustomProperty(key, value);\n    }\n    /**\n     * Removes a custom property stored under the given key.\n     *\n     * @see module:engine/view/element~Element#_removeCustomProperty\n     * @param {String|Symbol} key Name/key of the custom property to be removed.\n     * @param {module:engine/view/element~Element} element Element from which the custom property will be removed.\n     * @returns {Boolean} Returns true if property was removed.\n     */\n\n  }, {\n    key: \"removeCustomProperty\",\n    value: function removeCustomProperty(key, element) {\n      return element._removeCustomProperty(key);\n    }\n    /**\n     * Creates position at the given location. The location can be specified as:\n     *\n     * * a {@link module:engine/view/position~Position position},\n     * * parent element and offset (offset defaults to `0`),\n     * * parent element and `'end'` (sets position at the end of that element),\n     * * {@link module:engine/view/item~Item view item} and `'before'` or `'after'` (sets position before or after given view item).\n     *\n     * This method is a shortcut to other constructors such as:\n     *\n     * * {@link #createPositionBefore},\n     * * {@link #createPositionAfter},\n     *\n     * @param {module:engine/view/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/view/item~Item view item}.\n     */\n\n  }, {\n    key: \"createPositionAt\",\n    value: function createPositionAt(itemOrPosition, offset) {\n      return Position._createAt(itemOrPosition, offset);\n    }\n    /**\n     * Creates a new position after given view item.\n     *\n     * @param {module:engine/view/item~Item} item View item after which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"createPositionAfter\",\n    value: function createPositionAfter(item) {\n      return Position._createAfter(item);\n    }\n    /**\n     * Creates a new position before given view item.\n     *\n     * @param {module:engine/view/item~Item} item View item before which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"createPositionBefore\",\n    value: function createPositionBefore(item) {\n      return Position._createBefore(item);\n    }\n    /**\n     * Creates a range spanning from `start` position to `end` position.\n     *\n     * **Note:** This factory method creates it's own {@link module:engine/view/position~Position} instances basing on passed values.\n     *\n     * @param {module:engine/view/position~Position} start Start position.\n     * @param {module:engine/view/position~Position} [end] End position. If not set, range will be collapsed at `start` position.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange(start, end) {\n      return new Range(start, end);\n    }\n    /**\n     * Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.\n     *\n     * @param {module:engine/view/item~Item} item\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRangeOn\",\n    value: function createRangeOn(item) {\n      return Range._createOn(item);\n    }\n    /**\n     * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     * @param {module:engine/view/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRangeIn\",\n    value: function createRangeIn(element) {\n      return Range._createIn(element);\n    }\n    /**\n     * Creates a new {@link module:engine/view/selection~Selection} instance.\n     *\n     * \t\t// Creates empty selection without ranges.\n     *\t\tconst selection = writer.createSelection();\n     *\n     *\t\t// Creates selection at the given range.\n     *\t\tconst range = writer.createRange( start, end );\n     *\t\tconst selection = writer.createSelection( range );\n     *\n     *\t\t// Creates selection at the given ranges\n     * \t\tconst ranges = [ writer.createRange( start1, end2 ), writer.createRange( star2, end2 ) ];\n     *\t\tconst selection = writer.createSelection( ranges );\n     *\n     *\t\t// Creates selection from the other selection.\n     *\t\tconst otherSelection = writer.createSelection();\n     *\t\tconst selection = writer.createSelection( otherSelection );\n     *\n     *\t\t// Creates selection from the document selection.\n     *\t\tconst selection = writer.createSelection( editor.editing.view.document.selection );\n     *\n     * \t\t// Creates selection at the given position.\n     *\t\tconst position = writer.createPositionFromPath( root, path );\n     *\t\tconst selection = writer.createSelection( position );\n     *\n     *\t\t// Creates collapsed selection at the position of given item and offset.\n     *\t\tconst paragraph = writer.createContainerElement( 'paragraph' );\n     *\t\tconst selection = writer.createSelection( paragraph, offset );\n     *\n     *\t\t// Creates a range inside an {@link module:engine/view/element~Element element} which starts before the\n     *\t\t// first child of that element and ends after the last child of that element.\n     *\t\tconst selection = writer.createSelection( paragraph, 'in' );\n     *\n     *\t\t// Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends\n     *\t\t// just after the item.\n     *\t\tconst selection = writer.createSelection( paragraph, 'on' );\n     *\n     * `Selection`'s constructor allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n     *\n     *\t\t// Creates backward selection.\n     *\t\tconst selection = writer.createSelection( range, { backward: true } );\n     *\n     * Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n     * This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n     * represented in other way, for example by applying proper CSS class.\n     *\n     * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM\n     * (and be  properly handled by screen readers).\n     *\n     *\t\t// Creates fake selection with label.\n     *\t\tconst selection = writer.createSelection( range, { fake: true, label: 'foo' } );\n     *\n     * @param {module:engine/view/selection~Selectable} [selectable=null]\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n     * @param {String} [options.label] Label for the fake selection.\n     * @returns {module:engine/view/selection~Selection}\n     */\n\n  }, {\n    key: \"createSelection\",\n    value: function createSelection(selectable, placeOrOffset, options) {\n      return new Selection(selectable, placeOrOffset, options);\n    }\n  }]);\n\n  return UpcastWriter;\n}();\n\nexport { UpcastWriter as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.weak-map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module engine/view/view\n */\nimport Document from \"./document\";\nimport DowncastWriter from \"./downcastwriter\";\nimport Renderer from \"./renderer\";\nimport DomConverter from \"./domconverter\";\nimport Position from \"./position\";\nimport Range from \"./range\";\nimport Selection from \"./selection\";\nimport MutationObserver from \"./observer/mutationobserver\";\nimport KeyObserver from \"./observer/keyobserver\";\nimport FakeSelectionObserver from \"./observer/fakeselectionobserver\";\nimport SelectionObserver from \"./observer/selectionobserver\";\nimport FocusObserver from \"./observer/focusobserver\";\nimport CompositionObserver from \"./observer/compositionobserver\";\nimport InputObserver from \"./observer/inputobserver\";\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport { scrollViewportToShowTarget } from '@ckeditor/ckeditor5-utils/src/dom/scroll';\nimport { injectUiElementHandling } from \"./uielement\";\nimport { injectQuirksHandling } from \"./filler\";\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n/**\n * Editor's view controller class. Its main responsibility is DOM - View management for editing purposes, to provide\n * abstraction over the DOM structure and events and hide all browsers quirks.\n *\n * View controller renders view document to DOM whenever view structure changes. To determine when view can be rendered,\n * all changes need to be done using the {@link module:engine/view/view~View#change} method, using\n * {@link module:engine/view/downcastwriter~DowncastWriter}:\n *\n *\t\tview.change( writer => {\n *\t\t\twriter.insert( position, writer.createText( 'foo' ) );\n *\t\t} );\n *\n * View controller also register {@link module:engine/view/observer/observer~Observer observers} which observes changes\n * on DOM and fire events on the {@link module:engine/view/document~Document Document}.\n * Note that the following observers are added by the class constructor and are always available:\n *\n * * {@link module:engine/view/observer/mutationobserver~MutationObserver},\n * * {@link module:engine/view/observer/selectionobserver~SelectionObserver},\n * * {@link module:engine/view/observer/focusobserver~FocusObserver},\n * * {@link module:engine/view/observer/keyobserver~KeyObserver},\n * * {@link module:engine/view/observer/fakeselectionobserver~FakeSelectionObserver}.\n * * {@link module:engine/view/observer/compositionobserver~CompositionObserver}.\n *\n * This class also {@link module:engine/view/view~View#attachDomRoot binds the DOM and the view elements}.\n *\n * If you do not need full a DOM - view management, and only want to transform a tree of view elements to a tree of DOM\n * elements you do not need this controller. You can use the {@link module:engine/view/domconverter~DomConverter DomConverter} instead.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar View = /*#__PURE__*/function () {\n  function View() {\n    var _this = this;\n\n    _classCallCheck(this, View);\n\n    /**\n     * Instance of the {@link module:engine/view/document~Document} associated with this view controller.\n     *\n     * @readonly\n     * @type {module:engine/view/document~Document}\n     */\n    this.document = new Document();\n    /**\n     * Instance of the {@link module:engine/view/domconverter~DomConverter domConverter} used by\n     * {@link module:engine/view/view~View#_renderer renderer}\n     * and {@link module:engine/view/observer/observer~Observer observers}.\n     *\n     * @readonly\n     * @type {module:engine/view/domconverter~DomConverter}\n     */\n\n    this.domConverter = new DomConverter();\n    /**\n     * Roots of the DOM tree. Map on the `HTMLElement`s with roots names as keys.\n     *\n     * @readonly\n     * @type {Map.<String, HTMLElement>}\n     */\n\n    this.domRoots = new Map();\n    /**\n     * Used to prevent calling {@link #forceRender} and {@link #change} during rendering view to the DOM.\n     *\n     * @readonly\n     * @member {Boolean} #isRenderingInProgress\n     */\n\n    this.set('isRenderingInProgress', false);\n    /**\n     * Instance of the {@link module:engine/view/renderer~Renderer renderer}.\n     *\n     * @protected\n     * @type {module:engine/view/renderer~Renderer}\n     */\n\n    this._renderer = new Renderer(this.domConverter, this.document.selection);\n\n    this._renderer.bind('isFocused').to(this.document);\n    /**\n     * A DOM root attributes cache. It saves the initial values of DOM root attributes before the DOM element\n     * is {@link module:engine/view/view~View#attachDomRoot attached} to the view so later on, when\n     * the view is destroyed ({@link module:engine/view/view~View#detachDomRoot}), they can be easily restored.\n     * This way, the DOM element can go back to the (clean) state as if the editing view never used it.\n     *\n     * @private\n     * @member {WeakMap.<HTMLElement,Object>}\n     */\n\n\n    this._initialDomRootAttributes = new WeakMap();\n    /**\n     * Map of registered {@link module:engine/view/observer/observer~Observer observers}.\n     *\n     * @private\n     * @type {Map.<Function, module:engine/view/observer/observer~Observer>}\n     */\n\n    this._observers = new Map();\n    /**\n     * Is set to `true` when {@link #change view changes} are currently in progress.\n     *\n     * @private\n     * @type {Boolean}\n     */\n\n    this._ongoingChange = false;\n    /**\n     * Used to prevent calling {@link #forceRender} and {@link #change} during rendering view to the DOM.\n     *\n     * @private\n     * @type {Boolean}\n     */\n\n    this._postFixersInProgress = false;\n    /**\n     * Internal flag to temporary disable rendering. See the usage in the {@link #_disableRendering}.\n     *\n     * @private\n     * @type {Boolean}\n     */\n\n    this._renderingDisabled = false;\n    /**\n     * Internal flag that disables rendering when there are no changes since the last rendering.\n     * It stores information about changed selection and changed elements from attached document roots.\n     *\n     * @private\n     * @type {Boolean}\n     */\n\n    this._hasChangedSinceTheLastRendering = false;\n    /**\n     * DowncastWriter instance used in {@link #change change method} callbacks.\n     *\n     * @private\n     * @type {module:engine/view/downcastwriter~DowncastWriter}\n     */\n\n    this._writer = new DowncastWriter(this.document); // Add default observers.\n\n    this.addObserver(MutationObserver);\n    this.addObserver(SelectionObserver);\n    this.addObserver(FocusObserver);\n    this.addObserver(KeyObserver);\n    this.addObserver(FakeSelectionObserver);\n    this.addObserver(CompositionObserver);\n\n    if (env.isAndroid) {\n      this.addObserver(InputObserver);\n    } // Inject quirks handlers.\n\n\n    injectQuirksHandling(this);\n    injectUiElementHandling(this); // Use 'normal' priority so that rendering is performed as first when using that priority.\n\n    this.on('render', function () {\n      _this._render(); // Informs that layout has changed after render.\n\n\n      _this.document.fire('layoutChanged'); // Reset the `_hasChangedSinceTheLastRendering` flag after rendering.\n\n\n      _this._hasChangedSinceTheLastRendering = false;\n    }); // Listen to the document selection changes directly.\n\n    this.listenTo(this.document.selection, 'change', function () {\n      _this._hasChangedSinceTheLastRendering = true;\n    });\n  }\n  /**\n   * Attaches a DOM root element to the view element and enable all observers on that element.\n   * Also {@link module:engine/view/renderer~Renderer#markToSync mark element} to be synchronized\n   * with the view what means that all child nodes will be removed and replaced with content of the view root.\n   *\n   * This method also will change view element name as the same as tag name of given dom root.\n   * Name is always transformed to lower case.\n   *\n   * **Note:** Use {@link #detachDomRoot `detachDomRoot()`} to revert this action.\n   *\n   * @param {Element} domRoot DOM root element.\n   * @param {String} [name='main'] Name of the root.\n   */\n\n\n  _createClass(View, [{\n    key: \"attachDomRoot\",\n    value: function attachDomRoot(domRoot) {\n      var _this2 = this;\n\n      var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'main';\n      var viewRoot = this.document.getRoot(name); // Set view root name the same as DOM root tag name.\n\n      viewRoot._name = domRoot.tagName.toLowerCase();\n      var initialDomRootAttributes = {}; // 1. Copy and cache the attributes to remember the state of the element before attaching.\n      //    The cached attributes will be restored in detachDomRoot() so the element goes to the\n      //    clean state as if the editing view never used it.\n      // 2. Apply the attributes using the view writer, so they all go under the control of the engine.\n      //    The editing view takes over the attribute management completely because various\n      //    features (e.g. addPlaceholder()) require dynamic changes of those attributes and they\n      //    cannot be managed by the engine and the UI library at the same time.\n\n      for (var _i = 0, _Array$from = Array.from(domRoot.attributes); _i < _Array$from.length; _i++) {\n        var _Array$from$_i = _Array$from[_i],\n            _name = _Array$from$_i.name,\n            value = _Array$from$_i.value;\n        initialDomRootAttributes[_name] = value; // Do not use writer.setAttribute() for the class attribute. The EditableUIView class\n        // and its descendants could have already set some using the writer.addClass() on the view\n        // document root. They haven't been rendered yet so they are not present in the DOM root.\n        // Using writer.setAttribute( 'class', ... ) would override them completely.\n\n        if (_name === 'class') {\n          this._writer.addClass(value.split(' '), viewRoot);\n        } else {\n          this._writer.setAttribute(_name, value, viewRoot);\n        }\n      }\n\n      this._initialDomRootAttributes.set(domRoot, initialDomRootAttributes);\n\n      var updateContenteditableAttribute = function updateContenteditableAttribute() {\n        _this2._writer.setAttribute('contenteditable', !viewRoot.isReadOnly, viewRoot);\n\n        if (viewRoot.isReadOnly) {\n          _this2._writer.addClass('ck-read-only', viewRoot);\n        } else {\n          _this2._writer.removeClass('ck-read-only', viewRoot);\n        }\n      }; // Set initial value.\n\n\n      updateContenteditableAttribute();\n      this.domRoots.set(name, domRoot);\n      this.domConverter.bindElements(domRoot, viewRoot);\n\n      this._renderer.markToSync('children', viewRoot);\n\n      this._renderer.markToSync('attributes', viewRoot);\n\n      this._renderer.domDocuments.add(domRoot.ownerDocument);\n\n      viewRoot.on('change:children', function (evt, node) {\n        return _this2._renderer.markToSync('children', node);\n      });\n      viewRoot.on('change:attributes', function (evt, node) {\n        return _this2._renderer.markToSync('attributes', node);\n      });\n      viewRoot.on('change:text', function (evt, node) {\n        return _this2._renderer.markToSync('text', node);\n      });\n      viewRoot.on('change:isReadOnly', function () {\n        return _this2.change(updateContenteditableAttribute);\n      });\n      viewRoot.on('change', function () {\n        _this2._hasChangedSinceTheLastRendering = true;\n      });\n\n      var _iterator = _createForOfIteratorHelper(this._observers.values()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var observer = _step.value;\n          observer.observe(domRoot, name);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * Detaches a DOM root element from the view element and restores its attributes to the state before\n     * {@link #attachDomRoot `attachDomRoot()`}.\n     *\n     * @param {String} name Name of the root to detach.\n     */\n\n  }, {\n    key: \"detachDomRoot\",\n    value: function detachDomRoot(name) {\n      var domRoot = this.domRoots.get(name); // Remove all root attributes so the DOM element is \"bare\".\n\n      Array.from(domRoot.attributes).forEach(function (_ref) {\n        var name = _ref.name;\n        return domRoot.removeAttribute(name);\n      });\n\n      var initialDomRootAttributes = this._initialDomRootAttributes.get(domRoot); // Revert all view root attributes back to the state before attachDomRoot was called.\n\n\n      for (var attribute in initialDomRootAttributes) {\n        domRoot.setAttribute(attribute, initialDomRootAttributes[attribute]);\n      }\n\n      this.domRoots.delete(name);\n      this.domConverter.unbindDomElement(domRoot);\n    }\n    /**\n     * Gets DOM root element.\n     *\n     * @param {String} [name='main']  Name of the root.\n     * @returns {Element} DOM root element instance.\n     */\n\n  }, {\n    key: \"getDomRoot\",\n    value: function getDomRoot() {\n      var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'main';\n      return this.domRoots.get(name);\n    }\n    /**\n     * Creates observer of the given type if not yet created, {@link module:engine/view/observer/observer~Observer#enable enables} it\n     * and {@link module:engine/view/observer/observer~Observer#observe attaches} to all existing and future\n     * {@link #domRoots DOM roots}.\n     *\n     * Note: Observers are recognized by their constructor (classes). A single observer will be instantiated and used only\n     * when registered for the first time. This means that features and other components can register a single observer\n     * multiple times without caring whether it has been already added or not.\n     *\n     * @param {Function} Observer The constructor of an observer to add.\n     * Should create an instance inheriting from {@link module:engine/view/observer/observer~Observer}.\n     * @returns {module:engine/view/observer/observer~Observer} Added observer instance.\n     */\n\n  }, {\n    key: \"addObserver\",\n    value: function addObserver(Observer) {\n      var observer = this._observers.get(Observer);\n\n      if (observer) {\n        return observer;\n      }\n\n      observer = new Observer(this);\n\n      this._observers.set(Observer, observer);\n\n      var _iterator2 = _createForOfIteratorHelper(this.domRoots),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var _step2$value = _slicedToArray(_step2.value, 2),\n              name = _step2$value[0],\n              domElement = _step2$value[1];\n\n          observer.observe(domElement, name);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      observer.enable();\n      return observer;\n    }\n    /**\n     * Returns observer of the given type or `undefined` if such observer has not been added yet.\n     *\n     * @param {Function} Observer The constructor of an observer to get.\n     * @returns {module:engine/view/observer/observer~Observer|undefined} Observer instance or undefined.\n     */\n\n  }, {\n    key: \"getObserver\",\n    value: function getObserver(Observer) {\n      return this._observers.get(Observer);\n    }\n    /**\n     * Disables all added observers.\n     */\n\n  }, {\n    key: \"disableObservers\",\n    value: function disableObservers() {\n      var _iterator3 = _createForOfIteratorHelper(this._observers.values()),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var observer = _step3.value;\n          observer.disable();\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n    }\n    /**\n     * Enables all added observers.\n     */\n\n  }, {\n    key: \"enableObservers\",\n    value: function enableObservers() {\n      var _iterator4 = _createForOfIteratorHelper(this._observers.values()),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var observer = _step4.value;\n          observer.enable();\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n    }\n    /**\n     * Scrolls the page viewport and {@link #domRoots} with their ancestors to reveal the\n     * caret, if not already visible to the user.\n     */\n\n  }, {\n    key: \"scrollToTheSelection\",\n    value: function scrollToTheSelection() {\n      var range = this.document.selection.getFirstRange();\n\n      if (range) {\n        scrollViewportToShowTarget({\n          target: this.domConverter.viewRangeToDom(range),\n          viewportOffset: 20\n        });\n      }\n    }\n    /**\n     * It will focus DOM element representing {@link module:engine/view/editableelement~EditableElement EditableElement}\n     * that is currently having selection inside.\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      if (!this.document.isFocused) {\n        var editable = this.document.selection.editableElement;\n\n        if (editable) {\n          this.domConverter.focus(editable);\n          this.forceRender();\n        } else {// Before focusing view document, selection should be placed inside one of the view's editables.\n          // Normally its selection will be converted from model document (which have default selection), but\n          // when using view document on its own, we need to manually place selection before focusing it.\n          //\n          // @if CK_DEBUG // console.warn( 'There is no selection in any editable to focus.' );\n        }\n      }\n    }\n    /**\n     * The `change()` method is the primary way of changing the view. You should use it to modify any node in the view tree.\n     * It makes sure that after all changes are made the view is rendered to the DOM (assuming that the view will be changed\n     * inside the callback). It prevents situations when the DOM is updated when the view state is not yet correct. It allows\n     * to nest calls one inside another and still performs a single rendering after all those changes are made.\n     * It also returns the return value of its callback.\n     *\n     *\t\tconst text = view.change( writer => {\n     *\t\t\tconst newText = writer.createText( 'foo' );\n     *\t\t\twriter.insert( position1, newText );\n     *\n     *\t\t\tview.change( writer => {\n     *\t\t\t\twriter.insert( position2, writer.createText( 'bar' ) );\n     *\t\t\t} );\n     *\n     * \t\t\twriter.remove( range );\n     *\n     * \t\t\treturn newText;\n     *\t\t} );\n     *\n     * When the outermost change block is done and rendering to the DOM is over the\n     * {@link module:engine/view/view~View#event:render `View#render`} event is fired.\n     *\n     * This method throws a `applying-view-changes-on-rendering` error when\n     * the change block is used after rendering to the DOM has started.\n     *\n     * @param {Function} callback Callback function which may modify the view.\n     * @returns {*} Value returned by the callback.\n     */\n\n  }, {\n    key: \"change\",\n    value: function change(callback) {\n      if (this.isRenderingInProgress || this._postFixersInProgress) {\n        /**\n         * Thrown when there is an attempt to make changes to the view tree when it is in incorrect state. This may\n         * cause some unexpected behaviour and inconsistency between the DOM and the view.\n         * This may be caused by:\n         *\n         * * calling {@link #change} or {@link #forceRender} during rendering process,\n         * * calling {@link #change} or {@link #forceRender} inside of\n         *   {@link module:engine/view/document~Document#registerPostFixer post-fixer function}.\n         *\n         * @error cannot-change-view-tree\n         */\n        throw new CKEditorError('cannot-change-view-tree: ' + 'Attempting to make changes to the view when it is in an incorrect state: rendering or post-fixers are in progress. ' + 'This may cause some unexpected behavior and inconsistency between the DOM and the view.', this);\n      }\n\n      try {\n        // Recursive call to view.change() method - execute listener immediately.\n        if (this._ongoingChange) {\n          return callback(this._writer);\n        } // This lock will assure that all recursive calls to view.change() will end up in same block - one \"render\"\n        // event for all nested calls.\n\n\n        this._ongoingChange = true;\n        var callbackResult = callback(this._writer);\n        this._ongoingChange = false; // This lock is used by editing controller to render changes from outer most model.change() once. As plugins might call\n        // view.change() inside model.change() block - this will ensures that postfixers and rendering are called once after all\n        // changes. Also, we don't need to render anything if there're no changes since last rendering.\n\n        if (!this._renderingDisabled && this._hasChangedSinceTheLastRendering) {\n          this._postFixersInProgress = true;\n\n          this.document._callPostFixers(this._writer);\n\n          this._postFixersInProgress = false;\n          this.fire('render');\n        }\n\n        return callbackResult;\n      } catch (err) {\n        CKEditorError.rethrowUnexpectedError(err, this);\n      }\n    }\n    /**\n     * Forces rendering {@link module:engine/view/document~Document view document} to DOM. If any view changes are\n     * currently in progress, rendering will start after all {@link #change change blocks} are processed.\n     *\n     * Note that this method is dedicated for special cases. All view changes should be wrapped in the {@link #change}\n     * block and the view will automatically check whether it needs to render DOM or not.\n     *\n     * Throws {@link module:utils/ckeditorerror~CKEditorError CKEditorError} `applying-view-changes-on-rendering` when\n     * trying to re-render when rendering to DOM has already started.\n     */\n\n  }, {\n    key: \"forceRender\",\n    value: function forceRender() {\n      this._hasChangedSinceTheLastRendering = true;\n      this.change(function () {});\n    }\n    /**\n     * Destroys this instance. Makes sure that all observers are destroyed and listeners removed.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      var _iterator5 = _createForOfIteratorHelper(this._observers.values()),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var observer = _step5.value;\n          observer.destroy();\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n\n      this.document.destroy();\n      this.stopListening();\n    }\n    /**\n     * Creates position at the given location. The location can be specified as:\n     *\n     * * a {@link module:engine/view/position~Position position},\n     * * parent element and offset (offset defaults to `0`),\n     * * parent element and `'end'` (sets position at the end of that element),\n     * * {@link module:engine/view/item~Item view item} and `'before'` or `'after'` (sets position before or after given view item).\n     *\n     * This method is a shortcut to other constructors such as:\n     *\n     * * {@link #createPositionBefore},\n     * * {@link #createPositionAfter},\n     *\n     * @param {module:engine/view/item~Item|module:engine/model/position~Position} itemOrPosition\n     * @param {Number|'end'|'before'|'after'} [offset] Offset or one of the flags. Used only when\n     * first parameter is a {@link module:engine/view/item~Item view item}.\n     */\n\n  }, {\n    key: \"createPositionAt\",\n    value: function createPositionAt(itemOrPosition, offset) {\n      return Position._createAt(itemOrPosition, offset);\n    }\n    /**\n     * Creates a new position after given view item.\n     *\n     * @param {module:engine/view/item~Item} item View item after which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"createPositionAfter\",\n    value: function createPositionAfter(item) {\n      return Position._createAfter(item);\n    }\n    /**\n     * Creates a new position before given view item.\n     *\n     * @param {module:engine/view/item~Item} item View item before which the position should be located.\n     * @returns {module:engine/view/position~Position}\n     */\n\n  }, {\n    key: \"createPositionBefore\",\n    value: function createPositionBefore(item) {\n      return Position._createBefore(item);\n    }\n    /**\n     * Creates a range spanning from `start` position to `end` position.\n     *\n     * **Note:** This factory method creates it's own {@link module:engine/view/position~Position} instances basing on passed values.\n     *\n     * @param {module:engine/view/position~Position} start Start position.\n     * @param {module:engine/view/position~Position} [end] End position. If not set, range will be collapsed at `start` position.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRange\",\n    value: function createRange(start, end) {\n      return new Range(start, end);\n    }\n    /**\n     * Creates a range that starts before given {@link module:engine/view/item~Item view item} and ends after it.\n     *\n     * @param {module:engine/view/item~Item} item\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRangeOn\",\n    value: function createRangeOn(item) {\n      return Range._createOn(item);\n    }\n    /**\n     * Creates a range inside an {@link module:engine/view/element~Element element} which starts before the first child of\n     * that element and ends after the last child of that element.\n     *\n     * @param {module:engine/view/element~Element} element Element which is a parent for the range.\n     * @returns {module:engine/view/range~Range}\n     */\n\n  }, {\n    key: \"createRangeIn\",\n    value: function createRangeIn(element) {\n      return Range._createIn(element);\n    }\n    /**\n     Creates new {@link module:engine/view/selection~Selection} instance.\n     *\n     * \t\t// Creates empty selection without ranges.\n     *\t\tconst selection = view.createSelection();\n     *\n     *\t\t// Creates selection at the given range.\n     *\t\tconst range = view.createRange( start, end );\n     *\t\tconst selection = view.createSelection( range );\n     *\n     *\t\t// Creates selection at the given ranges\n     * \t\tconst ranges = [ view.createRange( start1, end2 ), view.createRange( star2, end2 ) ];\n     *\t\tconst selection = view.createSelection( ranges );\n     *\n     *\t\t// Creates selection from the other selection.\n     *\t\tconst otherSelection = view.createSelection();\n     *\t\tconst selection = view.createSelection( otherSelection );\n     *\n     *\t\t// Creates selection from the document selection.\n     *\t\tconst selection = view.createSelection( editor.editing.view.document.selection );\n     *\n     * \t\t// Creates selection at the given position.\n     *\t\tconst position = view.createPositionFromPath( root, path );\n     *\t\tconst selection = view.createSelection( position );\n     *\n     *\t\t// Creates collapsed selection at the position of given item and offset.\n     *\t\tconst paragraph = view.createContainerElement( 'paragraph' );\n     *\t\tconst selection = view.createSelection( paragraph, offset );\n     *\n     *\t\t// Creates a range inside an {@link module:engine/view/element~Element element} which starts before the\n     *\t\t// first child of that element and ends after the last child of that element.\n     *\t\tconst selection = view.createSelection( paragraph, 'in' );\n     *\n     *\t\t// Creates a range on an {@link module:engine/view/item~Item item} which starts before the item and ends\n     *\t\t// just after the item.\n     *\t\tconst selection = view.createSelection( paragraph, 'on' );\n     *\n     * `Selection`'s factory method allow passing additional options (`backward`, `fake` and `label`) as the last argument.\n     *\n     *\t\t// Creates backward selection.\n     *\t\tconst selection = view.createSelection( range, { backward: true } );\n     *\n     * Fake selection does not render as browser native selection over selected elements and is hidden to the user.\n     * This way, no native selection UI artifacts are displayed to the user and selection over elements can be\n     * represented in other way, for example by applying proper CSS class.\n     *\n     * Additionally fake's selection label can be provided. It will be used to describe fake selection in DOM\n     * (and be  properly handled by screen readers).\n     *\n     *\t\t// Creates fake selection with label.\n     *\t\tconst selection = view.createSelection( range, { fake: true, label: 'foo' } );\n     *\n     * @param {module:engine/view/selection~Selectable} [selectable=null]\n     * @param {Number|'before'|'end'|'after'|'on'|'in'} [placeOrOffset] Offset or place when selectable is an `Item`.\n     * @param {Object} [options]\n     * @param {Boolean} [options.backward] Sets this selection instance to be backward.\n     * @param {Boolean} [options.fake] Sets this selection instance to be marked as `fake`.\n     * @param {String} [options.label] Label for the fake selection.\n     * @returns {module:engine/view/selection~Selection}\n     */\n\n  }, {\n    key: \"createSelection\",\n    value: function createSelection(selectable, placeOrOffset, options) {\n      return new Selection(selectable, placeOrOffset, options);\n    }\n    /**\n     * Disables or enables rendering. If the flag is set to `true` then the rendering will be disabled.\n     * If the flag is set to `false` and if there was some change in the meantime, then the rendering action will be performed.\n     *\n     * @protected\n     * @param {Boolean} flag A flag indicates whether the rendering should be disabled.\n     */\n\n  }, {\n    key: \"_disableRendering\",\n    value: function _disableRendering(flag) {\n      this._renderingDisabled = flag;\n\n      if (flag == false) {\n        // Render when you stop blocking rendering.\n        this.change(function () {});\n      }\n    }\n    /**\n     * Renders all changes. In order to avoid triggering the observers (e.g. mutations) all observers are disabled\n     * before rendering and re-enabled after that.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_render\",\n    value: function _render() {\n      this.isRenderingInProgress = true;\n      this.disableObservers();\n\n      this._renderer.render();\n\n      this.enableObservers();\n      this.isRenderingInProgress = false;\n    }\n    /**\n     * Fired after a topmost {@link module:engine/view/view~View#change change block} and all\n     * {@link module:engine/view/document~Document#registerPostFixer post-fixers} are executed.\n     *\n     * Actual rendering is performed as a first listener on 'normal' priority.\n     *\n     *\t\tview.on( 'render', () => {\n     *\t\t\t// Rendering to the DOM is complete.\n     *\t\t} );\n     *\n     * This event is useful when you want to update interface elements after the rendering, e.g. position of the\n     * balloon panel. If you wants to change view structure use\n     * {@link module:engine/view/document~Document#registerPostFixer post-fixers}.\n     *\n     * @event module:engine/view/view~View#event:render\n     */\n\n  }]);\n\n  return View;\n}();\n\nexport { View as default };\nmix(View, ObservableMixin);","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./placeholder.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"735c3690\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./placeholder.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./placeholder.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/enter\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport EnterCommand from \"./entercommand\";\nimport EnterObserver from \"./enterobserver\";\n/**\n * This plugin handles the <kbd>Enter</kbd> key (hard line break) in the editor.\n *\n * See also the {@link module:enter/shiftenter~ShiftEnter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Enter = /*#__PURE__*/function (_Plugin) {\n  _inherits(Enter, _Plugin);\n\n  var _super = _createSuper(Enter);\n\n  function Enter() {\n    _classCallCheck(this, Enter);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Enter, [{\n    key: \"init\",\n    value: function init() {\n      var editor = this.editor;\n      var view = editor.editing.view;\n      var viewDocument = view.document;\n      view.addObserver(EnterObserver);\n      editor.commands.add('enter', new EnterCommand(editor));\n      this.listenTo(viewDocument, 'enter', function (evt, data) {\n        data.preventDefault(); // The soft enter key is handled by the ShiftEnter plugin.\n\n        if (data.isSoft) {\n          return;\n        }\n\n        editor.execute('enter');\n        view.scrollToTheSelection();\n      }, {\n        priority: 'low'\n      });\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'Enter';\n    }\n  }]);\n\n  return Enter;\n}(Plugin);\n\nexport { Enter as default };","import \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/entercommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { getCopyOnEnterAttributes } from \"./utils\";\n/**\n * Enter command. It is used by the {@link module:enter/enter~Enter Enter feature} to handle the <kbd>Enter</kbd> key.\n *\n * @extends module:core/command~Command\n */\n\nvar EnterCommand = /*#__PURE__*/function (_Command) {\n  _inherits(EnterCommand, _Command);\n\n  var _super = _createSuper(EnterCommand);\n\n  function EnterCommand() {\n    _classCallCheck(this, EnterCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(EnterCommand, [{\n    key: \"execute\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function execute() {\n      var _this = this;\n\n      var model = this.editor.model;\n      var doc = model.document;\n      model.change(function (writer) {\n        enterBlock(_this.editor.model, writer, doc.selection, model.schema);\n\n        _this.fire('afterExecute', {\n          writer: writer\n        });\n      });\n    }\n  }]);\n\n  return EnterCommand;\n}(Command); // Creates a new block in the way that the <kbd>Enter</kbd> key is expected to work.\n//\n// @param {module:engine/model~Model} model\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n// Selection on which the action should be performed.\n// @param {module:engine/model/schema~Schema} schema\n\n\nexport { EnterCommand as default };\n\nfunction enterBlock(model, writer, selection, schema) {\n  var isSelectionEmpty = selection.isCollapsed;\n  var range = selection.getFirstRange();\n  var startElement = range.start.parent;\n  var endElement = range.end.parent; // Don't touch the roots and other limit elements.\n\n  if (schema.isLimit(startElement) || schema.isLimit(endElement)) {\n    // Delete the selected content but only if inside a single limit element.\n    // Abort, when crossing limit elements boundary (e.g. <limit1>x[x</limit1>donttouchme<limit2>y]y</limit2>).\n    // This is an edge case and it's hard to tell what should actually happen because such a selection\n    // is not entirely valid.\n    if (!isSelectionEmpty && startElement == endElement) {\n      model.deleteContent(selection);\n    }\n\n    return;\n  }\n\n  if (isSelectionEmpty) {\n    var attributesToCopy = getCopyOnEnterAttributes(writer.model.schema, selection.getAttributes());\n    splitBlock(writer, range.start);\n    writer.setSelectionAttribute(attributesToCopy);\n  } else {\n    var leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n    var isContainedWithinOneElement = startElement == endElement;\n    model.deleteContent(selection, {\n      leaveUnmerged: leaveUnmerged\n    });\n\n    if (leaveUnmerged) {\n      // Partially selected elements.\n      //\n      // <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x</h><h>^x</h>\n      if (isContainedWithinOneElement) {\n        splitBlock(writer, selection.focus);\n      } // Selection over multiple elements.\n      //\n      // <h>x[x</h><p>y]y<p>\t-> <h>x^</h><p>y</p>\t-> <h>x</h><p>^y</p>\n      else {\n          writer.setSelection(endElement, 0);\n        }\n    }\n  }\n}\n\nfunction splitBlock(writer, splitPos) {\n  writer.split(splitPos);\n  writer.setSelection(splitPos.parent.nextSibling, 0);\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/enterobserver\n */\nimport Observer from '@ckeditor/ckeditor5-engine/src/view/observer/observer';\nimport DomEventData from '@ckeditor/ckeditor5-engine/src/view/observer/domeventdata';\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\n/**\n * Enter observer introduces the {@link module:engine/view/document~Document#event:enter} event.\n *\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar EnterObserver = /*#__PURE__*/function (_Observer) {\n  _inherits(EnterObserver, _Observer);\n\n  var _super = _createSuper(EnterObserver);\n\n  function EnterObserver(view) {\n    var _this;\n\n    _classCallCheck(this, EnterObserver);\n\n    _this = _super.call(this, view);\n    var doc = _this.document;\n    doc.on('keydown', function (evt, data) {\n      if (_this.isEnabled && data.keyCode == keyCodes.enter) {\n        // Save the event object to check later if it was stopped or not.\n        var event;\n        doc.once('enter', function (evt) {\n          return event = evt;\n        }, {\n          priority: 'highest'\n        });\n        doc.fire('enter', new DomEventData(doc, data.domEvent, {\n          isSoft: data.shiftKey\n        })); // Stop `keydown` event if `enter` event was stopped.\n        // https://github.com/ckeditor/ckeditor5/issues/753\n\n        if (event && event.stop.called) {\n          evt.stop();\n        }\n      }\n    });\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(EnterObserver, [{\n    key: \"observe\",\n    value: function observe() {}\n  }]);\n\n  return EnterObserver;\n}(Observer);\n/**\n * Event fired when the user presses the <kbd>Enter</kbd> key.\n *\n * Note: This event is fired by the {@link module:enter/enterobserver~EnterObserver observer}\n * (usually registered by the {@link module:enter/enter~Enter Enter feature} and\n * {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature}).\n *\n * @event module:engine/view/document~Document#event:enter\n * @param {module:engine/view/observer/domeventdata~DomEventData} data\n * @param {Boolean} data.isSoft Whether it's a soft enter (<kbd>Shift</kbd>+<kbd>Enter</kbd>) or hard enter (<kbd>Enter</kbd>).\n */\n\n\nexport { EnterObserver as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/shiftenter\n */\nimport ShiftEnterCommand from \"./shiftentercommand\";\nimport EnterObserver from \"./enterobserver\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * This plugin handles the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke (soft line break) in the editor.\n *\n * See also the {@link module:enter/enter~Enter} plugin.\n *\n * For more information about this feature see the {@glink api/enter package page}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ShiftEnter = /*#__PURE__*/function (_Plugin) {\n  _inherits(ShiftEnter, _Plugin);\n\n  var _super = _createSuper(ShiftEnter);\n\n  function ShiftEnter() {\n    _classCallCheck(this, ShiftEnter);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ShiftEnter, [{\n    key: \"init\",\n    value: function init() {\n      var editor = this.editor;\n      var schema = editor.model.schema;\n      var conversion = editor.conversion;\n      var view = editor.editing.view;\n      var viewDocument = view.document; // Configure the schema.\n\n      schema.register('softBreak', {\n        allowWhere: '$text',\n        isInline: true\n      }); // Configure converters.\n\n      conversion.for('upcast').elementToElement({\n        model: 'softBreak',\n        view: 'br'\n      });\n      conversion.for('downcast').elementToElement({\n        model: 'softBreak',\n        view: function view(modelElement, viewWriter) {\n          return viewWriter.createEmptyElement('br');\n        }\n      });\n      view.addObserver(EnterObserver);\n      editor.commands.add('shiftEnter', new ShiftEnterCommand(editor));\n      this.listenTo(viewDocument, 'enter', function (evt, data) {\n        data.preventDefault(); // The hard enter key is handled by the Enter plugin.\n\n        if (!data.isSoft) {\n          return;\n        }\n\n        editor.execute('shiftEnter');\n        view.scrollToTheSelection();\n      }, {\n        priority: 'low'\n      });\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'ShiftEnter';\n    }\n  }]);\n\n  return ShiftEnter;\n}(Plugin);\n\nexport { ShiftEnter as default };","import \"core-js/modules/es6.string.anchor\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/shiftentercommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { getCopyOnEnterAttributes } from \"./utils\";\n/**\n * ShiftEnter command. It is used by the {@link module:enter/shiftenter~ShiftEnter ShiftEnter feature} to handle\n * the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke.\n *\n * @extends module:core/command~Command\n */\n\nvar ShiftEnterCommand = /*#__PURE__*/function (_Command) {\n  _inherits(ShiftEnterCommand, _Command);\n\n  var _super = _createSuper(ShiftEnterCommand);\n\n  function ShiftEnterCommand() {\n    _classCallCheck(this, ShiftEnterCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ShiftEnterCommand, [{\n    key: \"execute\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function execute() {\n      var _this = this;\n\n      var model = this.editor.model;\n      var doc = model.document;\n      model.change(function (writer) {\n        softBreakAction(model, writer, doc.selection);\n\n        _this.fire('afterExecute', {\n          writer: writer\n        });\n      });\n    }\n  }, {\n    key: \"refresh\",\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      this.isEnabled = isEnabled(model.schema, doc.selection);\n    }\n  }]);\n\n  return ShiftEnterCommand;\n}(Command); // Checks whether the ShiftEnter command should be enabled in the specified selection.\n//\n// @param {module:engine/model/schema~Schema} schema\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n\n\nexport { ShiftEnterCommand as default };\n\nfunction isEnabled(schema, selection) {\n  // At this moment it is okay to support single range selections only.\n  // But in the future we may need to change that.\n  if (selection.rangeCount > 1) {\n    return false;\n  }\n\n  var anchorPos = selection.anchor; // Check whether the break element can be inserted in the current selection anchor.\n\n  if (!anchorPos || !schema.checkChild(anchorPos, 'softBreak')) {\n    return false;\n  }\n\n  var range = selection.getFirstRange();\n  var startElement = range.start.parent;\n  var endElement = range.end.parent; // Do not modify the content if selection is cross-limit elements.\n\n  if ((isInsideLimitElement(startElement, schema) || isInsideLimitElement(endElement, schema)) && startElement !== endElement) {\n    return false;\n  }\n\n  return true;\n} // Creates a break in the way that the <kbd>Shift</kbd>+<kbd>Enter</kbd> keystroke is expected to work.\n//\n// @param {module:engine/model~Model} model\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} selection\n// Selection on which the action should be performed.\n\n\nfunction softBreakAction(model, writer, selection) {\n  var isSelectionEmpty = selection.isCollapsed;\n  var range = selection.getFirstRange();\n  var startElement = range.start.parent;\n  var endElement = range.end.parent;\n  var isContainedWithinOneElement = startElement == endElement;\n\n  if (isSelectionEmpty) {\n    var attributesToCopy = getCopyOnEnterAttributes(model.schema, selection.getAttributes());\n    insertBreak(writer, range.end);\n    writer.removeSelectionAttribute(selection.getAttributeKeys());\n    writer.setSelectionAttribute(attributesToCopy);\n  } else {\n    var leaveUnmerged = !(range.start.isAtStart && range.end.isAtEnd);\n    model.deleteContent(selection, {\n      leaveUnmerged: leaveUnmerged\n    }); // Selection within one element:\n    //\n    // <h>x[xx]x</h>\t\t-> <h>x^x</h>\t\t\t-> <h>x<br>^x</h>\n\n    if (isContainedWithinOneElement) {\n      insertBreak(writer, selection.focus);\n    } // Selection over multiple elements.\n    //\n    // <h>x[x</h><p>y]y<p>\t-> <h>x^</h><p>y</p>\t-> <h>x</h><p>^y</p>\n    //\n    // We chose not to insert a line break in this case because:\n    //\n    // * it's not a very common scenario,\n    // * it actually surprised me when I saw the \"expected behavior\" in real life.\n    //\n    // It's ok if the user will need to be more specific where they want the <br> to be inserted.\n    else {\n        // Move the selection to the 2nd element (last step of the example above).\n        if (leaveUnmerged) {\n          writer.setSelection(endElement, 0);\n        }\n      }\n  }\n}\n\nfunction insertBreak(writer, position) {\n  var breakLineElement = writer.createElement('softBreak');\n  writer.insert(breakLineElement, position);\n  writer.setSelection(breakLineElement, 'after');\n} // Checks whether the specified `element` is a child of the limit element.\n//\n// Checking whether the `<p>` element is inside a limit element:\n//   - <$root><p>Text.</p></$root> => false\n//   - <$root><limitElement><p>Text</p></limitElement></$root> => true\n//\n// @param {module:engine/model/element~Element} element\n// @param {module:engine/schema~Schema} schema\n// @returns {Boolean}\n\n\nfunction isInsideLimitElement(element, schema) {\n  // `$root` is a limit element but in this case is an invalid element.\n  if (element.is('rootElement')) {\n    return false;\n  }\n\n  return schema.isLimit(element) || isInsideLimitElement(element.parent, schema);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"regenerator-runtime/runtime\";\n\nvar _marked = /*#__PURE__*/regeneratorRuntime.mark(getCopyOnEnterAttributes);\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module enter/utils\n */\n\n/**\n * Returns attributes that should be preserved on the enter key.\n *\n * Filtering is realized based on `copyOnEnter` attribute property. Read more about attribute properties\n * {@link module:engine/model/schema~Schema#setAttributeProperties here}.\n *\n * @param {module:engine/model/schema~Schema} schema\n * @param {Iterable.<*>} allAttributes attributes to filter.\n * @returns {Iterable.<*>}\n */\nexport function getCopyOnEnterAttributes(schema, allAttributes) {\n  var _iterator, _step, attribute;\n\n  return regeneratorRuntime.wrap(function getCopyOnEnterAttributes$(_context) {\n    while (1) {\n      switch (_context.prev = _context.next) {\n        case 0:\n          _iterator = _createForOfIteratorHelper(allAttributes);\n          _context.prev = 1;\n\n          _iterator.s();\n\n        case 3:\n          if ((_step = _iterator.n()).done) {\n            _context.next = 10;\n            break;\n          }\n\n          attribute = _step.value;\n\n          if (!(attribute && schema.getAttributeProperties(attribute[0]).copyOnEnter)) {\n            _context.next = 8;\n            break;\n          }\n\n          _context.next = 8;\n          return attribute;\n\n        case 8:\n          _context.next = 3;\n          break;\n\n        case 10:\n          _context.next = 15;\n          break;\n\n        case 12:\n          _context.prev = 12;\n          _context.t0 = _context[\"catch\"](1);\n\n          _iterator.e(_context.t0);\n\n        case 15:\n          _context.prev = 15;\n\n          _iterator.f();\n\n          return _context.finish(15);\n\n        case 18:\n        case \"end\":\n          return _context.stop();\n      }\n    }\n  }, _marked, null, [[1, 12, 15, 18]]);\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module essentials/essentials\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';\nimport Enter from '@ckeditor/ckeditor5-enter/src/enter';\nimport ShiftEnter from '@ckeditor/ckeditor5-enter/src/shiftenter';\nimport Typing from '@ckeditor/ckeditor5-typing/src/typing';\nimport Undo from '@ckeditor/ckeditor5-undo/src/undo';\n/**\n * A plugin including all essential editing features. It represents a set of features that enables similar functionalities\n * to a `<textarea>` element.\n *\n * It includes:\n *\n * * {@link module:clipboard/clipboard~Clipboard},\n * * {@link module:enter/enter~Enter},\n * * {@link module:enter/shiftenter~ShiftEnter},\n * * {@link module:typing/typing~Typing},\n * * {@link module:undo/undo~Undo}.\n *\n * This plugin set does not define any block-level containers (such as {@link module:paragraph/paragraph~Paragraph}).\n * If your editor is supposed to handle block content, make sure to include it.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Essentials = /*#__PURE__*/function (_Plugin) {\n  _inherits(Essentials, _Plugin);\n\n  var _super = _createSuper(Essentials);\n\n  function Essentials() {\n    _classCallCheck(this, Essentials);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Essentials, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [Clipboard, Enter, ShiftEnter, Typing, Undo];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Essentials';\n    }\n  }]);\n\n  return Essentials;\n}(Plugin);\n\nexport { Essentials as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.array.find\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * @module font/documentcolorcollection\n */\n\n/**\n * A collection to store document colors. It enforces colors to be unique.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n * @extends module:utils/collection~Collection\n */\n\nvar DocumentColorCollection = /*#__PURE__*/function (_Collection) {\n  _inherits(DocumentColorCollection, _Collection);\n\n  var _super = _createSuper(DocumentColorCollection);\n\n  function DocumentColorCollection(options) {\n    var _this;\n\n    _classCallCheck(this, DocumentColorCollection);\n\n    _this = _super.call(this, options);\n    /**\n     * Indicates whether the document color collection is empty.\n     *\n     * @observable\n     * @readonly\n     * @member {Boolean} #isEmpty\n     */\n\n    _this.set('isEmpty', true);\n\n    return _this;\n  }\n  /**\n   * Adds a color to the document color collection.\n   *\n   * This method ensures that no color duplicates are inserted (compared using\n   * the color value of the {@link module:ui/colorgrid/colorgrid~ColorDefinition}).\n   *\n   * If the item does not have an ID, it will be automatically generated and set on the item.\n   *\n   * @chainable\n   * @param {module:ui/colorgrid/colorgrid~ColorDefinition} item\n   * @param {Number} [index] The position of the item in the collection. The item\n   * is pushed to the collection when `index` is not specified.\n   * @fires add\n   */\n\n\n  _createClass(DocumentColorCollection, [{\n    key: \"add\",\n    value: function add(item, index) {\n      if (this.find(function (element) {\n        return element.color === item.color;\n      })) {\n        // No duplicates are allowed.\n        return;\n      }\n\n      _get(_getPrototypeOf(DocumentColorCollection.prototype), \"add\", this).call(this, item, index);\n\n      this.set('isEmpty', false);\n    }\n    /**\n     * @inheritdoc\n     */\n\n  }, {\n    key: \"remove\",\n    value: function remove(subject) {\n      var ret = _get(_getPrototypeOf(DocumentColorCollection.prototype), \"remove\", this).call(this, subject);\n\n      if (this.length === 0) {\n        this.set('isEmpty', true);\n      }\n\n      return ret;\n    }\n    /**\n     * Checks if an object with given colors is present in the document color collection.\n     *\n     * @param {String} color\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"hasColor\",\n    value: function hasColor(color) {\n      return !!this.find(function (item) {\n        return item.color === color;\n      });\n    }\n  }]);\n\n  return DocumentColorCollection;\n}(Collection);\n\nexport { DocumentColorCollection as default };\nmix(DocumentColorCollection, ObservableMixin);","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/font\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontFamily from \"./fontfamily\";\nimport FontSize from \"./fontsize\";\nimport FontColor from \"./fontcolor\";\nimport FontBackgroundColor from \"./fontbackgroundcolor\";\n/**\n * A plugin that enables a set of text styling features:\n *\n * * {@link module:font/fontsize~FontSize},\n * * {@link module:font/fontfamily~FontFamily}.\n * * {@link module:font/fontcolor~FontColor},\n * * {@link module:font/fontbackgroundcolor~FontBackgroundColor}.\n *\n * For a detailed overview, check the {@glink features/font Font feature} documentation\n * and the {@glink api/font package page}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Font = /*#__PURE__*/function (_Plugin) {\n  _inherits(Font, _Plugin);\n\n  var _super = _createSuper(Font);\n\n  function Font() {\n    _classCallCheck(this, Font);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Font, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [FontFamily, FontSize, FontColor, FontBackgroundColor];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Font';\n    }\n  }]);\n\n  return Font;\n}(Plugin);\n\nexport { Font as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontbackgroundcolor\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontBackgroundColorEditing from \"./fontbackgroundcolor/fontbackgroundcolorediting\";\nimport FontBackgroundColorUI from \"./fontbackgroundcolor/fontbackgroundcolorui\";\n/**\n * The font background color plugin.\n *\n * For a detailed overview, check the {@glink features/font font feature} documentation\n * and the {@glink api/font package page}.\n *\n * This is a \"glue\" plugin which loads\n * the {@link module:font/fontbackgroundcolor/fontbackgroundcolorediting~FontBackgroundColorEditing} and\n * {@link module:font/fontbackgroundcolor/fontbackgroundcolorui~FontBackgroundColorUI} features in the editor.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontBackgroundColor = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontBackgroundColor, _Plugin);\n\n  var _super = _createSuper(FontBackgroundColor);\n\n  function FontBackgroundColor() {\n    _classCallCheck(this, FontBackgroundColor);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(FontBackgroundColor, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [FontBackgroundColorEditing, FontBackgroundColorUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'FontBackgroundColor';\n    }\n  }]);\n\n  return FontBackgroundColor;\n}(Plugin);\n/**\n * The configuration of the font background color feature.\n * It is introduced by the {@link module:font/fontbackgroundcolor/fontbackgroundcolorediting~FontBackgroundColorEditing} feature.\n *\n * Read more in {@link module:font/fontbackgroundcolor~FontBackgroundColorConfig}.\n *\n * @member {module:font/fontbackgroundcolor~FontBackgroundColorConfig} module:core/editor/editorconfig~EditorConfig#fontBackgroundColor\n */\n\n/**\n * The configuration of the font background color feature.\n * This option is used by the {@link module:font/fontbackgroundcolor/fontbackgroundcolorediting~FontBackgroundColorEditing} feature.\n *\n *\t\tClassicEditor\n *\t\t\t.create( {\n *\t\t\t\tfontBackgroundColor: ... // Font background color feature configuration.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface module:font/fontbackgroundcolor~FontBackgroundColorConfig\n */\n\n/**\n * Available font background colors defined as an array of strings or objects.\n *\n * The default value registers the following colors:\n *\n *\t\tconst fontBackgroundColorConfig = {\n *\t\t\tcolors: [\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 0%)',\n *\t\t\t\t\tlabel: 'Black'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 30%)',\n *\t\t\t\t\tlabel: 'Dim grey'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 60%)',\n *\t\t\t\t\tlabel: 'Grey'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 90%)',\n *\t\t\t\t\tlabel: 'Light grey'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 100%)',\n *\t\t\t\t\tlabel: 'White',\n *\t\t\t\t\thasBorder: true\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Red'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(30, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Orange'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(60, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Yellow'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(90, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Light green'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(120, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Green'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(150, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Aquamarine'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(180, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Turquoise'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(210, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Light blue'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(240, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Blue'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(270, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Purple'\n *\t\t\t\t}\n *\t\t\t]\n *\t\t};\n *\n * *Note*: The colors are displayed in the `'fontBackgroundColor'` dropdown.\n *\n * @member {Array.<String|Object>} module:font/fontbackgroundcolor~FontBackgroundColorConfig#colors\n */\n\n/**\n * Represents the number of columns in the font background color dropdown.\n *\n * The default value is:\n *\n *\t\tconst fontBackgroundColorConfig = {\n *\t\t\tcolumns: 5\n *\t\t}\n *\n * @member {Number} module:font/fontbackgroundcolor~FontBackgroundColorConfig#columns\n */\n\n/**\n * Determines the maximum number of available document colors.\n * Setting it to `0` will disable the document colors feature.\n *\n * By default it equals to the {@link module:font/fontbackgroundcolor~FontBackgroundColorConfig#columns} value.\n *\n * Examples:\n *\n * \t// 1) Neither document colors nor columns are defined in the configuration.\n * \t// Document colors will equal 5,\n * \t// because the value will be inherited from columns,\n * \t// which has a predefined value of 5.\n * \tconst fontBackgroundColorConfig = {}\n *\n * \t// 2) Document colors will equal 8, because the value will be inherited from columns.\n * \tconst fontBackgroundColorConfig = {\n * \t\tcolumns: 8\n * \t}\n *\n * \t// 3) Document colors will equal 24, because it has its own value defined.\n * \tconst fontBackgroundColorConfig = {\n * \t\tcolumns: 8,\n * \t\tdocumentColors: 24\n * \t}\n *\n * \t// 4) The document colors feature will be disabled.\n * \tconst fontBackgroundColorConfig = {\n * \t\tcolumns: 8,\n * \t\tdocumentColors: 0\n * \t}\n *\n * @member {Number} module:font/fontbackgroundcolor~FontBackgroundColorConfig#documentColors\n */\n\n\nexport { FontBackgroundColor as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontbackgroundcolor/fontbackgroundcolorcommand\n */\nimport FontCommand from \"../fontcommand\";\nimport { FONT_BACKGROUND_COLOR } from \"../utils\";\n/**\n * The font background color command. It is used by\n * {@link module:font/fontbackgroundcolor/fontbackgroundcolorediting~FontBackgroundColorEditing}\n * to apply the font background color.\n *\n *\t\teditor.execute( 'fontBackgroundColor', { value: 'rgb(250, 20, 20)' } );\n *\n * **Note**: Executing the command with the `null` value removes the attribute from the model.\n *\n * @extends module:font/fontcommand~FontCommand\n */\n\nvar FontBackgroundColorCommand = /*#__PURE__*/function (_FontCommand) {\n  _inherits(FontBackgroundColorCommand, _FontCommand);\n\n  var _super = _createSuper(FontBackgroundColorCommand);\n\n  /**\n   * @inheritDoc\n   */\n  function FontBackgroundColorCommand(editor) {\n    _classCallCheck(this, FontBackgroundColorCommand);\n\n    return _super.call(this, editor, FONT_BACKGROUND_COLOR);\n  }\n\n  return FontBackgroundColorCommand;\n}(FontCommand);\n\nexport { FontBackgroundColorCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontbackgroundcolor/fontbackgroundcolorediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontBackgroundColorCommand from \"./fontbackgroundcolorcommand\";\nimport { FONT_BACKGROUND_COLOR, renderDowncastElement, renderUpcastAttribute } from \"../utils\";\n/**\n * The font background color editing feature.\n *\n * It introduces the {@link module:font/fontbackgroundcolor/fontbackgroundcolorcommand~FontBackgroundColorCommand command} and\n * the `fontBackgroundColor` attribute in the {@link module:engine/model/model~Model model} which renders\n * in the {@link module:engine/view/view view} as a `<span>` element (`<span style=\"background-color: ...\">`),\n * depending on the {@link module:font/fontbackgroundcolor~FontBackgroundColorConfig configuration}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontBackgroundColorEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontBackgroundColorEditing, _Plugin);\n\n  var _super = _createSuper(FontBackgroundColorEditing);\n\n  _createClass(FontBackgroundColorEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'FontBackgroundColorEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function FontBackgroundColorEditing(editor) {\n    var _this;\n\n    _classCallCheck(this, FontBackgroundColorEditing);\n\n    _this = _super.call(this, editor);\n    editor.config.define(FONT_BACKGROUND_COLOR, {\n      colors: [{\n        color: 'hsl(0, 0%, 0%)',\n        label: 'Black'\n      }, {\n        color: 'hsl(0, 0%, 30%)',\n        label: 'Dim grey'\n      }, {\n        color: 'hsl(0, 0%, 60%)',\n        label: 'Grey'\n      }, {\n        color: 'hsl(0, 0%, 90%)',\n        label: 'Light grey'\n      }, {\n        color: 'hsl(0, 0%, 100%)',\n        label: 'White',\n        hasBorder: true\n      }, {\n        color: 'hsl(0, 75%, 60%)',\n        label: 'Red'\n      }, {\n        color: 'hsl(30, 75%, 60%)',\n        label: 'Orange'\n      }, {\n        color: 'hsl(60, 75%, 60%)',\n        label: 'Yellow'\n      }, {\n        color: 'hsl(90, 75%, 60%)',\n        label: 'Light green'\n      }, {\n        color: 'hsl(120, 75%, 60%)',\n        label: 'Green'\n      }, {\n        color: 'hsl(150, 75%, 60%)',\n        label: 'Aquamarine'\n      }, {\n        color: 'hsl(180, 75%, 60%)',\n        label: 'Turquoise'\n      }, {\n        color: 'hsl(210, 75%, 60%)',\n        label: 'Light blue'\n      }, {\n        color: 'hsl(240, 75%, 60%)',\n        label: 'Blue'\n      }, {\n        color: 'hsl(270, 75%, 60%)',\n        label: 'Purple'\n      }],\n      columns: 5\n    });\n    editor.conversion.for('upcast').elementToAttribute({\n      view: {\n        name: 'span',\n        styles: {\n          'background-color': /[\\s\\S]+/\n        }\n      },\n      model: {\n        key: FONT_BACKGROUND_COLOR,\n        value: renderUpcastAttribute('background-color')\n      }\n    });\n    editor.conversion.for('downcast').attributeToElement({\n      model: FONT_BACKGROUND_COLOR,\n      view: renderDowncastElement('background-color')\n    });\n    editor.commands.add(FONT_BACKGROUND_COLOR, new FontBackgroundColorCommand(editor)); // Allow the font backgroundColor attribute on text nodes.\n\n    editor.model.schema.extend('$text', {\n      allowAttributes: FONT_BACKGROUND_COLOR\n    });\n    editor.model.schema.setAttributeProperties(FONT_BACKGROUND_COLOR, {\n      isFormatting: true,\n      copyOnEnter: true\n    });\n    return _this;\n  }\n\n  return FontBackgroundColorEditing;\n}(Plugin);\n\nexport { FontBackgroundColorEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontbackgroundcolor/fontbackgroundcolorui\n */\nimport ColorUI from '../ui/colorui';\nimport { FONT_BACKGROUND_COLOR } from '../utils';\nimport fontBackgroundColorIcon from '../../theme/icons/font-background.svg';\n/**\n * The font background color UI plugin. It introduces the `'fontBackgroundColor'` dropdown.\n *\n * @extends module:core/plugin~Plugin\n */\nvar FontBackgroundColorUI = /*#__PURE__*/\nfunction (_ColorUI) {\n    _inherits(FontBackgroundColorUI, _ColorUI);\n    var _super = _createSuper(FontBackgroundColorUI);\n    /**\n   * @inheritDoc\n   */\n    function FontBackgroundColorUI(editor) {\n        _classCallCheck(this, FontBackgroundColorUI);\n        var t = editor.locale.t;\n        return _super.call(this, editor, {\n            commandName: FONT_BACKGROUND_COLOR,\n            componentName: FONT_BACKGROUND_COLOR,\n            icon: fontBackgroundColorIcon,\n            dropdownLabel: t('Font Background Color')\n        });\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(FontBackgroundColorUI, null, [{\n            key: 'pluginName',\n            get: function get() {\n                return 'FontBackgroundColorUI';\n            }\n        }]);\n    return FontBackgroundColorUI;\n}(ColorUI);\nexport {\n    FontBackgroundColorUI as default\n};","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontcolor\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontColorEditing from \"./fontcolor/fontcolorediting\";\nimport FontColorUI from \"./fontcolor/fontcolorui\";\n/**\n * The font color plugin.\n *\n * For a detailed overview, check the {@glink features/font font feature} documentation\n * and the {@glink api/font package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:font/fontcolor/fontcolorediting~FontColorEditing} and\n * {@link module:font/fontcolor/fontcolorui~FontColorUI} features in the editor.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontColor = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontColor, _Plugin);\n\n  var _super = _createSuper(FontColor);\n\n  function FontColor() {\n    _classCallCheck(this, FontColor);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(FontColor, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [FontColorEditing, FontColorUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'FontColor';\n    }\n  }]);\n\n  return FontColor;\n}(Plugin);\n/**\n * The configuration of the font color feature.\n * It is introduced by the {@link module:font/fontcolor/fontcolorediting~FontColorEditing} feature.\n *\n * Read more in {@link module:font/fontcolor~FontColorConfig}.\n *\n * @member {module:font/fontcolor~FontColorConfig} module:core/editor/editorconfig~EditorConfig#fontColor\n */\n\n/**\n * The configuration of the font color feature.\n * This option is used by the {@link module:font/fontcolor/fontcolorediting~FontColorEditing} feature.\n *\n *\t\tClassicEditor\n *\t\t\t.create( {\n *\t\t\t\tfontColor: ... // Font color feature configuration.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface module:font/fontcolor~FontColorConfig\n */\n\n/**\n * Available font colors defined as an array of strings or objects.\n *\n * The default value registers the following colors:\n *\n *\t\tconst fontColorConfig = {\n *\t\t\tcolors: [\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 0%)',\n *\t\t\t\t\tlabel: 'Black'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 30%)',\n *\t\t\t\t\tlabel: 'Dim grey'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 60%)',\n *\t\t\t\t\tlabel: 'Grey'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 90%)',\n *\t\t\t\t\tlabel: 'Light grey'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 0%, 100%)',\n *\t\t\t\t\tlabel: 'White',\n *\t\t\t\t\thasBorder: true\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(0, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Red'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(30, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Orange'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(60, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Yellow'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(90, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Light green'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(120, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Green'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(150, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Aquamarine'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(180, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Turquoise'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(210, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Light blue'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(240, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Blue'\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\tcolor: 'hsl(270, 75%, 60%)',\n *\t\t\t\t\tlabel: 'Purple'\n *\t\t\t\t}\n *\t\t\t]\n *\t\t};\n *\n * *Note*: The colors are displayed in the `'fontColor'` dropdown.\n *\n * @member {Array.<String|Object>} module:font/fontcolor~FontColorConfig#colors\n */\n\n/**\n * Represents the number of columns in the font color dropdown.\n *\n * The default value is:\n *\n *\t\tconst fontColorConfig = {\n *\t\t\tcolumns: 5\n *\t\t}\n *\n * @member {Number} module:font/fontcolor~FontColorConfig#columns\n */\n\n/**\n * Determines the maximum number of available document colors.\n * Setting it to `0` will disable the document colors feature.\n *\n * By default it equals to the {@link module:font/fontcolor~FontColorConfig#columns} value.\n *\n * Examples:\n *\n * \t// 1) Neither document colors nor columns are defined in the configuration.\n * \t// Document colors will equal 5,\n * \t// because the value will be inherited from columns,\n * \t// which has a predefined value of 5.\n * \tconst fontColorConfig = {}\n *\n * \t// 2) Document colors will equal 8, because the value will be inherited from columns.\n * \tconst fontColorConfig = {\n * \t\tcolumns: 8\n * \t}\n *\n * \t// 3) Document colors will equal 24, because it has its own value defined.\n * \tconst fontColorConfig = {\n * \t\tcolumns: 8,\n * \t\tdocumentColors: 24\n * \t}\n *\n * \t// 4) The document colors feature will be disabled.\n * \tconst fontColorConfig = {\n * \t\tcolumns: 8,\n * \t\tdocumentColors: 0\n * \t}\n *\n * @member {Number} module:font/fontcolor~FontColorConfig#documentColors\n */\n\n\nexport { FontColor as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontcolor/fontcolorcommand\n */\nimport FontCommand from \"../fontcommand\";\nimport { FONT_COLOR } from \"../utils\";\n/**\n * The font color command. It is used by {@link module:font/fontcolor/fontcolorediting~FontColorEditing}\n * to apply the font color.\n *\n *\t\teditor.execute( 'fontColor', { value: 'rgb(250, 20, 20)' } );\n *\n * **Note**: Executing the command with the `null` value removes the attribute from the model.\n *\n * @extends module:font/fontcommand~FontCommand\n */\n\nvar FontColorCommand = /*#__PURE__*/function (_FontCommand) {\n  _inherits(FontColorCommand, _FontCommand);\n\n  var _super = _createSuper(FontColorCommand);\n\n  /**\n   * @inheritDoc\n   */\n  function FontColorCommand(editor) {\n    _classCallCheck(this, FontColorCommand);\n\n    return _super.call(this, editor, FONT_COLOR);\n  }\n\n  return FontColorCommand;\n}(FontCommand);\n\nexport { FontColorCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontcolor/fontcolorediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontColorCommand from \"./fontcolorcommand\";\nimport { FONT_COLOR, renderDowncastElement, renderUpcastAttribute } from \"../utils\";\n/**\n * The font color editing feature.\n *\n * It introduces the {@link module:font/fontcolor/fontcolorcommand~FontColorCommand command} and\n * the `fontColor` attribute in the {@link module:engine/model/model~Model model} which renders\n * in the {@link module:engine/view/view view} as a `<span>` element (`<span style=\"color: ...\">`),\n * depending on the {@link module:font/fontcolor~FontColorConfig configuration}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontColorEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontColorEditing, _Plugin);\n\n  var _super = _createSuper(FontColorEditing);\n\n  _createClass(FontColorEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'FontColorEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function FontColorEditing(editor) {\n    var _this;\n\n    _classCallCheck(this, FontColorEditing);\n\n    _this = _super.call(this, editor);\n    editor.config.define(FONT_COLOR, {\n      colors: [{\n        color: 'hsl(0, 0%, 0%)',\n        label: 'Black'\n      }, {\n        color: 'hsl(0, 0%, 30%)',\n        label: 'Dim grey'\n      }, {\n        color: 'hsl(0, 0%, 60%)',\n        label: 'Grey'\n      }, {\n        color: 'hsl(0, 0%, 90%)',\n        label: 'Light grey'\n      }, {\n        color: 'hsl(0, 0%, 100%)',\n        label: 'White',\n        hasBorder: true\n      }, {\n        color: 'hsl(0, 75%, 60%)',\n        label: 'Red'\n      }, {\n        color: 'hsl(30, 75%, 60%)',\n        label: 'Orange'\n      }, {\n        color: 'hsl(60, 75%, 60%)',\n        label: 'Yellow'\n      }, {\n        color: 'hsl(90, 75%, 60%)',\n        label: 'Light green'\n      }, {\n        color: 'hsl(120, 75%, 60%)',\n        label: 'Green'\n      }, {\n        color: 'hsl(150, 75%, 60%)',\n        label: 'Aquamarine'\n      }, {\n        color: 'hsl(180, 75%, 60%)',\n        label: 'Turquoise'\n      }, {\n        color: 'hsl(210, 75%, 60%)',\n        label: 'Light blue'\n      }, {\n        color: 'hsl(240, 75%, 60%)',\n        label: 'Blue'\n      }, {\n        color: 'hsl(270, 75%, 60%)',\n        label: 'Purple'\n      }],\n      columns: 5\n    });\n    editor.conversion.for('upcast').elementToAttribute({\n      view: {\n        name: 'span',\n        styles: {\n          'color': /[\\s\\S]+/\n        }\n      },\n      model: {\n        key: FONT_COLOR,\n        value: renderUpcastAttribute('color')\n      }\n    });\n    editor.conversion.for('downcast').attributeToElement({\n      model: FONT_COLOR,\n      view: renderDowncastElement('color')\n    });\n    editor.commands.add(FONT_COLOR, new FontColorCommand(editor)); // Allow the font color attribute on text nodes.\n\n    editor.model.schema.extend('$text', {\n      allowAttributes: FONT_COLOR\n    });\n    editor.model.schema.setAttributeProperties(FONT_COLOR, {\n      isFormatting: true,\n      copyOnEnter: true\n    });\n    return _this;\n  }\n\n  return FontColorEditing;\n}(Plugin);\n\nexport { FontColorEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontcolor/fontcolorui\n */\nimport ColorUI from '../ui/colorui';\nimport { FONT_COLOR } from '../utils';\nimport fontColorIcon from '../../theme/icons/font-color.svg';\n/**\n * The font color UI plugin. It introduces the `'fontColor'` dropdown.\n *\n * @extends module:core/plugin~Plugin\n */\nvar FontColorUI = /*#__PURE__*/\nfunction (_ColorUI) {\n    _inherits(FontColorUI, _ColorUI);\n    var _super = _createSuper(FontColorUI);\n    /**\n   * @inheritDoc\n   */\n    function FontColorUI(editor) {\n        _classCallCheck(this, FontColorUI);\n        var t = editor.locale.t;\n        return _super.call(this, editor, {\n            commandName: FONT_COLOR,\n            componentName: FONT_COLOR,\n            icon: fontColorIcon,\n            dropdownLabel: t('Font Color')\n        });\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(FontColorUI, null, [{\n            key: 'pluginName',\n            get: function get() {\n                return 'FontColorUI';\n            }\n        }]);\n    return FontColorUI;\n}(ColorUI);\nexport {\n    FontColorUI as default\n};","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\n/**\n * The base font command.\n *\n * @extends module:core/command~Command\n */\n\nvar FontCommand = /*#__PURE__*/function (_Command) {\n  _inherits(FontCommand, _Command);\n\n  var _super = _createSuper(FontCommand);\n\n  /**\n   * Creates an instance of the command.\n   *\n   * @param {module:core/editor/editor~Editor} editor Editor instance.\n   * @param {String} attributeKey The name of a model attribute on which this command operates.\n   */\n  function FontCommand(editor, attributeKey) {\n    var _this;\n\n    _classCallCheck(this, FontCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * When set, it reflects the {@link #attributeKey} value of the selection.\n     *\n     * @observable\n     * @readonly\n     * @member {Boolean} module:font/fontcommand~FontCommand#value\n     */\n\n    /**\n     * A model attribute on which this command operates.\n     *\n     * @readonly\n     * @member {Boolean} module:font/fontcommand~FontCommand#attributeKey\n     */\n\n    _this.attributeKey = attributeKey;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(FontCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      this.value = doc.selection.getAttribute(this.attributeKey);\n      this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, this.attributeKey);\n    }\n    /**\n     * Executes the command. Applies the `value` of the {@link #attributeKey} to the selection.\n     * If no `value` is passed, it removes the attribute from the selection.\n     *\n     * @protected\n     * @param {Object} [options] Options for the executed command.\n     * @param {String} [options.value] The value to apply.\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this2 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var document = model.document;\n      var selection = document.selection;\n      var value = options.value;\n      model.change(function (writer) {\n        if (selection.isCollapsed) {\n          if (value) {\n            writer.setSelectionAttribute(_this2.attributeKey, value);\n          } else {\n            writer.removeSelectionAttribute(_this2.attributeKey);\n          }\n        } else {\n          var ranges = model.schema.getValidRanges(selection.getRanges(), _this2.attributeKey);\n\n          var _iterator = _createForOfIteratorHelper(ranges),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var range = _step.value;\n\n              if (value) {\n                writer.setAttribute(_this2.attributeKey, value, range);\n              } else {\n                writer.removeAttribute(_this2.attributeKey, range);\n              }\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        }\n      });\n    }\n  }]);\n\n  return FontCommand;\n}(Command);\n\nexport { FontCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontfamily\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontFamilyEditing from \"./fontfamily/fontfamilyediting\";\nimport FontFamilyUI from \"./fontfamily/fontfamilyui\";\n/**\n * The font family plugin.\n *\n * For a detailed overview, check the {@glink features/font font feature} documentatiom\n * and the {@glink api/font package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:font/fontfamily/fontfamilyediting~FontFamilyEditing} and\n * {@link module:font/fontfamily/fontfamilyui~FontFamilyUI} features in the editor.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontFamily = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontFamily, _Plugin);\n\n  var _super = _createSuper(FontFamily);\n\n  function FontFamily() {\n    _classCallCheck(this, FontFamily);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(FontFamily, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [FontFamilyEditing, FontFamilyUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'FontFamily';\n    }\n  }]);\n\n  return FontFamily;\n}(Plugin);\n/**\n * The font family option descriptor.\n *\n * @typedef {Object} module:font/fontfamily~FontFamilyOption\n *\n * @property {String} title The user-readable title of the option.\n * @property {String} model The attribute's unique value in the model.\n * @property {module:engine/view/elementdefinition~ElementDefinition} view View element configuration.\n * @property {Array.<module:engine/view/elementdefinition~ElementDefinition>} [upcastAlso] An array with all matched elements that\n * the view-to-model conversion should also accept.\n */\n\n/**\n * The configuration of the font family feature.\n * It is introduced by the {@link module:font/fontfamily/fontfamilyediting~FontFamilyEditing} feature.\n *\n * Read more in {@link module:font/fontfamily~FontFamilyConfig}.\n *\n * @member {module:font/fontfamily~FontFamilyConfig} module:core/editor/editorconfig~EditorConfig#fontFamily\n */\n\n/**\n * The configuration of the font family feature.\n * This option is used by the {@link module:font/fontfamily/fontfamilyediting~FontFamilyEditing} feature.\n *\n *\t\tClassicEditor\n *\t\t\t.create( {\n * \t\t\t\tfontFamily: ... // Font family feature configuration.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface module:font/fontfamily~FontFamilyConfig\n */\n\n/**\n * Available font family options defined as an array of strings. The default value is:\n *\n *\t\tconst fontFamilyConfig = {\n *\t\t\toptions: [\n *\t\t\t\t'default',\n *\t\t\t\t'Arial, Helvetica, sans-serif',\n *\t\t\t\t'Courier New, Courier, monospace',\n *\t\t\t\t'Georgia, serif',\n *\t\t\t\t'Lucida Sans Unicode, Lucida Grande, sans-serif',\n *\t\t\t\t'Tahoma, Geneva, sans-serif',\n *\t\t\t\t'Times New Roman, Times, serif',\n *\t\t\t\t'Trebuchet MS, Helvetica, sans-serif',\n *\t\t\t\t'Verdana, Geneva, sans-serif'\n *\t\t\t]\n *\t\t};\n *\n * which configures 8 font family options. Each option consists of one or more comma–separated font family names. The first font name is\n * used as the dropdown item description in the UI.\n *\n * **Note:** The family names that consist of spaces should not have quotes (as opposed to the CSS standard). The necessary quotes\n * will be added automatically in the view. For example, the `\"Lucida Sans Unicode\"` will render as follows:\n *\n * \t\t<span style=\"font-family:'Lucida Sans Unicode', 'Lucida Grande', sans-serif\">...</span>\n *\n * The \"default\" option removes the `fontFamily` attribute from the selection. In such case, the text will\n * be rendered in the view using the default font family defined in the styles of the web page.\n *\n * Font family can be applied using the command API. To do that, use the `fontFamily` command and pass the desired family as a `value`.\n * For example, the following code will apply the `fontFamily` attribute with the `'Arial'` `value` to the current selection:\n *\n *\t\teditor.execute( 'fontFamily', { value: 'Arial' } );\n *\n * Executing the `'fontFamily'` command without any value will remove the `fontFamily` attribute from the current selection.\n *\n * @member {Array.<String|module:font/fontfamily~FontFamilyOption>} module:font/fontfamily~FontFamilyConfig#options\n */\n\n\nexport { FontFamily as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontfamily/fontfamilycommand\n */\nimport FontCommand from \"../fontcommand\";\nimport { FONT_FAMILY } from \"../utils\";\n/**\n * The font family command. It is used by {@link module:font/fontfamily/fontfamilyediting~FontFamilyEditing}\n * to apply the font family.\n *\n *\t\teditor.execute( 'fontFamily', { value: 'Arial' } );\n *\n * **Note**: Executing the command without the value removes the attribute from the model.\n *\n * @extends module:font/fontcommand~FontCommand\n */\n\nvar FontFamilyCommand = /*#__PURE__*/function (_FontCommand) {\n  _inherits(FontFamilyCommand, _FontCommand);\n\n  var _super = _createSuper(FontFamilyCommand);\n\n  /**\n   * @inheritDoc\n   */\n  function FontFamilyCommand(editor) {\n    _classCallCheck(this, FontFamilyCommand);\n\n    return _super.call(this, editor, FONT_FAMILY);\n  }\n\n  return FontFamilyCommand;\n}(FontCommand);\n\nexport { FontFamilyCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontfamily/fontfamilyediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontFamilyCommand from \"./fontfamilycommand\";\nimport { normalizeOptions } from \"./utils\";\nimport { buildDefinition, FONT_FAMILY } from \"../utils\";\n/**\n * The font family editing feature.\n *\n * It introduces the {@link module:font/fontfamily/fontfamilycommand~FontFamilyCommand command} and\n * the `fontFamily` attribute in the {@link module:engine/model/model~Model model} which renders\n * in the {@link module:engine/view/view view} as an inline `<span>` element (`<span style=\"font-family: Arial\">`),\n * depending on the {@link module:font/fontfamily~FontFamilyConfig configuration}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontFamilyEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontFamilyEditing, _Plugin);\n\n  var _super = _createSuper(FontFamilyEditing);\n\n  _createClass(FontFamilyEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'FontFamilyEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function FontFamilyEditing(editor) {\n    var _this;\n\n    _classCallCheck(this, FontFamilyEditing);\n\n    _this = _super.call(this, editor); // Define default configuration using font families shortcuts.\n\n    editor.config.define(FONT_FAMILY, {\n      options: ['default', 'Arial, Helvetica, sans-serif', 'Courier New, Courier, monospace', 'Georgia, serif', 'Lucida Sans Unicode, Lucida Grande, sans-serif', 'Tahoma, Geneva, sans-serif', 'Times New Roman, Times, serif', 'Trebuchet MS, Helvetica, sans-serif', 'Verdana, Geneva, sans-serif']\n    });\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(FontFamilyEditing, [{\n    key: \"init\",\n    value: function init() {\n      var editor = this.editor; // Allow fontFamily attribute on text nodes.\n\n      editor.model.schema.extend('$text', {\n        allowAttributes: FONT_FAMILY\n      });\n      editor.model.schema.setAttributeProperties(FONT_FAMILY, {\n        isFormatting: true,\n        copyOnEnter: true\n      }); // Get configured font family options without \"default\" option.\n\n      var options = normalizeOptions(editor.config.get('fontFamily.options')).filter(function (item) {\n        return item.model;\n      });\n      var definition = buildDefinition(FONT_FAMILY, options); // Set-up the two-way conversion.\n\n      editor.conversion.attributeToElement(definition);\n      editor.commands.add(FONT_FAMILY, new FontFamilyCommand(editor));\n    }\n  }]);\n\n  return FontFamilyEditing;\n}(Plugin);\n\nexport { FontFamilyEditing as default };","import 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontfamily/fontfamilyui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Model from '@ckeditor/ckeditor5-ui/src/model';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport {\n    createDropdown,\n    addListToDropdown\n} from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport { normalizeOptions } from './utils';\nimport { FONT_FAMILY } from '../utils';\nimport fontFamilyIcon from '../../theme/icons/font-family.svg';\n/**\n * The font family UI plugin. It introduces the `'fontFamily'` dropdown.\n *\n * @extends module:core/plugin~Plugin\n */\nvar FontFamilyUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(FontFamilyUI, _Plugin);\n    var _super = _createSuper(FontFamilyUI);\n    function FontFamilyUI() {\n        _classCallCheck(this, FontFamilyUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(FontFamilyUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                var options = this._getLocalizedOptions();\n                var command = editor.commands.get(FONT_FAMILY);\n                // Register UI component.\n                editor.ui.componentFactory.add(FONT_FAMILY, function (locale) {\n                    var dropdownView = createDropdown(locale);\n                    addListToDropdown(dropdownView, _prepareListOptions(options, command));\n                    dropdownView.buttonView.set({\n                        label: t('Font Family'),\n                        icon: fontFamilyIcon,\n                        tooltip: true\n                    });\n                    dropdownView.extendTemplate({ attributes: { class: 'ck-font-family-dropdown' } });\n                    dropdownView.bind('isEnabled').to(command);\n                    // Execute command when an item from the dropdown is selected.\n                    _this.listenTo(dropdownView, 'execute', function (evt) {\n                        editor.execute(evt.source.commandName, { value: evt.source.commandParam });\n                        editor.editing.view.focus();\n                    });\n                    return dropdownView;\n                });\n            }    /**\n     * Returns options as defined in `config.fontFamily.options` but processed to account for\n     * editor localization, i.e. to display {@link module:font/fontfamily~FontFamilyOption}\n     * in the correct language.\n     *\n     * Note: The reason behind this method is that there is no way to use {@link module:utils/locale~Locale#t}\n     * when the user configuration is defined because the editor does not exist yet.\n     *\n     * @private\n     * @returns {Array.<module:font/fontfamily~FontFamilyOption>}.\n     */\n        },\n        {\n            key: '_getLocalizedOptions',\n            value: function _getLocalizedOptions() {\n                var editor = this.editor;\n                var t = editor.t;\n                var options = normalizeOptions(editor.config.get(FONT_FAMILY).options);\n                return options.map(function (option) {\n                    // The only title to localize is \"Default\" others are font names.\n                    if (option.title === 'Default') {\n                        option.title = t('Default');\n                    }\n                    return option;\n                });\n            }\n        }\n    ]);\n    return FontFamilyUI;\n}(Plugin);\n// Prepares FontFamily dropdown items.\n// @private\n// @param {Array.<module:font/fontsize~FontSizeOption>} options\n// @param {module:font/fontsize/fontsizecommand~FontSizeCommand} command\nexport {\n    FontFamilyUI as default\n};\nfunction _prepareListOptions(options, command) {\n    var itemDefinitions = new Collection();\n    // Create dropdown items.\n    var _iterator = _createForOfIteratorHelper(options), _step;\n    try {\n        var _loop = function _loop() {\n            var option = _step.value;\n            var def = {\n                type: 'button',\n                model: new Model({\n                    commandName: FONT_FAMILY,\n                    commandParam: option.model,\n                    label: option.title,\n                    withText: true\n                })\n            };\n            def.model.bind('isOn').to(command, 'value', function (value) {\n                return value === option.model;\n            });\n            // Try to set a dropdown list item style.\n            if (option.view && option.view.styles) {\n                def.model.set('labelStyle', 'font-family: '.concat(option.view.styles['font-family']));\n            }\n            itemDefinitions.add(def);\n        };\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            _loop();\n        }\n    } catch (err) {\n        _iterator.e(err);\n    } finally {\n        _iterator.f();\n    }\n    return itemDefinitions;\n}","import \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.split\";\nimport _typeof from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/typeof\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontfamily/utils\n */\n\n/**\n * Normalizes the {@link module:font/fontfamily~FontFamilyConfig#options configuration options}\n * to the {@link module:font/fontfamily~FontFamilyOption} format.\n *\n * @param {Array.<String|Object>} configuredOptions An array of options taken from the configuration.\n * @returns {Array.<module:font/fontfamily~FontFamilyOption>}\n */\nexport function normalizeOptions(configuredOptions) {\n  // Convert options to objects.\n  return configuredOptions.map(getOptionDefinition) // Filter out undefined values that `getOptionDefinition` might return.\n  .filter(function (option) {\n    return !!option;\n  });\n} // Returns an option definition either created from string shortcut.\n// If object is passed then this method will return it without alternating it. Returns undefined for item than cannot be parsed.\n//\n// @param {String|Object} option\n// @returns {undefined|module:font/fontfamily~FontFamilyOption}\n\nfunction getOptionDefinition(option) {\n  // Treat any object as full item definition provided by user in configuration.\n  if (_typeof(option) === 'object') {\n    return option;\n  } // Handle 'default' string as a special case. It will be used to remove the fontFamily attribute.\n\n\n  if (option === 'default') {\n    return {\n      title: 'Default',\n      model: undefined\n    };\n  } // Ignore values that we cannot parse to a definition.\n\n\n  if (typeof option !== 'string') {\n    return;\n  } // Return font family definition from font string.\n\n\n  return generateFontPreset(option);\n} // Creates a predefined preset for pixel size. It deconstructs font-family like string into full configuration option.\n// A font definition is passed as coma delimited set of font family names. Font names might be quoted.\n//\n// @param {String} A font definition form configuration.\n\n\nfunction generateFontPreset(fontDefinition) {\n  // Remove quotes from font names. They will be normalized later.\n  var fontNames = fontDefinition.replace(/\"|'/g, '').split(','); // The first matched font name will be used as dropdown list item title and as model value.\n\n  var firstFontName = fontNames[0]; // CSS-compatible font names.\n\n  var cssFontNames = fontNames.map(normalizeFontNameForCSS).join(', ');\n  return {\n    title: firstFontName,\n    model: firstFontName,\n    view: {\n      name: 'span',\n      styles: {\n        'font-family': cssFontNames\n      },\n      priority: 7\n    }\n  };\n} // Normalizes font name for the style attribute. It adds braces (') if font name contains spaces.\n//\n// @param {String} fontName\n// @returns {String}\n\n\nfunction normalizeFontNameForCSS(fontName) {\n  fontName = fontName.trim(); // Compound font names should be quoted.\n\n  if (fontName.indexOf(' ') > 0) {\n    fontName = \"'\".concat(fontName, \"'\");\n  }\n\n  return fontName;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontsize\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontSizeEditing from \"./fontsize/fontsizeediting\";\nimport FontSizeUI from \"./fontsize/fontsizeui\";\n/**\n * The font size plugin.\n *\n * For a detailed overview, check the {@glink features/font font feature} documentation\n * and the {@glink api/font package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:font/fontsize/fontsizeediting~FontSizeEditing} and\n * {@link module:font/fontsize/fontsizeui~FontSizeUI} features in the editor.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontSize = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontSize, _Plugin);\n\n  var _super = _createSuper(FontSize);\n\n  function FontSize() {\n    _classCallCheck(this, FontSize);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(FontSize, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [FontSizeEditing, FontSizeUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'FontSize';\n    }\n  }]);\n\n  return FontSize;\n}(Plugin);\n/**\n * The font size option descriptor.\n *\n * @typedef {Object} module:font/fontsize~FontSizeOption\n *\n * @property {String} title The user-readable title of the option.\n * @property {String} model The attribute's unique value in the model.\n * @property {module:engine/view/elementdefinition~ElementDefinition} view View element configuration.\n * @property {Array.<module:engine/view/elementdefinition~ElementDefinition>} [upcastAlso] An array with all matched elements that\n * the view-to-model conversion should also accept.\n */\n\n/**\n * The configuration of the font size feature.\n * It is introduced by the {@link module:font/fontsize/fontsizeediting~FontSizeEditing} feature.\n *\n * Read more in {@link module:font/fontsize~FontSizeConfig}.\n *\n * @member {module:font/fontsize~FontSizeConfig} module:core/editor/editorconfig~EditorConfig#fontSize\n */\n\n/**\n * The configuration of the font size feature.\n * This option is used by the {@link module:font/fontsize/fontsizeediting~FontSizeEditing} feature.\n *\n * \t\tClassicEditor\n * \t\t\t.create( {\n * \t\t\t\tfontSize: ... // Font size feature configuration.\n *\t\t\t} )\n * \t\t\t.then( ... )\n * \t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface module:font/fontsize~FontSizeConfig\n */\n\n/**\n * Available font size options. Expressed as predefined presets, numerical \"pixel\" values\n * or the {@link module:font/fontsize~FontSizeOption}.\n *\n * The default value is:\n *\n *\t\tconst fontSizeConfig = {\n *\t\t\toptions: [\n *\t\t\t\t'tiny',\n * \t\t\t\t'small',\n * \t\t\t\t'default',\n * \t\t\t\t'big',\n * \t\t\t\t'huge'\n *\t\t\t]\n *\t\t};\n *\n * It defines 4 sizes: **tiny**, **small**, **big**, and **huge**. These values will be rendered as `<span>` elements in the view.\n * The **default** defines a text without the `fontSize` attribute.\n *\n * Each `<span>` has the the `class` attribute set to the corresponding size name. For instance, this is what the **small** size looks\n * like in the view:\n *\n * \t\t<span class=\"text-small\">...</span>\n *\n * As an alternative, the font size might be defined using numerical values (either as a `Number` or as a `String`):\n *\n * \t\tconst fontSizeConfig = {\n * \t\t\toptions: [ 9, 10, 11, 12, 13, 14, 15 ]\n * \t\t};\n *\n * Font size can be applied using the command API. To do that, use the `'fontSize'` command and pass the desired font size as a `value`.\n * For example, the following code will apply the `fontSize` attribute with the **tiny** value to the current selection:\n *\n *\t\teditor.execute( 'fontSize', { value: 'tiny' } );\n *\n * Executing the `fontSize` command without value will remove the `fontSize` attribute from the current selection.\n *\n * @member {Array.<String|Number|module:font/fontsize~FontSizeOption>} module:font/fontsize~FontSizeConfig#options\n */\n\n\nexport { FontSize as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontsize/fontsizecommand\n */\nimport FontCommand from \"../fontcommand\";\nimport { FONT_SIZE } from \"../utils\";\n/**\n * The font size command. It is used by {@link module:font/fontsize/fontsizeediting~FontSizeEditing}\n * to apply the font size.\n *\n *\t\teditor.execute( 'fontSize', { value: 'small' } );\n *\n * **Note**: Executing the command without the value removes the attribute from the model.\n *\n * @extends module:font/fontcommand~FontCommand\n */\n\nvar FontSizeCommand = /*#__PURE__*/function (_FontCommand) {\n  _inherits(FontSizeCommand, _FontCommand);\n\n  var _super = _createSuper(FontSizeCommand);\n\n  /**\n   * @inheritDoc\n   */\n  function FontSizeCommand(editor) {\n    _classCallCheck(this, FontSizeCommand);\n\n    return _super.call(this, editor, FONT_SIZE);\n  }\n\n  return FontSizeCommand;\n}(FontCommand);\n\nexport { FontSizeCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontsize/fontsizeediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FontSizeCommand from \"./fontsizecommand\";\nimport { normalizeOptions } from \"./utils\";\nimport { buildDefinition, FONT_SIZE } from \"../utils\";\n/**\n * The font size editing feature.\n *\n * It introduces the {@link module:font/fontsize/fontsizecommand~FontSizeCommand command} and the `fontSize`\n * attribute in the {@link module:engine/model/model~Model model} which renders in the {@link module:engine/view/view view}\n * as a `<span>` element with either:\n * * a style attribute (`<span style=\"font-size:12px\">...</span>`),\n * * or a class attribute (`<span class=\"text-small\">...</span>`)\n *\n * depending on the {@link module:font/fontsize~FontSizeConfig configuration}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar FontSizeEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(FontSizeEditing, _Plugin);\n\n  var _super = _createSuper(FontSizeEditing);\n\n  _createClass(FontSizeEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'FontSizeEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function FontSizeEditing(editor) {\n    var _this;\n\n    _classCallCheck(this, FontSizeEditing);\n\n    _this = _super.call(this, editor); // Define default configuration using named presets.\n\n    editor.config.define(FONT_SIZE, {\n      options: ['tiny', 'small', 'default', 'big', 'huge']\n    }); // Define view to model conversion.\n\n    var options = normalizeOptions(_this.editor.config.get('fontSize.options')).filter(function (item) {\n      return item.model;\n    });\n    var definition = buildDefinition(FONT_SIZE, options); // Set-up the two-way conversion.\n\n    editor.conversion.attributeToElement(definition); // Add FontSize command.\n\n    editor.commands.add(FONT_SIZE, new FontSizeCommand(editor));\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(FontSizeEditing, [{\n    key: \"init\",\n    value: function init() {\n      var editor = this.editor; // Allow fontSize attribute on text nodes.\n\n      editor.model.schema.extend('$text', {\n        allowAttributes: FONT_SIZE\n      });\n      editor.model.schema.setAttributeProperties(FONT_SIZE, {\n        isFormatting: true,\n        copyOnEnter: true\n      });\n    }\n  }]);\n\n  return FontSizeEditing;\n}(Plugin);\n\nexport { FontSizeEditing as default };","import 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/fontsize/fontsizeui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Model from '@ckeditor/ckeditor5-ui/src/model';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport {\n    createDropdown,\n    addListToDropdown\n} from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport { normalizeOptions } from './utils';\nimport { FONT_SIZE } from '../utils';\nimport fontSizeIcon from '../../theme/icons/font-size.svg';\nimport '../../theme/fontsize.css';\n/**\n * The font size UI plugin. It introduces the `'fontSize'` dropdown.\n *\n * @extends module:core/plugin~Plugin\n */\nvar FontSizeUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(FontSizeUI, _Plugin);\n    var _super = _createSuper(FontSizeUI);\n    function FontSizeUI() {\n        _classCallCheck(this, FontSizeUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(FontSizeUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                var options = this._getLocalizedOptions();\n                var command = editor.commands.get(FONT_SIZE);\n                // Register UI component.\n                editor.ui.componentFactory.add(FONT_SIZE, function (locale) {\n                    var dropdownView = createDropdown(locale);\n                    addListToDropdown(dropdownView, _prepareListOptions(options, command));\n                    // Create dropdown model.\n                    dropdownView.buttonView.set({\n                        label: t('Font Size'),\n                        icon: fontSizeIcon,\n                        tooltip: true\n                    });\n                    dropdownView.extendTemplate({ attributes: { class: ['ck-font-size-dropdown'] } });\n                    dropdownView.bind('isEnabled').to(command);\n                    // Execute command when an item from the dropdown is selected.\n                    _this.listenTo(dropdownView, 'execute', function (evt) {\n                        editor.execute(evt.source.commandName, { value: evt.source.commandParam });\n                        editor.editing.view.focus();\n                    });\n                    return dropdownView;\n                });\n            }    /**\n     * Returns options as defined in `config.fontSize.options` but processed to account for\n     * editor localization, i.e. to display {@link module:font/fontsize~FontSizeOption}\n     * in the correct language.\n     *\n     * Note: The reason behind this method is that there is no way to use {@link module:utils/locale~Locale#t}\n     * when the user configuration is defined because the editor does not exist yet.\n     *\n     * @private\n     * @returns {Array.<module:font/fontsize~FontSizeOption>}.\n     */\n        },\n        {\n            key: '_getLocalizedOptions',\n            value: function _getLocalizedOptions() {\n                var editor = this.editor;\n                var t = editor.t;\n                var localizedTitles = {\n                    Default: t('Default'),\n                    Tiny: t('Tiny'),\n                    Small: t('Small'),\n                    Big: t('Big'),\n                    Huge: t('Huge')\n                };\n                var options = normalizeOptions(editor.config.get(FONT_SIZE).options);\n                return options.map(function (option) {\n                    var title = localizedTitles[option.title];\n                    if (title && title != option.title) {\n                        // Clone the option to avoid altering the original `namedPresets` from `./utils.js`.\n                        option = Object.assign({}, option, { title: title });\n                    }\n                    return option;\n                });\n            }\n        }\n    ]);\n    return FontSizeUI;\n}(Plugin);\n// Prepares FontSize dropdown items.\n// @private\n// @param {Array.<module:font/fontsize~FontSizeOption>} options\n// @param {module:font/fontsize/fontsizecommand~FontSizeCommand} command\nexport {\n    FontSizeUI as default\n};\nfunction _prepareListOptions(options, command) {\n    var itemDefinitions = new Collection();\n    var _iterator = _createForOfIteratorHelper(options), _step;\n    try {\n        var _loop = function _loop() {\n            var option = _step.value;\n            var def = {\n                type: 'button',\n                model: new Model({\n                    commandName: FONT_SIZE,\n                    commandParam: option.model,\n                    label: option.title,\n                    class: 'ck-fontsize-option',\n                    withText: true\n                })\n            };\n            if (option.view && option.view.styles) {\n                def.model.set('labelStyle', 'font-size:'.concat(option.view.styles['font-size']));\n            }\n            if (option.view && option.view.classes) {\n                def.model.set('class', ''.concat(def.model.class, ' ').concat(option.view.classes));\n            }\n            def.model.bind('isOn').to(command, 'value', function (value) {\n                return value === option.model;\n            });\n            // Add the option to the collection.\n            itemDefinitions.add(def);\n        };\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            _loop();\n        }\n    } catch (err) {\n        _iterator.e(err);\n    } finally {\n        _iterator.f();\n    }\n    return itemDefinitions;\n}","import _typeof from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/typeof\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/fontsize/utils\n */\n\n/**\n * Normalizes and translates the {@link module:font/fontsize~FontSizeConfig#options configuration options}\n * to the {@link module:font/fontsize~FontSizeOption} format.\n *\n * @param {Array.<String|Number|Object>} configuredOptions An array of options taken from the configuration.\n * @returns {Array.<module:font/fontsize~FontSizeOption>}\n */\nexport function normalizeOptions(configuredOptions) {\n  // Convert options to objects.\n  return configuredOptions.map(getOptionDefinition) // Filter out undefined values that `getOptionDefinition` might return.\n  .filter(function (option) {\n    return !!option;\n  });\n} // Default named presets map.\n\nvar namedPresets = {\n  tiny: {\n    title: 'Tiny',\n    model: 'tiny',\n    view: {\n      name: 'span',\n      classes: 'text-tiny',\n      priority: 7\n    }\n  },\n  small: {\n    title: 'Small',\n    model: 'small',\n    view: {\n      name: 'span',\n      classes: 'text-small',\n      priority: 7\n    }\n  },\n  big: {\n    title: 'Big',\n    model: 'big',\n    view: {\n      name: 'span',\n      classes: 'text-big',\n      priority: 7\n    }\n  },\n  huge: {\n    title: 'Huge',\n    model: 'huge',\n    view: {\n      name: 'span',\n      classes: 'text-huge',\n      priority: 7\n    }\n  }\n}; // Returns an option definition either from preset or creates one from number shortcut.\n// If object is passed then this method will return it without alternating it. Returns undefined for item than cannot be parsed.\n//\n// @param {String|Number|Object} item\n// @returns {undefined|module:font/fontsize~FontSizeOption}\n\nfunction getOptionDefinition(option) {\n  // Treat any object as full item definition provided by user in configuration.\n  if (_typeof(option) === 'object') {\n    return option;\n  } // Item is a named preset.\n\n\n  if (namedPresets[option]) {\n    return namedPresets[option];\n  } // 'Default' font size. It will be used to remove the fontSize attribute.\n\n\n  if (option === 'default') {\n    return {\n      model: undefined,\n      title: 'Default'\n    };\n  } // At this stage we probably have numerical value to generate a preset so parse it's value.\n\n\n  var sizePreset = parseFloat(option); // Discard any faulty values.\n\n  if (isNaN(sizePreset)) {\n    return;\n  } // Return font size definition from size value.\n\n\n  return generatePixelPreset(sizePreset);\n} // Creates a predefined preset for pixel size.\n//\n// @param {Number} size Font size in pixels.\n// @returns {module:font/fontsize~FontSizeOption}\n\n\nfunction generatePixelPreset(size) {\n  var sizeName = String(size);\n  return {\n    title: sizeName,\n    model: size,\n    view: {\n      name: 'span',\n      styles: {\n        'font-size': \"\".concat(size, \"px\")\n      },\n      priority: 7\n    }\n  };\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.array.find\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module font/ui/colortableview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport ColorTileView from '@ckeditor/ckeditor5-ui/src/colorgrid/colortileview';\nimport ColorGridView from '@ckeditor/ckeditor5-ui/src/colorgrid/colorgridview';\nimport LabelView from '@ckeditor/ckeditor5-ui/src/label/labelview';\nimport DocumentColorCollection from \"../documentcolorcollection\";\nimport Template from '@ckeditor/ckeditor5-ui/src/template';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport removeButtonIcon from '@ckeditor/ckeditor5-core/theme/icons/eraser.svg';\nimport \"../../theme/fontcolor.css\";\n/**\n * A class which represents a view with the following sub–components:\n *\n * * A remove color button,\n * * A static {@link module:ui/colorgrid/colorgrid~ColorGridView} of colors defined in the configuration,\n * * A dynamic {@link module:ui/colorgrid/colorgrid~ColorGridView} of colors used in the document.\n *\n * @extends module:ui/view~View\n */\n\nvar ColorTableView = /*#__PURE__*/function (_View) {\n  _inherits(ColorTableView, _View);\n\n  var _super = _createSuper(ColorTableView);\n\n  /**\n   * Creates a view to be inserted as a child of {@link module:ui/dropdown/dropdownview~DropdownView}.\n   *\n   * @param {module:utils/locale~Locale} [locale] The localization services instance.\n   * @param {Object} config The configuration object.\n   * @param {Array.<module:ui/colorgrid/colorgrid~ColorDefinition>} config.colors An array with definitions of colors to\n   * be displayed in the table.\n   * @param {Number} config.columns The number of columns in the color grid.\n   * @param {String} config.removeButtonLabel The label of the button responsible for removing the color.\n   * @param {String} config.documentColorsLabel The label for the section with the document colors.\n   * @param {String} config.documentColorsCount The number of colors in the document colors section inside the color dropdown.\n   */\n  function ColorTableView(locale, _ref) {\n    var _this;\n\n    var colors = _ref.colors,\n        columns = _ref.columns,\n        removeButtonLabel = _ref.removeButtonLabel,\n        documentColorsLabel = _ref.documentColorsLabel,\n        documentColorsCount = _ref.documentColorsCount;\n\n    _classCallCheck(this, ColorTableView);\n\n    _this = _super.call(this, locale);\n    /**\n     * A collection of the children of the table.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n    _this.items = _this.createCollection();\n    /**\n     * An array with objects representing colors to be displayed in the grid.\n     *\n     * @type {Arrray.<module:ui/colorgrid/colorgrid~ColorDefinition>}\n     */\n\n    _this.colorDefinitions = colors;\n    /**\n     * Tracks information about the DOM focus in the list.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n\n    _this.focusTracker = new FocusTracker();\n    /**\n     * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n\n    _this.keystrokes = new KeystrokeHandler();\n    /**\n     * Keeps the value of the command associated with the table for the current selection.\n     *\n     * @type {String}\n     */\n\n    _this.set('selectedColor');\n    /**\n     * The label of the button responsible for removing color attributes.\n     *\n     * @type {String}\n     */\n\n\n    _this.removeButtonLabel = removeButtonLabel;\n    /**\n     * The number of columns in the color grid.\n     *\n     * @type {Number}\n     */\n\n    _this.columns = columns;\n    /**\n     * A collection of definitions that store the document colors.\n     *\n     * @readonly\n     * @member {module:font/documentcolorcollection~DocumentColorCollection}\n     */\n\n    _this.documentColors = new DocumentColorCollection();\n    /**\n     * The maximum number of colors in the document colors section.\n     * If it equals 0, the document colors section is not added.\n     *\n     * @readonly\n     * @type {Number}\n     */\n\n    _this.documentColorsCount = documentColorsCount;\n    /**\n     * Preserves the reference to {@link module:ui/colorgrid/colorgrid~ColorGridView} used to create\n     * the default (static) color set.\n     *\n     * @readonly\n     * @member {module:ui/colorgrid/colorgrid~ColorGridView}\n     */\n\n    _this.staticColorsGrid = _this._createStaticColorsGrid();\n    /**\n     * Preserves the reference to {@link module:ui/colorgrid/colorgrid~ColorGridView} used to create\n     * the document colors. It remains undefined if the document colors feature is disabled.\n     *\n     * @readonly\n     * @member {module:ui/colorgrid/colorgrid~ColorGridView}\n     */\n\n    _this.documentColorsGrid;\n    /**\n     * Helps cycling over focusable {@link #items} in the list.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\n     */\n\n    _this._focusCycler = new FocusCycler({\n      focusables: _this.items,\n      focusTracker: _this.focusTracker,\n      keystrokeHandler: _this.keystrokes,\n      actions: {\n        // Navigate list items backwards using the Arrow Up key.\n        focusPrevious: 'arrowup',\n        // Navigate list items forwards using the Arrow Down key.\n        focusNext: 'arrowdown'\n      }\n    });\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-color-table']\n      },\n      children: _this.items\n    });\n\n    _this.items.add(_this._removeColorButton());\n\n    _this.items.add(_this.staticColorsGrid);\n\n    if (documentColorsCount) {\n      // Create a label for document colors.\n      var bind = Template.bind(_this.documentColors, _this.documentColors);\n      var label = new LabelView(_this.locale);\n      label.text = documentColorsLabel;\n      label.extendTemplate({\n        attributes: {\n          class: ['ck', 'ck-color-grid__label', bind.if('isEmpty', 'ck-hidden')]\n        }\n      });\n\n      _this.items.add(label);\n\n      _this.documentColorsGrid = _this._createDocumentColorsGrid();\n\n      _this.items.add(_this.documentColorsGrid);\n    }\n\n    return _this;\n  }\n  /**\n   * Scans through the editor model and searches for text node attributes with the given attribute name.\n   * Found entries are set as document colors.\n   *\n   * All the previously stored document colors will be lost in the process.\n   *\n   * @param {module:engine/model/model~Model} model The model used as a source to obtain the document colors.\n   * @param {String} attributeName Determines the name of the related model's attribute for a given dropdown.\n   */\n\n\n  _createClass(ColorTableView, [{\n    key: \"updateDocumentColors\",\n    value: function updateDocumentColors(model, attributeName) {\n      var document = model.document;\n      var maxCount = this.documentColorsCount;\n      this.documentColors.clear();\n\n      var _iterator = _createForOfIteratorHelper(document.getRootNames()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var rootName = _step.value;\n          var root = document.getRoot(rootName);\n          var range = model.createRangeIn(root);\n\n          var _iterator2 = _createForOfIteratorHelper(range.getItems()),\n              _step2;\n\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n              var node = _step2.value;\n\n              if (node.is('textProxy') && node.hasAttribute(attributeName)) {\n                this._addColorToDocumentColors(node.getAttribute(attributeName));\n\n                if (this.documentColors.length >= maxCount) {\n                  return;\n                }\n              }\n            }\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * Refreshes the state of the selected color in one or both {@link module:ui/colorgrid/colorgrid~ColorGridView}s\n     * available in the {@link module:font/ui/colortableview~ColorTableView}. It guarantees that the selection will occur only in one\n     * of them.\n     */\n\n  }, {\n    key: \"updateSelectedColors\",\n    value: function updateSelectedColors() {\n      var documentColorsGrid = this.documentColorsGrid;\n      var staticColorsGrid = this.staticColorsGrid;\n      var selectedColor = this.selectedColor;\n      staticColorsGrid.selectedColor = selectedColor;\n\n      if (documentColorsGrid) {\n        documentColorsGrid.selectedColor = selectedColor;\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      _get(_getPrototypeOf(ColorTableView.prototype), \"render\", this).call(this); // Items added before rendering should be known to the #focusTracker.\n\n\n      var _iterator3 = _createForOfIteratorHelper(this.items),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var item = _step3.value;\n          this.focusTracker.add(item.element);\n        } // Start listening for the keystrokes coming from #element.\n\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n\n      this.keystrokes.listenTo(this.element);\n    }\n    /**\n     * Focuses the first focusable element in {@link #items}.\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this._focusCycler.focusFirst();\n    }\n    /**\n     * Focuses the last focusable element in {@link #items}.\n     */\n\n  }, {\n    key: \"focusLast\",\n    value: function focusLast() {\n      this._focusCycler.focusLast();\n    }\n    /**\n     * Adds the remove color button as a child of the current view.\n     *\n     * @private\n     * @returns {module:ui/button/buttonview~ButtonView}\n     */\n\n  }, {\n    key: \"_removeColorButton\",\n    value: function _removeColorButton() {\n      var _this2 = this;\n\n      var buttonView = new ButtonView();\n      buttonView.set({\n        withText: true,\n        icon: removeButtonIcon,\n        tooltip: true,\n        label: this.removeButtonLabel\n      });\n      buttonView.class = 'ck-color-table__remove-color';\n      buttonView.on('execute', function () {\n        _this2.fire('execute', {\n          value: null\n        });\n      });\n      return buttonView;\n    }\n    /**\n     * Creates a static color table grid based on the editor configuration.\n     *\n     * @private\n     * @returns {module:ui/colorgrid/colorgrid~ColorGridView}\n     */\n\n  }, {\n    key: \"_createStaticColorsGrid\",\n    value: function _createStaticColorsGrid() {\n      var colorGrid = new ColorGridView(this.locale, {\n        colorDefinitions: this.colorDefinitions,\n        columns: this.columns\n      });\n      colorGrid.delegate('execute').to(this);\n      return colorGrid;\n    }\n    /**\n     * Creates the document colors section view and binds it to {@link #documentColors}.\n     *\n     * @private\n     * @returns {module:ui/colorgrid/colorgrid~ColorGridView}\n     */\n\n  }, {\n    key: \"_createDocumentColorsGrid\",\n    value: function _createDocumentColorsGrid() {\n      var _this3 = this;\n\n      var bind = Template.bind(this.documentColors, this.documentColors);\n      var documentColorsGrid = new ColorGridView(this.locale, {\n        columns: this.columns\n      });\n      documentColorsGrid.delegate('execute').to(this);\n      documentColorsGrid.extendTemplate({\n        attributes: {\n          class: bind.if('isEmpty', 'ck-hidden')\n        }\n      });\n      documentColorsGrid.items.bindTo(this.documentColors).using(function (colorObj) {\n        var colorTile = new ColorTileView();\n        colorTile.set({\n          color: colorObj.color,\n          hasBorder: colorObj.options && colorObj.options.hasBorder\n        });\n\n        if (colorObj.label) {\n          colorTile.set({\n            label: colorObj.label,\n            tooltip: true\n          });\n        }\n\n        colorTile.on('execute', function () {\n          _this3.fire('execute', {\n            value: colorObj.color\n          });\n        });\n        return colorTile;\n      }); // Selected color should be cleared when document colors became empty.\n\n      this.documentColors.on('change:isEmpty', function (evt, name, val) {\n        if (val) {\n          documentColorsGrid.selectedColor = null;\n        }\n      });\n      return documentColorsGrid;\n    }\n    /**\n     * Adds a given color to the document colors list. If possible, the method will attempt to use\n     * data from the {@link #colorDefinitions} (label, color options).\n     *\n     * @private\n     * @param {String} color A string that stores the value of the recently applied color.\n     */\n\n  }, {\n    key: \"_addColorToDocumentColors\",\n    value: function _addColorToDocumentColors(color) {\n      var predefinedColor = this.colorDefinitions.find(function (definition) {\n        return definition.color === color;\n      });\n\n      if (!predefinedColor) {\n        this.documentColors.add({\n          color: color,\n          label: color,\n          options: {\n            hasBorder: false\n          }\n        });\n      } else {\n        this.documentColors.add(Object.assign({}, predefinedColor));\n      }\n    }\n  }]);\n\n  return ColorTableView;\n}(View);\n\nexport { ColorTableView as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/ui/colorui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport {\n    addColorTableToDropdown,\n    normalizeColorOptions,\n    getLocalizedColorOptions\n} from '../utils';\n/**\n * The color UI plugin which isolates the common logic responsible for displaying dropdowns with color grids.\n *\n * It is used to create the `'fontBackgroundColor'` and `'fontColor'` dropdowns, each hosting\n * a {@link module:font/ui/colortableview~ColorTableView}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ColorUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ColorUI, _Plugin);\n    var _super = _createSuper(ColorUI);\n    /**\n   * Creates a plugin which introduces a dropdown with a pre–configured {@link module:font/ui/colortableview~ColorTableView}.\n   *\n   * @param {module:core/editor/editor~Editor} editor\n   * @param {Object} config The configuration object.\n   * @param {String} config.commandName The name of the command which will be executed when a color tile is clicked.\n   * @param {String} config.componentName The name of the dropdown in the {@link module:ui/componentfactory~ComponentFactory}\n   * and the configuration scope name in `editor.config`.\n   * @param {String} config.icon The SVG icon used by the dropdown.\n   * @param {String} config.dropdownLabel The label used by the dropdown.\n   */\n    function ColorUI(editor, _ref) {\n        var _this;\n        var commandName = _ref.commandName, icon = _ref.icon, componentName = _ref.componentName, dropdownLabel = _ref.dropdownLabel;\n        _classCallCheck(this, ColorUI);\n        _this = _super.call(this, editor);\n        /**\n     * The name of the command which will be executed when a color tile is clicked.\n     *\n     * @type {String}\n     */\n        _this.commandName = commandName;\n        /**\n     * The name of this component in the {@link module:ui/componentfactory~ComponentFactory}.\n     * Also the configuration scope name in `editor.config`.\n     *\n     * @type {String}\n     */\n        _this.componentName = componentName;\n        /**\n     * The SVG icon used by the dropdown.\n     * @type {String}\n     */\n        _this.icon = icon;\n        /**\n     * The label used by the dropdown.\n     *\n     * @type {String}\n     */\n        _this.dropdownLabel = dropdownLabel;\n        /**\n     * The number of columns in the color grid.\n     *\n     * @type {Number}\n     */\n        _this.columns = editor.config.get(''.concat(_this.componentName, '.columns'));\n        /**\n     * Keeps a reference to {@link module:font/ui/colortableview~ColorTableView}.\n     *\n     * @member {module:font/ui/colortableview~ColorTableView}\n     */\n        _this.colorTableView;\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(ColorUI, [{\n            key: 'init',\n            value: function init() {\n                var _this2 = this;\n                var editor = this.editor;\n                var t = editor.t;\n                var command = editor.commands.get(this.commandName);\n                var colorsConfig = normalizeColorOptions(editor.config.get(this.componentName).colors);\n                var localizedColors = getLocalizedColorOptions(editor, colorsConfig);\n                var documentColorsCount = editor.config.get(''.concat(this.componentName, '.documentColors'));\n                // Register the UI component.\n                editor.ui.componentFactory.add(this.componentName, function (locale) {\n                    var dropdownView = createDropdown(locale);\n                    _this2.colorTableView = addColorTableToDropdown({\n                        dropdownView: dropdownView,\n                        colors: localizedColors.map(function (option) {\n                            return {\n                                label: option.label,\n                                color: option.model,\n                                options: { hasBorder: option.hasBorder }\n                            };\n                        }),\n                        columns: _this2.columns,\n                        removeButtonLabel: t('Remove color'),\n                        documentColorsLabel: documentColorsCount !== 0 ? t('Document colors') : undefined,\n                        documentColorsCount: documentColorsCount === undefined ? _this2.columns : documentColorsCount\n                    });\n                    _this2.colorTableView.bind('selectedColor').to(command, 'value');\n                    dropdownView.buttonView.set({\n                        label: _this2.dropdownLabel,\n                        icon: _this2.icon,\n                        tooltip: true\n                    });\n                    dropdownView.extendTemplate({ attributes: { class: 'ck-color-ui-dropdown' } });\n                    dropdownView.bind('isEnabled').to(command);\n                    dropdownView.on('execute', function (evt, data) {\n                        editor.execute(_this2.commandName, data);\n                        editor.editing.view.focus();\n                    });\n                    dropdownView.on('change:isOpen', function (evt, name, isVisible) {\n                        if (isVisible) {\n                            if (documentColorsCount !== 0) {\n                                _this2.colorTableView.updateDocumentColors(editor.model, _this2.componentName);\n                            }\n                            _this2.colorTableView.updateSelectedColors();\n                        }\n                    });\n                    return dropdownView;\n                });\n            }\n        }]);\n    return ColorUI;\n}(Plugin);\nexport {\n    ColorUI as default\n};","import 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.regexp.replace';\nimport 'core-js/modules/web.dom.iterable';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module font/utils\n */\nimport ColorTableView from './ui/colortableview';\n/**\n * The name of the font size plugin.\n */\nexport var FONT_SIZE = 'fontSize';\n/**\n * The name of the font family plugin.\n */\nexport var FONT_FAMILY = 'fontFamily';\n/**\n * The name of the font color plugin.\n */\nexport var FONT_COLOR = 'fontColor';\n/**\n * The name of the font background color plugin.\n */\nexport var FONT_BACKGROUND_COLOR = 'fontBackgroundColor';\n/**\n * Builds a proper {@link module:engine/conversion/conversion~ConverterDefinition converter definition} out of input data.\n *\n * @param {String} modelAttributeKey Key\n * @param {Array.<module:font/fontfamily~FontFamilyOption>|Array.<module:font/fontsize~FontSizeOption>} options\n * @returns {module:engine/conversion/conversion~ConverterDefinition}\n */\nexport function buildDefinition(modelAttributeKey, options) {\n    var definition = {\n        model: {\n            key: modelAttributeKey,\n            values: []\n        },\n        view: {},\n        upcastAlso: {}\n    };\n    var _iterator = _createForOfIteratorHelper(options), _step;\n    try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var option = _step.value;\n            definition.model.values.push(option.model);\n            definition.view[option.model] = option.view;\n            if (option.upcastAlso) {\n                definition.upcastAlso[option.model] = option.upcastAlso;\n            }\n        }\n    } catch (err) {\n        _iterator.e(err);\n    } finally {\n        _iterator.f();\n    }\n    return definition;\n}\n/**\n * A {@link module:font/fontcolor~FontColor font color} and\n * {@link module:font/fontbackgroundcolor~FontBackgroundColor font background color} helper\n * responsible for upcasting data to the model.\n *\n * **Note**: The `styleAttr` parameter should be either `'color'` or `'background-color'`.\n *\n * @param {String} styleAttr\n * @return {String}\n */\nexport function renderUpcastAttribute(styleAttr) {\n    return function (viewElement) {\n        return normalizeColorCode(viewElement.getStyle(styleAttr));\n    };\n}\n/**\n * A {@link module:font/fontcolor~FontColor font color} and\n * {@link module:font/fontbackgroundcolor~FontBackgroundColor font background color} helper\n * responsible for downcasting a color attribute to a `<span>` element.\n *\n * **Note**: The `styleAttr` parameter should be either `'color'` or `'background-color'`.\n *\n * @param {String} styleAttr\n */\nexport function renderDowncastElement(styleAttr) {\n    return function (modelAttributeValue, viewWriter) {\n        return viewWriter.createAttributeElement('span', { style: ''.concat(styleAttr, ':').concat(modelAttributeValue) }, { priority: 7 });\n    };\n}\n/**\n * Creates a unified color definition object from color configuration options.\n * The object contains the information necessary to both render the UI and initialize the conversion.\n *\n * @param {module:ui/colorgrid/colorgrid~ColorDefinition} options\n * @returns {Array.<module:ui/colorgrid/colorgrid~ColorDefinition>}\n */\nexport function normalizeColorOptions(options) {\n    return options.map(normalizeSingleColorDefinition).filter(function (option) {\n        return !!option;\n    });\n}\n/**\n * A helper that adds {@link module:font/ui/colortableview~ColorTableView} to the color dropdown with proper initial values.\n *\n * @param {Object} config The configuration object.\n * @param {module:ui/dropdown/dropdownview~DropdownView} config.dropdownView The dropdown view to which\n * a {@link module:font/ui/colortableview~ColorTableView} will be added.\n * @param {Array.<module:ui/colorgrid/colorgrid~ColorDefinition>} config.colors An array with definitions\n * representing colors to be displayed in the color table.\n * @param {String} config.removeButtonLabel The label for the button responsible for removing the color.\n * @param {String} config.documentColorsLabel The label for the section with document colors.\n * @param {String} config.documentColorsCount The number of document colors inside the dropdown.\n * @returns {module:font/ui/colortableview~ColorTableView} The new color table view.\n */\nexport function addColorTableToDropdown(_ref) {\n    var dropdownView = _ref.dropdownView, colors = _ref.colors, columns = _ref.columns, removeButtonLabel = _ref.removeButtonLabel, documentColorsLabel = _ref.documentColorsLabel, documentColorsCount = _ref.documentColorsCount;\n    var locale = dropdownView.locale;\n    var colorTableView = new ColorTableView(locale, {\n        colors: colors,\n        columns: columns,\n        removeButtonLabel: removeButtonLabel,\n        documentColorsLabel: documentColorsLabel,\n        documentColorsCount: documentColorsCount\n    });\n    dropdownView.colorTableView = colorTableView;\n    dropdownView.panelView.children.add(colorTableView);\n    colorTableView.delegate('execute').to(dropdownView, 'execute');\n    return colorTableView;\n}\n/**\n * Returns color configuration options as defined in `editor.config.(fontColor|fontBackgroundColor).colors`\n * but processed to account for editor localization, i.e. to display {@link module:font/fontcolor~FontColorConfig}\n * or {@link module:font/fontbackgroundcolor~FontBackgroundColorConfig} in the correct language.\n *\n * Note: The reason behind this method is that there is no way to use {@link module:utils/locale~Locale#t}\n * when the user configuration is defined because the editor does not exist yet.\n *\n * @param {module:core/editor/editor~Editor} editor An editor instance.\n * @param {Array.<module:ui/colorgrid/colorgrid~ColorDefinition>} options\n * @returns {Array.<module:ui/colorgrid/colorgrid~ColorDefinition>}.\n */\nexport function getLocalizedColorOptions(editor, options) {\n    var t = editor.t;\n    var localizedColorNames = {\n        Black: t('Black'),\n        'Dim grey': t('Dim grey'),\n        Grey: t('Grey'),\n        'Light grey': t('Light grey'),\n        White: t('White'),\n        Red: t('Red'),\n        Orange: t('Orange'),\n        Yellow: t('Yellow'),\n        'Light green': t('Light green'),\n        Green: t('Green'),\n        Aquamarine: t('Aquamarine'),\n        Turquoise: t('Turquoise'),\n        'Light blue': t('Light blue'),\n        Blue: t('Blue'),\n        Purple: t('Purple')\n    };\n    return options.map(function (colorOption) {\n        var label = localizedColorNames[colorOption.label];\n        if (label && label != colorOption.label) {\n            colorOption.label = label;\n        }\n        return colorOption;\n    });\n}\n// Fixes the color value string.\n//\n// @param {String} value\n// @returns {String}\nfunction normalizeColorCode(value) {\n    return value.replace(/\\s/g, '');\n}\n// Creates a normalized color definition from the user-defined configuration.\n//\n// @param {String|module:ui/colorgrid/colorgrid~ColorDefinition}\n// @returns {module:ui/colorgrid/colorgrid~ColorDefinition}\nfunction normalizeSingleColorDefinition(color) {\n    if (typeof color === 'string') {\n        return {\n            model: color.replace(/ /g, ''),\n            label: color,\n            hasBorder: false,\n            view: {\n                name: 'span',\n                styles: { color: color }\n            }\n        };\n    } else {\n        return {\n            model: color.color.replace(/ /g, ''),\n            label: color.label || color.color,\n            hasBorder: color.hasBorder === undefined ? false : color.hasBorder,\n            view: {\n                name: 'span',\n                styles: { color: ''.concat(color.color) }\n            }\n        };\n    }\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./fontcolor.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3cff8b06\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./fontcolor.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./fontcolor.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./fontsize.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"cfd07b72\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./fontsize.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./fontsize.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M4 2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm8.38 9.262H7.62L10 5.506l2.38 5.756zm.532 1.285L14.34 16h1.426L10.804 4H9.196L4.234 16H5.66l1.428-3.453h5.824z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M12.4 10.3L10 4.5l-2.4 5.8h4.8zm.5 1.2H7.1L5.7 15H4.2l5-12h1.6l5 12h-1.5L13 11.5zM16 18.5H4a1 1 0 0 1 0-2h12a1 1 0 0 1 0 2z\\\"/></svg>\\n\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M11.03 3h6.149a.75.75 0 1 1 0 1.5h-5.514L11.03 3zm1.27 3h4.879a.75.75 0 1 1 0 1.5h-4.244L12.3 6zm1.27 3h3.609a.75.75 0 1 1 0 1.5h-2.973L13.57 9zm-2.754 2.5L8.038 4.785 5.261 11.5h5.555zm.62 1.5H4.641l-1.666 4.028H1.312l5.789-14h1.875l5.789 14h-1.663L11.436 13z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M9.816 11.5L7.038 4.785 4.261 11.5h5.555zm.62 1.5H3.641l-1.666 4.028H.312l5.789-14h1.875l5.789 14h-1.663L10.436 13zm7.55 2.279l.779-.779.707.707-2.265 2.265-2.193-2.265.707-.707.765.765V4.825c0-.042 0-.083.002-.123l-.77.77-.707-.707L17.207 2.5l2.265 2.265-.707.707-.782-.782c.002.043.003.089.003.135v10.454z\\\"/></svg>\"","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module heading/heading\n */\nimport HeadingEditing from \"./headingediting\";\nimport HeadingUI from \"./headingui\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport \"../theme/heading.css\";\n/**\n * The headings feature.\n *\n * For a detailed overview, check the {@glink features/headings Headings feature documentation}\n * and the {@glink api/heading package page}.\n *\n * This is a \"glue\" plugin which loads the {@link module:heading/headingediting~HeadingEditing heading editing feature}\n * and {@link module:heading/headingui~HeadingUI heading UI feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Heading = /*#__PURE__*/function (_Plugin) {\n  _inherits(Heading, _Plugin);\n\n  var _super = _createSuper(Heading);\n\n  function Heading() {\n    _classCallCheck(this, Heading);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Heading, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [HeadingEditing, HeadingUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Heading';\n    }\n  }]);\n\n  return Heading;\n}(Plugin);\n/**\n * The configuration of the heading feature. Introduced by the {@link module:heading/headingediting~HeadingEditing} feature.\n *\n * Read more in {@link module:heading/heading~HeadingConfig}.\n *\n * @member {module:heading/heading~HeadingConfig} module:core/editor/editorconfig~EditorConfig#heading\n */\n\n/**\n * The configuration of the heading feature.\n * The option is used by the {@link module:heading/headingediting~HeadingEditing} feature.\n *\n *\t\tClassicEditor\n *\t\t\t.create( {\n * \t\t\t\theading: ... // Heading feature config.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface HeadingConfig\n */\n\n/**\n * The available heading options.\n *\n * The default value is:\n *\n *\t\tconst headingConfig = {\n *\t\t\toptions: [\n *\t\t\t\t{ model: 'paragraph', title: 'Paragraph', class: 'ck-heading_paragraph' },\n *\t\t\t\t{ model: 'heading1', view: 'h2', title: 'Heading 1', class: 'ck-heading_heading1' },\n *\t\t\t\t{ model: 'heading2', view: 'h3', title: 'Heading 2', class: 'ck-heading_heading2' },\n *\t\t\t\t{ model: 'heading3', view: 'h4', title: 'Heading 3', class: 'ck-heading_heading3' }\n *\t\t\t]\n *\t\t};\n *\n * It defines 3 levels of headings. In the editor model they will use `heading1`, `heading2`, and `heading3` elements.\n * Their respective view elements (so the elements output by the editor) will be: `h2`, `h3`, and `h4`. This means that\n * if you choose \"Heading 1\" in the headings dropdown the editor will turn the current block to `<heading1>` in the model\n * which will result in rendering (and outputting to data) the `<h2>` element.\n *\n * The `title` and `class` properties will be used by the `headings` dropdown to render available options.\n * Usually, the first option in the headings dropdown is the \"Paragraph\" option, hence it's also defined on the list.\n * However, you don't need to define its view representation because it's handled by\n * the {@link module:paragraph/paragraph~Paragraph} feature (which is required by\n * the {@link module:heading/headingediting~HeadingEditing} feature).\n *\n * You can **read more** about configuring heading levels and **see more examples** in\n * the {@glink features/headings Headings} guide.\n *\n * Note: In the model you should always start from `heading1`, regardless of how the headings are represented in the view.\n * That's assumption is used by features like {@link module:autoformat/autoformat~Autoformat} to know which element\n * they should use when applying the first level heading.\n *\n * The defined headings are also available as values passed to the `'heading'` command under their model names.\n * For example, the below code will apply `<heading1>` to the current selection:\n *\n *\t\teditor.execute( 'heading', { value: 'heading1' } );\n *\n * @member {Array.<module:heading/heading~HeadingOption>} module:heading/heading~HeadingConfig#options\n */\n\n/**\n * Heading option descriptor.\n *\n * @typedef {Object} module:heading/heading~HeadingOption\n * @property {String} model Name of the model element to convert.\n * @property {module:engine/view/elementdefinition~ElementDefinition} view Definition of a view element to convert from/to.\n * @property {String} title The user-readable title of the option.\n * @property {String} class The class which will be added to the dropdown item representing this option.\n * @property {String} [icon] Icon used by {@link module:heading/headingbuttonsui~HeadingButtonsUI}. It can be omitted when using\n * the default configuration.\n * @extends module:engine/conversion/conversion~ConverterDefinition\n */\n\n\nexport { Heading as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module heading/headingcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * The heading command. It is used by the {@link module:heading/heading~Heading heading feature} to apply headings.\n *\n * @extends module:core/command~Command\n */\n\nvar HeadingCommand = /*#__PURE__*/function (_Command) {\n  _inherits(HeadingCommand, _Command);\n\n  var _super = _createSuper(HeadingCommand);\n\n  /**\n   * Creates an instance of the command.\n   *\n   * @param {module:core/editor/editor~Editor} editor Editor instance.\n   * @param {Array.<String>} modelElements Names of the element which this command can apply in the model.\n   */\n  function HeadingCommand(editor, modelElements) {\n    var _this;\n\n    _classCallCheck(this, HeadingCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * If the selection starts in a heading (which {@link #modelElements is supported by this command})\n     * the value is set to the name of that heading model element.\n     * It is  set to `false` otherwise.\n     *\n     * @observable\n     * @readonly\n     * @member {Boolean|String} #value\n     */\n\n    /**\n     * Set of defined model's elements names that this command support.\n     * See {@link module:heading/heading~HeadingOption}.\n     *\n     * @readonly\n     * @member {Array.<String>}\n     */\n\n    _this.modelElements = modelElements;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(HeadingCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var _this2 = this;\n\n      var block = first(this.editor.model.document.selection.getSelectedBlocks());\n      this.value = !!block && this.modelElements.includes(block.name) && block.name;\n      this.isEnabled = !!block && this.modelElements.some(function (heading) {\n        return checkCanBecomeHeading(block, heading, _this2.editor.model.schema);\n      });\n    }\n    /**\n     * Executes the command. Applies the heading to the selected blocks or, if the first selected\n     * block is a heading already, turns selected headings (of this level only) to paragraphs.\n     *\n     * @param {Object} options\n     * @param {String} options.value Name of the element which this command will apply in the model.\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(options) {\n      var model = this.editor.model;\n      var document = model.document;\n      var modelElement = options.value;\n      model.change(function (writer) {\n        var blocks = Array.from(document.selection.getSelectedBlocks()).filter(function (block) {\n          return checkCanBecomeHeading(block, modelElement, model.schema);\n        });\n\n        var _iterator = _createForOfIteratorHelper(blocks),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var block = _step.value;\n\n            if (!block.is(modelElement)) {\n              writer.rename(block, modelElement);\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n  }]);\n\n  return HeadingCommand;\n}(Command); // Checks whether the given block can be replaced by a specific heading.\n//\n// @private\n// @param {module:engine/model/element~Element} block A block to be tested.\n// @param {module:heading/headingcommand~HeadingCommand#modelElement} heading Command element name in the model.\n// @param {module:engine/model/schema~Schema} schema The schema of the document.\n// @returns {Boolean}\n\n\nexport { HeadingCommand as default };\n\nfunction checkCanBecomeHeading(block, heading, schema) {\n  return schema.checkChild(block.parent, heading) && !schema.isObject(block);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module heading/headingediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';\nimport HeadingCommand from \"./headingcommand\";\nimport priorities from '@ckeditor/ckeditor5-utils/src/priorities';\nvar defaultModelElement = 'paragraph';\n/**\n * The headings engine feature. It handles switching between block formats &ndash; headings and paragraph.\n * This class represents the engine part of the heading feature. See also {@link module:heading/heading~Heading}.\n * It introduces `heading1`-`headingN` commands which allow to convert paragraphs into headings.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar HeadingEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(HeadingEditing, _Plugin);\n\n  var _super = _createSuper(HeadingEditing);\n\n  _createClass(HeadingEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'HeadingEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function HeadingEditing(editor) {\n    var _this;\n\n    _classCallCheck(this, HeadingEditing);\n\n    _this = _super.call(this, editor);\n    editor.config.define('heading', {\n      options: [{\n        model: 'paragraph',\n        title: 'Paragraph',\n        class: 'ck-heading_paragraph'\n      }, {\n        model: 'heading1',\n        view: 'h2',\n        title: 'Heading 1',\n        class: 'ck-heading_heading1'\n      }, {\n        model: 'heading2',\n        view: 'h3',\n        title: 'Heading 2',\n        class: 'ck-heading_heading2'\n      }, {\n        model: 'heading3',\n        view: 'h4',\n        title: 'Heading 3',\n        class: 'ck-heading_heading3'\n      }]\n    });\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(HeadingEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor;\n      var options = editor.config.get('heading.options');\n      var modelElements = [];\n\n      var _iterator = _createForOfIteratorHelper(options),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var option = _step.value;\n\n          // Skip paragraph - it is defined in required Paragraph feature.\n          if (option.model !== defaultModelElement) {\n            // Schema.\n            editor.model.schema.register(option.model, {\n              inheritAllFrom: '$block'\n            });\n            editor.conversion.elementToElement(option);\n            modelElements.push(option.model);\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      this._addDefaultH1Conversion(editor); // Register the heading command for this option.\n\n\n      editor.commands.add('heading', new HeadingCommand(editor, modelElements));\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"afterInit\",\n    value: function afterInit() {\n      // If the enter command is added to the editor, alter its behavior.\n      // Enter at the end of a heading element should create a paragraph.\n      var editor = this.editor;\n      var enterCommand = editor.commands.get('enter');\n      var options = editor.config.get('heading.options');\n\n      if (enterCommand) {\n        this.listenTo(enterCommand, 'afterExecute', function (evt, data) {\n          var positionParent = editor.model.document.selection.getFirstPosition().parent;\n          var isHeading = options.some(function (option) {\n            return positionParent.is(option.model);\n          });\n\n          if (isHeading && !positionParent.is(defaultModelElement) && positionParent.childCount === 0) {\n            data.writer.rename(positionParent, defaultModelElement);\n          }\n        });\n      }\n    }\n    /**\n     * Adds default conversion for `h1` -> `heading1` with a low priority.\n     *\n     * @private\n     * @param {module:core/editor/editor~Editor} editor Editor instance on which to add the `h1` conversion.\n     */\n\n  }, {\n    key: \"_addDefaultH1Conversion\",\n    value: function _addDefaultH1Conversion(editor) {\n      editor.conversion.for('upcast').elementToElement({\n        model: 'heading1',\n        view: 'h1',\n        // With a `low` priority, `paragraph` plugin autoparagraphing mechanism is executed. Make sure\n        // this listener is called before it. If not, `h1` will be transformed into a paragraph.\n        converterPriority: priorities.get('low') + 1\n      });\n    }\n  }], [{\n    key: \"requires\",\n    get: function get() {\n      return [Paragraph];\n    }\n  }]);\n\n  return HeadingEditing;\n}(Plugin);\n\nexport { HeadingEditing as default };","import 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module heading/headingui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Model from '@ckeditor/ckeditor5-ui/src/model';\nimport {\n    createDropdown,\n    addListToDropdown\n} from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport { getLocalizedOptions } from './utils';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport '../theme/heading.css';\n/**\n * The headings UI feature. It introduces the `headings` dropdown.\n *\n * @extends module:core/plugin~Plugin\n */\nvar HeadingUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(HeadingUI, _Plugin);\n    var _super = _createSuper(HeadingUI);\n    function HeadingUI() {\n        _classCallCheck(this, HeadingUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(HeadingUI, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                var options = getLocalizedOptions(editor);\n                var defaultTitle = t('Choose heading');\n                var dropdownTooltip = t('Heading');\n                // Register UI component.\n                editor.ui.componentFactory.add('heading', function (locale) {\n                    var titles = {};\n                    var itemDefinitions = new Collection();\n                    var headingCommand = editor.commands.get('heading');\n                    var paragraphCommand = editor.commands.get('paragraph');\n                    var commands = [headingCommand];\n                    var _iterator = _createForOfIteratorHelper(options), _step;\n                    try {\n                        var _loop = function _loop() {\n                            var option = _step.value;\n                            var def = {\n                                type: 'button',\n                                model: new Model({\n                                    label: option.title,\n                                    class: option.class,\n                                    withText: true\n                                })\n                            };\n                            if (option.model === 'paragraph') {\n                                def.model.bind('isOn').to(paragraphCommand, 'value');\n                                def.model.set('commandName', 'paragraph');\n                                commands.push(paragraphCommand);\n                            } else {\n                                def.model.bind('isOn').to(headingCommand, 'value', function (value) {\n                                    return value === option.model;\n                                });\n                                def.model.set({\n                                    commandName: 'heading',\n                                    commandValue: option.model\n                                });\n                            }\n                            // Add the option to the collection.\n                            itemDefinitions.add(def);\n                            titles[option.model] = option.title;\n                        };\n                        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                            _loop();\n                        }\n                    } catch (err) {\n                        _iterator.e(err);\n                    } finally {\n                        _iterator.f();\n                    }\n                    var dropdownView = createDropdown(locale);\n                    addListToDropdown(dropdownView, itemDefinitions);\n                    dropdownView.buttonView.set({\n                        isOn: false,\n                        withText: true,\n                        tooltip: dropdownTooltip\n                    });\n                    dropdownView.extendTemplate({ attributes: { class: ['ck-heading-dropdown'] } });\n                    dropdownView.bind('isEnabled').toMany(commands, 'isEnabled', function () {\n                        for (var _len = arguments.length, areEnabled = new Array(_len), _key = 0; _key < _len; _key++) {\n                            areEnabled[_key] = arguments[_key];\n                        }\n                        return areEnabled.some(function (isEnabled) {\n                            return isEnabled;\n                        });\n                    });\n                    dropdownView.buttonView.bind('label').to(headingCommand, 'value', paragraphCommand, 'value', function (value, para) {\n                        var whichModel = value || para && 'paragraph';\n                        // If none of the commands is active, display default title.\n                        return titles[whichModel] ? titles[whichModel] : defaultTitle;\n                    });\n                    // Execute command when an item from the dropdown is selected.\n                    _this.listenTo(dropdownView, 'execute', function (evt) {\n                        editor.execute(evt.source.commandName, evt.source.commandValue ? { value: evt.source.commandValue } : undefined);\n                        editor.editing.view.focus();\n                    });\n                    return dropdownView;\n                });\n            }\n        }]);\n    return HeadingUI;\n}(Plugin);\nexport {\n    HeadingUI as default\n};","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module heading/utils\n */\n/**\n * Returns heading options as defined in `config.heading.options` but processed to consider\n * the editor localization, i.e. to display {@link module:heading/heading~HeadingOption}\n * in the correct language.\n *\n * Note: The reason behind this method is that there is no way to use {@link module:utils/locale~Locale#t}\n * when the user configuration is defined because the editor does not exist yet.\n *\n * @param {module:core/editor/editor~Editor} editor\n * @returns {Array.<module:heading/heading~HeadingOption>}.\n */\nexport function getLocalizedOptions(editor) {\n    var t = editor.t;\n    var localizedTitles = {\n        Paragraph: t('Paragraph'),\n        'Heading 1': t('Heading 1'),\n        'Heading 2': t('Heading 2'),\n        'Heading 3': t('Heading 3'),\n        'Heading 4': t('Heading 4'),\n        'Heading 5': t('Heading 5'),\n        'Heading 6': t('Heading 6')\n    };\n    return editor.config.get('heading.options').map(function (option) {\n        var title = localizedTitles[option.title];\n        if (title && title != option.title) {\n            option.title = title;\n        }\n        return option;\n    });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./heading.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"fa5445d0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./heading.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./heading.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageEditing from \"../src/image/imageediting\";\nimport Widget from '@ckeditor/ckeditor5-widget/src/widget';\nimport ImageTextAlternative from \"./imagetextalternative\";\nimport \"../theme/image.css\";\n/**\n * The image plugin.\n *\n * For a detailed overview, check the {@glink features/image image feature} documentation.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * {@link module:image/image/imageediting~ImageEditing},\n * * {@link module:image/imagetextalternative~ImageTextAlternative}.\n *\n * Usually, it is used in conjuction with other plugins from this package. See the {@glink api/image package page}\n * for more information.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Image = /*#__PURE__*/function (_Plugin) {\n  _inherits(Image, _Plugin);\n\n  var _super = _createSuper(Image);\n\n  function Image() {\n    _classCallCheck(this, Image);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Image, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [ImageEditing, Widget, ImageTextAlternative];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Image';\n    }\n  }]);\n\n  return Image;\n}(Plugin);\n/**\n * The configuration of the image features. Used by the image features in the `@ckeditor/ckeditor5-image` package.\n *\n * Read more in {@link module:image/image~ImageConfig}.\n *\n * @member {module:image/image~ImageConfig} module:core/editor/editorconfig~EditorConfig#image\n */\n\n/**\n * The configuration of the image features. Used by the image features in the `@ckeditor/ckeditor5-image` package.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\timage: ... // Image feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface ImageConfig\n */\n\n\nexport { Image as default };","import \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.array.find\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/converters\n */\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * Returns a function that converts the image view representation:\n *\n *\t\t<figure class=\"image\"><img src=\"...\" alt=\"...\"></img></figure>\n *\n * to the model representation:\n *\n *\t\t<image src=\"...\" alt=\"...\"></image>\n *\n * The entire content of the `<figure>` element except the first `<img>` is being converted as children\n * of the `<image>` model element.\n *\n * @returns {Function}\n */\n\nexport function viewFigureToModel() {\n  return function (dispatcher) {\n    dispatcher.on('element:figure', converter);\n  };\n\n  function converter(evt, data, conversionApi) {\n    // Do not convert if this is not an \"image figure\".\n    if (!conversionApi.consumable.test(data.viewItem, {\n      name: true,\n      classes: 'image'\n    })) {\n      return;\n    } // Find an image element inside the figure element.\n\n\n    var viewImage = Array.from(data.viewItem.getChildren()).find(function (viewChild) {\n      return viewChild.is('img');\n    }); // Do not convert if image element is absent, is missing src attribute or was already converted.\n\n    if (!viewImage || !viewImage.hasAttribute('src') || !conversionApi.consumable.test(viewImage, {\n      name: true\n    })) {\n      return;\n    } // Convert view image to model image.\n\n\n    var conversionResult = conversionApi.convertItem(viewImage, data.modelCursor); // Get image element from conversion result.\n\n    var modelImage = first(conversionResult.modelRange.getItems()); // When image wasn't successfully converted then finish conversion.\n\n    if (!modelImage) {\n      return;\n    } // Convert rest of the figure element's children as an image children.\n\n\n    conversionApi.convertChildren(data.viewItem, conversionApi.writer.createPositionAt(modelImage, 0)); // Set image range as conversion result.\n\n    data.modelRange = conversionResult.modelRange; // Continue conversion where image conversion ends.\n\n    data.modelCursor = conversionResult.modelCursor;\n  }\n}\n/**\n * Converter used to convert the `srcset` model image attribute to the `srcset`, `sizes` and `width` attributes in the view.\n *\n * @returns {Function}\n */\n\nexport function srcsetAttributeConverter() {\n  return function (dispatcher) {\n    dispatcher.on('attribute:srcset:image', converter);\n  };\n\n  function converter(evt, data, conversionApi) {\n    if (!conversionApi.consumable.consume(data.item, evt.name)) {\n      return;\n    }\n\n    var writer = conversionApi.writer;\n    var figure = conversionApi.mapper.toViewElement(data.item);\n    var img = figure.getChild(0);\n\n    if (data.attributeNewValue === null) {\n      var srcset = data.attributeOldValue;\n\n      if (srcset.data) {\n        writer.removeAttribute('srcset', img);\n        writer.removeAttribute('sizes', img);\n\n        if (srcset.width) {\n          writer.removeAttribute('width', img);\n        }\n      }\n    } else {\n      var _srcset = data.attributeNewValue;\n\n      if (_srcset.data) {\n        writer.setAttribute('srcset', _srcset.data, img); // Always outputting `100vw`. See https://github.com/ckeditor/ckeditor5-image/issues/2.\n\n        writer.setAttribute('sizes', '100vw', img);\n\n        if (_srcset.width) {\n          writer.setAttribute('width', _srcset.width, img);\n        }\n      }\n    }\n  }\n}\nexport function modelToViewAttributeConverter(attributeKey) {\n  return function (dispatcher) {\n    dispatcher.on(\"attribute:\".concat(attributeKey, \":image\"), converter);\n  };\n\n  function converter(evt, data, conversionApi) {\n    if (!conversionApi.consumable.consume(data.item, evt.name)) {\n      return;\n    }\n\n    var viewWriter = conversionApi.writer;\n    var figure = conversionApi.mapper.toViewElement(data.item);\n    var img = figure.getChild(0);\n\n    if (data.attributeNewValue !== null) {\n      viewWriter.setAttribute(data.attributeKey, data.attributeNewValue, img);\n    } else {\n      viewWriter.removeAttribute(data.attributeKey, img);\n    }\n  }\n}","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/image/imageediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageLoadObserver from './imageloadobserver';\nimport {\n    viewFigureToModel,\n    modelToViewAttributeConverter,\n    srcsetAttributeConverter\n} from './converters';\nimport { toImageWidget } from './utils';\nimport ImageInsertCommand from './imageinsertcommand';\n/**\n * The image engine plugin.\n *\n * It registers:\n *\n * * `<image>` as a block element in the document schema, and allows `alt`, `src` and `srcset` attributes.\n * * converters for editing and data pipelines.\n * * `'imageInsert'` command.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageEditing = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ImageEditing, _Plugin);\n    var _super = _createSuper(ImageEditing);\n    function ImageEditing() {\n        _classCallCheck(this, ImageEditing);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ImageEditing, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var editor = this.editor;\n                var schema = editor.model.schema;\n                var t = editor.t;\n                var conversion = editor.conversion;\n                // See https://github.com/ckeditor/ckeditor5-image/issues/142.\n                editor.editing.view.addObserver(ImageLoadObserver);\n                // Configure schema.\n                schema.register('image', {\n                    isObject: true,\n                    isBlock: true,\n                    allowWhere: '$block',\n                    allowAttributes: [\n                        'alt',\n                        'src',\n                        'srcset'\n                    ]\n                });\n                conversion.for('dataDowncast').elementToElement({\n                    model: 'image',\n                    view: function view(modelElement, viewWriter) {\n                        return createImageViewElement(viewWriter);\n                    }\n                });\n                conversion.for('editingDowncast').elementToElement({\n                    model: 'image',\n                    view: function view(modelElement, viewWriter) {\n                        return toImageWidget(createImageViewElement(viewWriter), viewWriter, t('image widget'));\n                    }\n                });\n                conversion.for('downcast').add(modelToViewAttributeConverter('src')).add(modelToViewAttributeConverter('alt')).add(srcsetAttributeConverter());\n                conversion.for('upcast').elementToElement({\n                    view: {\n                        name: 'img',\n                        attributes: { src: true }\n                    },\n                    model: function model(viewImage, modelWriter) {\n                        return modelWriter.createElement('image', { src: viewImage.getAttribute('src') });\n                    }\n                }).attributeToAttribute({\n                    view: {\n                        name: 'img',\n                        key: 'alt'\n                    },\n                    model: 'alt'\n                }).attributeToAttribute({\n                    view: {\n                        name: 'img',\n                        key: 'srcset'\n                    },\n                    model: {\n                        key: 'srcset',\n                        value: function value(viewImage) {\n                            var value = { data: viewImage.getAttribute('srcset') };\n                            if (viewImage.hasAttribute('width')) {\n                                value.width = viewImage.getAttribute('width');\n                            }\n                            return value;\n                        }\n                    }\n                }).add(viewFigureToModel());\n                // Register imageUpload command.\n                editor.commands.add('imageInsert', new ImageInsertCommand(editor));\n            }\n        }], [{\n            key: 'pluginName',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return 'ImageEditing';\n            }\n        }]);\n    return ImageEditing;\n}(Plugin);\n// Creates a view element representing the image.\n//\n//\t\t<figure class=\"image\"><img></img></figure>\n//\n// Note that `alt` and `src` attributes are converted separately, so they are not included.\n//\n// @private\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @returns {module:engine/view/containerelement~ContainerElement}\nexport {\n    ImageEditing as default\n};\nexport function createImageViewElement(writer) {\n    var emptyElement = writer.createEmptyElement('img');\n    var figure = writer.createContainerElement('figure', { class: 'image' });\n    writer.insert(writer.createPositionAt(figure, 0), emptyElement);\n    return figure;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { insertImage, isImageAllowed } from \"./utils\";\n/**\n * @module image/image/imageinsertcommand\n */\n\n/**\n * Insert image command.\n *\n * The command is registered by the {@link module:image/image/imageediting~ImageEditing} plugin as `'imageInsert'`.\n *\n * In order to insert an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionPosition} algorithm),\n * execute the command and specify the image source:\n *\n *\t\teditor.execute( 'imageInsert', { source: 'http://url.to.the/image' } );\n *\n * It is also possible to insert multiple images at once:\n *\n *\t\teditor.execute( 'imageInsert', {\n *\t\t\tsource:  [\n *\t\t\t\t'path/to/image.jpg',\n *\t\t\t\t'path/to/other-image.jpg'\n *\t\t\t]\n *\t\t} );\n *\n * @extends module:core/command~Command\n */\n\nvar ImageInsertCommand = /*#__PURE__*/function (_Command) {\n  _inherits(ImageInsertCommand, _Command);\n\n  var _super = _createSuper(ImageInsertCommand);\n\n  function ImageInsertCommand() {\n    _classCallCheck(this, ImageInsertCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageInsertCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      this.isEnabled = isImageAllowed(this.editor.model);\n    }\n    /**\n     * Executes the command.\n     *\n     * @fires execute\n     * @param {Object} options Options for the executed command.\n     * @param {String|Array.<String>} options.source The image source or an array of image sources to insert.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(options) {\n      var model = this.editor.model;\n      model.change(function (writer) {\n        var sources = Array.isArray(options.source) ? options.source : [options.source];\n\n        var _iterator = _createForOfIteratorHelper(sources),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var src = _step.value;\n            insertImage(writer, model, {\n              src: src\n            });\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n  }]);\n\n  return ImageInsertCommand;\n}(Command);\n\nexport { ImageInsertCommand as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/imageloadobserver\n */\nimport Observer from '@ckeditor/ckeditor5-engine/src/view/observer/observer';\n/**\n * Observes all new images added to the {@link module:engine/view/document~Document},\n * fires {@link module:engine/view/document~Document#event:imageLoaded} and\n * {@link module:engine/view/document~Document#event:layoutChanged} event every time when the new image\n * has been loaded.\n *\n * **Note:** This event is not fired for images that has been added to the document and rendered as `complete` (already loaded).\n *\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar ImageLoadObserver = /*#__PURE__*/function (_Observer) {\n  _inherits(ImageLoadObserver, _Observer);\n\n  var _super = _createSuper(ImageLoadObserver);\n\n  function ImageLoadObserver(view) {\n    var _this;\n\n    _classCallCheck(this, ImageLoadObserver);\n\n    _this = _super.call(this, view);\n    /**\n     * List of img DOM elements that are observed by this observer.\n     *\n     * @private\n     * @type {Set.<HTMLElement>}\n     */\n\n    _this._observedElements = new Set();\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ImageLoadObserver, [{\n    key: \"observe\",\n    value: function observe(domRoot, name) {\n      var _this2 = this;\n\n      var viewRoot = this.document.getRoot(name); // When there is a change in one of the view element\n      // we need to check if there are any new `<img/>` elements to observe.\n\n      viewRoot.on('change:children', function (evt, node) {\n        // Wait for the render to be sure that `<img/>` elements are rendered in the DOM root.\n        _this2.view.once('render', function () {\n          return _this2._updateObservedElements(domRoot, node);\n        });\n      });\n    }\n    /**\n     * Updates the list of observed `<img/>` elements.\n     *\n     * @private\n     * @param {HTMLElement} domRoot DOM root element.\n     * @param {module:engine/view/element~Element} viewNode View element where children have changed.\n     */\n\n  }, {\n    key: \"_updateObservedElements\",\n    value: function _updateObservedElements(domRoot, viewNode) {\n      var _this3 = this;\n\n      if (!viewNode.is('element') || viewNode.is('attributeElement')) {\n        return;\n      }\n\n      var domNode = this.view.domConverter.mapViewToDom(viewNode); // If there is no `domNode` it means that it was removed from the DOM in the meanwhile.\n\n      if (!domNode) {\n        return;\n      }\n\n      var _iterator = _createForOfIteratorHelper(domNode.querySelectorAll('img')),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var domElement = _step.value;\n\n          if (!this._observedElements.has(domElement)) {\n            this.listenTo(domElement, 'load', function (evt, domEvt) {\n              return _this3._fireEvents(domEvt);\n            });\n\n            this._observedElements.add(domElement);\n          }\n        } // Clean up the list of observed elements from elements that has been removed from the root.\n\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      var _iterator2 = _createForOfIteratorHelper(this._observedElements),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var _domElement = _step2.value;\n\n          if (!domRoot.contains(_domElement)) {\n            this.stopListening(_domElement);\n\n            this._observedElements.delete(_domElement);\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n    /**\n     * Fires {@link module:engine/view/document~Document#event:layoutChanged} and\n     * {@link module:engine/view/document~Document#event:imageLoaded}\n     * if observer {@link #isEnabled is enabled}.\n     *\n     * @protected\n     * @param {Event} domEvent The DOM event.\n     */\n\n  }, {\n    key: \"_fireEvents\",\n    value: function _fireEvents(domEvent) {\n      if (this.isEnabled) {\n        this.document.fire('layoutChanged');\n        this.document.fire('imageLoaded', domEvent);\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this._observedElements.clear();\n\n      _get(_getPrototypeOf(ImageLoadObserver.prototype), \"destroy\", this).call(this);\n    }\n  }]);\n\n  return ImageLoadObserver;\n}(Observer);\n/**\n * Fired when an <img/> DOM element has been loaded in the DOM root.\n *\n * Introduced by {@link module:image/image/imageloadobserver~ImageLoadObserver}.\n *\n * @see module:image/image/imageloadobserver~ImageLoadObserver\n * @event module:engine/view/document~Document#event:imageLoaded\n * @param {module:engine/view/observer/domeventdata~DomEventData} data Event data.\n */\n\n\nexport { ImageLoadObserver as default };","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/ui/utils\n */\nimport BalloonPanelView from '@ckeditor/ckeditor5-ui/src/panel/balloon/balloonpanelview';\nimport { getSelectedImageWidget } from \"../utils\";\n/**\n * A helper utility that positions the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} instance\n * with respect to the image in the editor content, if one is selected.\n *\n * @param {module:core/editor/editor~Editor} editor The editor instance.\n */\n\nexport function repositionContextualBalloon(editor) {\n  var balloon = editor.plugins.get('ContextualBalloon');\n\n  if (getSelectedImageWidget(editor.editing.view.document.selection)) {\n    var position = getBalloonPositionData(editor);\n    balloon.updatePosition(position);\n  }\n}\n/**\n * Returns the positioning options that control the geometry of the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon} with respect\n * to the selected element in the editor content.\n *\n * @param {module:core/editor/editor~Editor} editor The editor instance.\n * @returns {module:utils/dom/position~Options}\n */\n\nexport function getBalloonPositionData(editor) {\n  var editingView = editor.editing.view;\n  var defaultPositions = BalloonPanelView.defaultPositions;\n  return {\n    target: editingView.domConverter.viewToDom(editingView.document.selection.getSelectedElement()),\n    positions: [defaultPositions.northArrowSouth, defaultPositions.northArrowSouthWest, defaultPositions.northArrowSouthEast, defaultPositions.southArrowNorth, defaultPositions.southArrowNorthWest, defaultPositions.southArrowNorthEast]\n  };\n}","import _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/image/utils\n */\nimport { findOptimalInsertionPosition, isWidget, toWidget } from '@ckeditor/ckeditor5-widget/src/utils';\n/**\n * Converts a given {@link module:engine/view/element~Element} to an image widget:\n * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the image widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer An instance of the view writer.\n * @param {String} label The element's label. It will be concatenated with the image `alt` attribute if one is present.\n * @returns {module:engine/view/element~Element}\n */\n\nexport function toImageWidget(viewElement, writer, label) {\n  writer.setCustomProperty('image', true, viewElement);\n  return toWidget(viewElement, writer, {\n    label: labelCreator\n  });\n\n  function labelCreator() {\n    var imgElement = viewElement.getChild(0);\n    var altText = imgElement.getAttribute('alt');\n    return altText ? \"\".concat(altText, \" \").concat(label) : label;\n  }\n}\n/**\n * Checks if a given view element is an image widget.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @returns {Boolean}\n */\n\nexport function isImageWidget(viewElement) {\n  return !!viewElement.getCustomProperty('image') && isWidget(viewElement);\n}\n/**\n * Returns an image widget editing view element if one is selected.\n *\n * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} selection\n * @returns {module:engine/view/element~Element|null}\n */\n\nexport function getSelectedImageWidget(selection) {\n  var viewElement = selection.getSelectedElement();\n\n  if (viewElement && isImageWidget(viewElement)) {\n    return viewElement;\n  }\n\n  return null;\n}\n/**\n * Checks if the provided model element is an `image`.\n *\n * @param {module:engine/model/element~Element} modelElement\n * @returns {Boolean}\n */\n\nexport function isImage(modelElement) {\n  return !!modelElement && modelElement.is('image');\n}\n/**\n * Handles inserting single file. This method unifies image insertion using {@link module:widget/utils~findOptimalInsertionPosition} method.\n *\n *\t\tmodel.change( writer => {\n *\t\t\tinsertImage( writer, model, { src: 'path/to/image.jpg' } );\n *\t\t} );\n *\n * @param {module:engine/model/writer~Writer} writer\n * @param {module:engine/model/model~Model} model\n * @param {Object} [attributes={}] Attributes of inserted image\n */\n\nexport function insertImage(writer, model) {\n  var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var imageElement = writer.createElement('image', attributes);\n  var insertAtSelection = findOptimalInsertionPosition(model.document.selection, model);\n  model.insertContent(imageElement, insertAtSelection); // Inserting an image might've failed due to schema regulations.\n\n  if (imageElement.parent) {\n    writer.setSelection(imageElement, 'on');\n  }\n}\n/**\n * Checks if image can be inserted at current model selection.\n *\n * @param {module:engine/model/model~Model} model\n * @returns {Boolean}\n */\n\nexport function isImageAllowed(model) {\n  var schema = model.schema;\n  var selection = model.document.selection;\n  return isImageAllowedInParent(selection, schema, model) && !checkSelectionOnObject(selection, schema) && isInOtherImage(selection);\n} // Checks if image is allowed by schema in optimal insertion parent.\n//\n// @returns {Boolean}\n\nfunction isImageAllowedInParent(selection, schema, model) {\n  var parent = getInsertImageParent(selection, model);\n  return schema.checkChild(parent, 'image');\n} // Check if selection is on object.\n//\n// @returns {Boolean}\n\n\nfunction checkSelectionOnObject(selection, schema) {\n  var selectedElement = selection.getSelectedElement();\n  return selectedElement && schema.isObject(selectedElement);\n} // Checks if selection is placed in other image (ie. in caption).\n\n\nfunction isInOtherImage(selection) {\n  return _toConsumableArray(selection.focus.getAncestors()).every(function (ancestor) {\n    return !ancestor.is('image');\n  });\n} // Returns a node that will be used to insert image with `model.insertContent` to check if image can be placed there.\n\n\nfunction getInsertImageParent(selection, model) {\n  var insertAt = findOptimalInsertionPosition(selection, model);\n  var parent = insertAt.parent;\n\n  if (parent.isEmpty && !parent.is('$root')) {\n    return parent.parent;\n  }\n\n  return parent;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageCaptionEditing from \"./imagecaption/imagecaptionediting\";\nimport \"../theme/imagecaption.css\";\n/**\n * The image caption plugin.\n *\n * For a detailed overview, check the {@glink features/image#image-captions image caption} documentation.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageCaption = /*#__PURE__*/function (_Plugin) {\n  _inherits(ImageCaption, _Plugin);\n\n  var _super = _createSuper(ImageCaption);\n\n  function ImageCaption() {\n    _classCallCheck(this, ImageCaption);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageCaption, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [ImageCaptionEditing];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'ImageCaption';\n    }\n  }]);\n\n  return ImageCaption;\n}(Plugin);\n\nexport { ImageCaption as default };","import 'core-js/modules/es6.array.find';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/es6.function.name';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagecaption/imagecaptionediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { isImage } from '../image/utils';\nimport {\n    captionElementCreator,\n    getCaptionFromImage,\n    matchImageCaption\n} from './utils';\n/**\n * The image caption engine plugin.\n *\n * It registers proper converters. It takes care of adding a caption element if the image without it is inserted\n * to the model document.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageCaptionEditing = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ImageCaptionEditing, _Plugin);\n    var _super = _createSuper(ImageCaptionEditing);\n    function ImageCaptionEditing() {\n        _classCallCheck(this, ImageCaptionEditing);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ImageCaptionEditing, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var view = editor.editing.view;\n                var schema = editor.model.schema;\n                var data = editor.data;\n                var editing = editor.editing;\n                var t = editor.t;\n                /**\n       * The last selected caption editable.\n       * It is used for hiding the editable when it is empty and the image widget is no longer selected.\n       *\n       * @private\n       * @member {module:engine/view/editableelement~EditableElement} #_lastSelectedCaption\n       */\n                // Schema configuration.\n                schema.register('caption', {\n                    allowIn: 'image',\n                    allowContentOf: '$block',\n                    isLimit: true\n                });\n                // Add caption element to each image inserted without it.\n                editor.model.document.registerPostFixer(function (writer) {\n                    return _this._insertMissingModelCaptionElement(writer);\n                });\n                // View to model converter for the data pipeline.\n                editor.conversion.for('upcast').elementToElement({\n                    view: matchImageCaption,\n                    model: 'caption'\n                });\n                // Model to view converter for the data pipeline.\n                var createCaptionForData = function createCaptionForData(writer) {\n                    return writer.createContainerElement('figcaption');\n                };\n                data.downcastDispatcher.on('insert:caption', captionModelToView(createCaptionForData, false));\n                // Model to view converter for the editing pipeline.\n                var createCaptionForEditing = captionElementCreator(view, t('Enter image caption'));\n                editing.downcastDispatcher.on('insert:caption', captionModelToView(createCaptionForEditing));\n                // Always show caption in view when something is inserted in model.\n                editing.downcastDispatcher.on('insert', this._fixCaptionVisibility(function (data) {\n                    return data.item;\n                }), { priority: 'high' });\n                // Hide caption when everything is removed from it.\n                editing.downcastDispatcher.on('remove', this._fixCaptionVisibility(function (data) {\n                    return data.position.parent;\n                }), { priority: 'high' });\n                // Update caption visibility on view in post fixer.\n                view.document.registerPostFixer(function (writer) {\n                    return _this._updateCaptionVisibility(writer);\n                });\n            }    /**\n     * Updates the view before each rendering, making sure that empty captions (so unnecessary ones) are hidden\n     * and then visible when the image is selected.\n     *\n     * @private\n     * @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter\n     * @returns {Boolean} Returns `true` when the view is updated.\n     */\n        },\n        {\n            key: '_updateCaptionVisibility',\n            value: function _updateCaptionVisibility(viewWriter) {\n                var mapper = this.editor.editing.mapper;\n                var lastCaption = this._lastSelectedCaption;\n                var viewCaption;\n                // If whole image is selected.\n                var modelSelection = this.editor.model.document.selection;\n                var selectedElement = modelSelection.getSelectedElement();\n                if (selectedElement && selectedElement.is('image')) {\n                    var _modelCaption = getCaptionFromImage(selectedElement);\n                    viewCaption = mapper.toViewElement(_modelCaption);\n                }\n                // If selection is placed inside caption.\n                var position = modelSelection.getFirstPosition();\n                var modelCaption = getParentCaption(position.parent);\n                if (modelCaption) {\n                    viewCaption = mapper.toViewElement(modelCaption);\n                }\n                // Is currently any caption selected?\n                if (viewCaption) {\n                    // Was any caption selected before?\n                    if (lastCaption) {\n                        // Same caption as before?\n                        if (lastCaption === viewCaption) {\n                            return showCaption(viewCaption, viewWriter);\n                        } else {\n                            hideCaptionIfEmpty(lastCaption, viewWriter);\n                            this._lastSelectedCaption = viewCaption;\n                            return showCaption(viewCaption, viewWriter);\n                        }\n                    } else {\n                        this._lastSelectedCaption = viewCaption;\n                        return showCaption(viewCaption, viewWriter);\n                    }\n                } else {\n                    // Was any caption selected before?\n                    if (lastCaption) {\n                        var viewModified = hideCaptionIfEmpty(lastCaption, viewWriter);\n                        this._lastSelectedCaption = null;\n                        return viewModified;\n                    } else {\n                        return false;\n                    }\n                }\n            }    /**\n     * Returns a converter that fixes caption visibility during the model-to-view conversion.\n     * Checks if the changed node is placed inside the caption element and fixes its visibility in the view.\n     *\n     * @private\n     * @param {Function} nodeFinder\n     * @returns {Function}\n     */\n        },\n        {\n            key: '_fixCaptionVisibility',\n            value: function _fixCaptionVisibility(nodeFinder) {\n                var _this2 = this;\n                return function (evt, data, conversionApi) {\n                    var node = nodeFinder(data);\n                    var modelCaption = getParentCaption(node);\n                    var mapper = _this2.editor.editing.mapper;\n                    var viewWriter = conversionApi.writer;\n                    if (modelCaption) {\n                        var viewCaption = mapper.toViewElement(modelCaption);\n                        if (viewCaption) {\n                            if (modelCaption.childCount) {\n                                viewWriter.removeClass('ck-hidden', viewCaption);\n                            } else {\n                                viewWriter.addClass('ck-hidden', viewCaption);\n                            }\n                        }\n                    }\n                };\n            }    /**\n     * Checks whether the data inserted to the model document have an image element that has no caption element inside it.\n     * If there is none, it adds it to the image element.\n     *\n     * @private\n     * @param {module:engine/model/writer~Writer} writer The writer to make changes with.\n     * @returns {Boolean} `true` if any change was applied, `false` otherwise.\n     */\n        },\n        {\n            key: '_insertMissingModelCaptionElement',\n            value: function _insertMissingModelCaptionElement(writer) {\n                var model = this.editor.model;\n                var changes = model.document.differ.getChanges();\n                var imagesWithoutCaption = [];\n                var _iterator = _createForOfIteratorHelper(changes), _step;\n                try {\n                    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                        var entry = _step.value;\n                        if (entry.type == 'insert' && entry.name != '$text') {\n                            var item = entry.position.nodeAfter;\n                            if (item.is('image') && !getCaptionFromImage(item)) {\n                                imagesWithoutCaption.push(item);\n                            }\n                            // Check elements with children for nested images.\n                            if (!item.is('image') && item.childCount) {\n                                var _iterator2 = _createForOfIteratorHelper(model.createRangeIn(item).getItems()), _step2;\n                                try {\n                                    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                                        var nestedItem = _step2.value;\n                                        if (nestedItem.is('image') && !getCaptionFromImage(nestedItem)) {\n                                            imagesWithoutCaption.push(nestedItem);\n                                        }\n                                    }\n                                } catch (err) {\n                                    _iterator2.e(err);\n                                } finally {\n                                    _iterator2.f();\n                                }\n                            }\n                        }\n                    }\n                } catch (err) {\n                    _iterator.e(err);\n                } finally {\n                    _iterator.f();\n                }\n                for (var _i = 0, _imagesWithoutCaption = imagesWithoutCaption; _i < _imagesWithoutCaption.length; _i++) {\n                    var image = _imagesWithoutCaption[_i];\n                    writer.appendElement('caption', image);\n                }\n                return !!imagesWithoutCaption.length;\n            }\n        }\n    ], [{\n            key: 'pluginName',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return 'ImageCaptionEditing';\n            }\n        }]);\n    return ImageCaptionEditing;\n}(Plugin);\n// Creates a converter that converts image caption model element to view element.\n//\n// @private\n// @param {Function} elementCreator\n// @param {Boolean} [hide=true] When set to `false` view element will not be inserted when it's empty.\n// @returns {Function}\nexport {\n    ImageCaptionEditing as default\n};\nfunction captionModelToView(elementCreator) {\n    var hide = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n    return function (evt, data, conversionApi) {\n        var captionElement = data.item;\n        // Return if element shouldn't be present when empty.\n        if (!captionElement.childCount && !hide) {\n            return;\n        }\n        if (isImage(captionElement.parent)) {\n            if (!conversionApi.consumable.consume(data.item, 'insert')) {\n                return;\n            }\n            var viewImage = conversionApi.mapper.toViewElement(data.range.start.parent);\n            var viewCaption = elementCreator(conversionApi.writer);\n            var viewWriter = conversionApi.writer;\n            // Hide if empty.\n            if (!captionElement.childCount) {\n                viewWriter.addClass('ck-hidden', viewCaption);\n            }\n            insertViewCaptionAndBind(viewCaption, data.item, viewImage, conversionApi);\n        }\n    };\n}\n// Inserts `viewCaption` at the end of `viewImage` and binds it to `modelCaption`.\n//\n// @private\n// @param {module:engine/view/containerelement~ContainerElement} viewCaption\n// @param {module:engine/model/element~Element} modelCaption\n// @param {module:engine/view/containerelement~ContainerElement} viewImage\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\nfunction insertViewCaptionAndBind(viewCaption, modelCaption, viewImage, conversionApi) {\n    var viewPosition = conversionApi.writer.createPositionAt(viewImage, 'end');\n    conversionApi.writer.insert(viewPosition, viewCaption);\n    conversionApi.mapper.bindElements(modelCaption, viewCaption);\n}\n// Checks if the provided node or one of its ancestors is a caption element, and returns it.\n//\n// @private\n// @param {module:engine/model/node~Node} node\n// @returns {module:engine/model/element~Element|null}\nfunction getParentCaption(node) {\n    var ancestors = node.getAncestors({ includeSelf: true });\n    var caption = ancestors.find(function (ancestor) {\n        return ancestor.name == 'caption';\n    });\n    if (caption && caption.parent && caption.parent.name == 'image') {\n        return caption;\n    }\n    return null;\n}\n// Hides a given caption in the view if it is empty.\n//\n// @private\n// @param {module:engine/view/containerelement~ContainerElement} caption\n// @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter\n// @returns {Boolean} Returns `true` if the view was modified.\nfunction hideCaptionIfEmpty(caption, viewWriter) {\n    if (!caption.childCount && !caption.hasClass('ck-hidden')) {\n        viewWriter.addClass('ck-hidden', caption);\n        return true;\n    }\n    return false;\n}\n// Shows the caption.\n//\n// @private\n// @param {module:engine/view/containerelement~ContainerElement} caption\n// @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter\n// @returns {Boolean} Returns `true` if the view was modified.\nfunction showCaption(caption, viewWriter) {\n    if (caption.hasClass('ck-hidden')) {\n        viewWriter.removeClass('ck-hidden', caption);\n        return true;\n    }\n    return false;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagecaption/utils\n */\nimport { enablePlaceholder } from '@ckeditor/ckeditor5-engine/src/view/placeholder';\nimport { toWidgetEditable } from '@ckeditor/ckeditor5-widget/src/utils';\n/**\n * Returns a function that creates a caption editable element for the given {@link module:engine/view/document~Document}.\n *\n * @param {module:engine/view/view~View} view\n * @param {String} placeholderText The text to be displayed when the caption is empty.\n * @returns {Function}\n */\n\nexport function captionElementCreator(view, placeholderText) {\n  return function (writer) {\n    var editable = writer.createEditableElement('figcaption');\n    writer.setCustomProperty('imageCaption', true, editable);\n    enablePlaceholder({\n      view: view,\n      element: editable,\n      text: placeholderText\n    });\n    return toWidgetEditable(editable, writer);\n  };\n}\n/**\n * Returns `true` if a given view element is the image caption editable.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @returns {Boolean}\n */\n\nexport function isCaption(viewElement) {\n  return !!viewElement.getCustomProperty('imageCaption');\n}\n/**\n * Returns the caption model element from a given image element. Returns `null` if no caption is found.\n *\n * @param {module:engine/model/element~Element} imageModelElement\n * @returns {module:engine/model/element~Element|null}\n */\n\nexport function getCaptionFromImage(imageModelElement) {\n  var _iterator = _createForOfIteratorHelper(imageModelElement.getChildren()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var node = _step.value;\n\n      if (!!node && node.is('caption')) {\n        return node;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return null;\n}\n/**\n * {@link module:engine/view/matcher~Matcher} pattern. Checks if a given element is a `<figcaption>` element that is placed\n * inside the image `<figure>` element.\n *\n * @param {module:engine/view/element~Element} element\n * @returns {Object|null} Returns the object accepted by {@link module:engine/view/matcher~Matcher} or `null` if the element\n * cannot be matched.\n */\n\nexport function matchImageCaption(element) {\n  var parent = element.parent; // Convert only captions for images.\n\n  if (element.name == 'figcaption' && parent && parent.name == 'figure' && parent.hasClass('image')) {\n    return {\n      name: true\n    };\n  }\n\n  return null;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageStyleEditing from \"./imagestyle/imagestyleediting\";\nimport ImageStyleUI from \"./imagestyle/imagestyleui\";\n/**\n * The image style plugin.\n *\n * For a detailed overview, check the {@glink features/image#image-styles image styles} documentation.\n *\n * This is a \"glue\" plugin which loads the {@link module:image/imagestyle/imagestyleediting~ImageStyleEditing}\n * and {@link module:image/imagestyle/imagestyleui~ImageStyleUI} plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageStyle = /*#__PURE__*/function (_Plugin) {\n  _inherits(ImageStyle, _Plugin);\n\n  var _super = _createSuper(ImageStyle);\n\n  function ImageStyle() {\n    _classCallCheck(this, ImageStyle);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageStyle, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [ImageStyleEditing, ImageStyleUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'ImageStyle';\n    }\n  }]);\n\n  return ImageStyle;\n}(Plugin);\n/**\n * Available image styles.\n *\n * The default value is:\n *\n *\t\tconst imageConfig = {\n *\t\t\tstyles: [ 'full', 'side' ]\n *\t\t};\n *\n * which configures two default styles:\n *\n *  * the \"full\" style which does not apply any class, e.g. for images styled to span 100% width of the content,\n *  * the \"side\" style with the `.image-style-side` CSS class.\n *\n * See {@link module:image/imagestyle/utils~defaultStyles} to learn more about default\n * styles provided by the image feature.\n *\n * The {@link module:image/imagestyle/utils~defaultStyles default styles} can be customized,\n * e.g. to change the icon, title or CSS class of the style. The feature also provides several\n * {@link module:image/imagestyle/utils~defaultIcons default icons} to choose from.\n *\n *\t\timport customIcon from 'custom-icon.svg';\n *\n *\t\t// ...\n *\n *\t\tconst imageConfig = {\n *\t\t\tstyles: [\n *\t\t\t\t// This will only customize the icon of the \"full\" style.\n *\t\t\t\t// Note: 'right' is one of default icons provided by the feature.\n *\t\t\t\t{ name: 'full', icon: 'right' },\n *\n *\t\t\t\t// This will customize the icon, title and CSS class of the default \"side\" style.\n *\t\t\t\t{ name: 'side', icon: customIcon, title: 'My side style', className: 'custom-side-image' }\n *\t\t\t]\n *\t\t};\n *\n * If none of the default styles is good enough, it is possible to define independent custom styles, too:\n *\n *\t\timport fullSizeIcon from '@ckeditor/ckeditor5-core/theme/icons/object-center.svg';\n *\t\timport sideIcon from '@ckeditor/ckeditor5-core/theme/icons/object-right.svg';\n *\n *\t\t// ...\n *\n *\t\tconst imageConfig = {\n *\t\t\tstyles: [\n *\t\t\t\t// A completely custom full size style with no class, used as a default.\n *\t\t\t\t{ name: 'fullSize', title: 'Full size', icon: fullSizeIcon, isDefault: true },\n *\n *\t\t\t\t{ name: 'side', title: 'To the side', icon: sideIcon, className: 'side-image' }\n *\t\t\t]\n *\t\t};\n *\n * Note: Setting `title` to one of {@link module:image/imagestyle/imagestyleui~ImageStyleUI#localizedDefaultStylesTitles}\n * will automatically translate it to the language of the editor.\n *\n * Read more about styling images in the {@glink features/image#image-styles Image styles guide}.\n *\n * The feature creates commands based on defined styles, so you can change the style of a selected image by executing\n * the following command:\n *\n *\t\teditor.execute( 'imageStyle' { value: 'side' } );\n *\n * The feature also creates buttons that execute the commands. So, assuming that you use the\n * default image styles setting, you can {@link module:image/image~ImageConfig#toolbar configure the image toolbar}\n * (or any other toolbar) to contain these options:\n *\n *\t\tconst imageConfig = {\n *\t\t\ttoolbar: [ 'imageStyle:full', 'imageStyle:side' ]\n *\t\t};\n *\n * @member {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat>} module:image/image~ImageConfig#styles\n */\n\n\nexport { ImageStyle as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * @module image/imagestyle/converters\n */\n\n/**\n * Returns a converter for the `imageStyle` attribute. It can be used for adding, changing and removing the attribute.\n *\n * @param {Object} styles An object containing available styles. See {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat}\n * for more details.\n * @returns {Function} A model-to-view attribute converter.\n */\n\nexport function modelToViewStyleAttribute(styles) {\n  return function (evt, data, conversionApi) {\n    if (!conversionApi.consumable.consume(data.item, evt.name)) {\n      return;\n    } // Check if there is class name associated with given value.\n\n\n    var newStyle = getStyleByName(data.attributeNewValue, styles);\n    var oldStyle = getStyleByName(data.attributeOldValue, styles);\n    var viewElement = conversionApi.mapper.toViewElement(data.item);\n    var viewWriter = conversionApi.writer;\n\n    if (oldStyle) {\n      viewWriter.removeClass(oldStyle.className, viewElement);\n    }\n\n    if (newStyle) {\n      viewWriter.addClass(newStyle.className, viewElement);\n    }\n  };\n}\n/**\n * Returns a view-to-model converter converting image CSS classes to a proper value in the model.\n *\n * @param {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat>} styles The styles for which the converter is created.\n * @returns {Function} A view-to-model converter.\n */\n\nexport function viewToModelStyleAttribute(styles) {\n  // Convert only non–default styles.\n  var filteredStyles = styles.filter(function (style) {\n    return !style.isDefault;\n  });\n  return function (evt, data, conversionApi) {\n    if (!data.modelRange) {\n      return;\n    }\n\n    var viewFigureElement = data.viewItem;\n    var modelImageElement = first(data.modelRange.getItems()); // Check if `imageStyle` attribute is allowed for current element.\n\n    if (!conversionApi.schema.checkAttribute(modelImageElement, 'imageStyle')) {\n      return;\n    } // Convert style one by one.\n\n\n    var _iterator = _createForOfIteratorHelper(filteredStyles),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var style = _step.value;\n\n        // Try to consume class corresponding with style.\n        if (conversionApi.consumable.consume(viewFigureElement, {\n          classes: style.className\n        })) {\n          // And convert this style to model attribute.\n          conversionApi.writer.setAttribute('imageStyle', style.name, modelImageElement);\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  };\n} // Returns the style with a given `name` from an array of styles.\n//\n// @param {String} name\n// @param {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat> } styles\n// @returns {module:image/imagestyle/imagestyleediting~ImageStyleFormat|undefined}\n\nfunction getStyleByName(name, styles) {\n  var _iterator2 = _createForOfIteratorHelper(styles),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var style = _step2.value;\n\n      if (style.name === name) {\n        return style;\n      }\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/imagestylecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { isImage } from \"../image/utils\";\n/**\n * The image style command. It is used to apply different image styles.\n *\n * @extends module:core/command~Command\n */\n\nvar ImageStyleCommand = /*#__PURE__*/function (_Command) {\n  _inherits(ImageStyleCommand, _Command);\n\n  var _super = _createSuper(ImageStyleCommand);\n\n  /**\n   * Creates an instance of the image style command. Each command instance is handling one style.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor instance.\n   * @param {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat>} styles The styles that this command supports.\n   */\n  function ImageStyleCommand(editor, styles) {\n    var _this;\n\n    _classCallCheck(this, ImageStyleCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The name of the default style, if it is present. If there is no default style, it defaults to `false`.\n     *\n     * @readonly\n     * @type {Boolean|String}\n     */\n\n    _this.defaultStyle = false;\n    /**\n     * A style handled by this command.\n     *\n     * @readonly\n     * @member {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat>} #styles\n     */\n\n    _this.styles = styles.reduce(function (styles, style) {\n      styles[style.name] = style;\n\n      if (style.isDefault) {\n        _this.defaultStyle = style.name;\n      }\n\n      return styles;\n    }, {});\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ImageStyleCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var element = this.editor.model.document.selection.getSelectedElement();\n      this.isEnabled = isImage(element);\n\n      if (!element) {\n        this.value = false;\n      } else if (element.hasAttribute('imageStyle')) {\n        var attributeValue = element.getAttribute('imageStyle');\n        this.value = this.styles[attributeValue] ? attributeValue : false;\n      } else {\n        this.value = this.defaultStyle;\n      }\n    }\n    /**\n     * Executes the command.\n     *\n     *\t\teditor.execute( 'imageStyle', { value: 'side' } );\n     *\n     * @param {Object} options\n     * @param {String} options.value The name of the style (based on the\n     * {@link module:image/image~ImageConfig#styles `image.styles`} configuration option).\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(options) {\n      var _this2 = this;\n\n      var styleName = options.value;\n      var model = this.editor.model;\n      var imageElement = model.document.selection.getSelectedElement();\n      model.change(function (writer) {\n        // Default style means that there is no `imageStyle` attribute in the model.\n        // https://github.com/ckeditor/ckeditor5-image/issues/147\n        if (_this2.styles[styleName].isDefault) {\n          writer.removeAttribute('imageStyle', imageElement);\n        } else {\n          writer.setAttribute('imageStyle', styleName, imageElement);\n        }\n      });\n    }\n  }]);\n\n  return ImageStyleCommand;\n}(Command);\n\nexport { ImageStyleCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/imagestyleediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageStyleCommand from \"./imagestylecommand\";\nimport { viewToModelStyleAttribute, modelToViewStyleAttribute } from \"./converters\";\nimport { normalizeImageStyles } from \"./utils\";\n/**\n * The image style engine plugin. It sets the default configuration, creates converters and registers\n * {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand ImageStyleCommand}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageStyleEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(ImageStyleEditing, _Plugin);\n\n  var _super = _createSuper(ImageStyleEditing);\n\n  function ImageStyleEditing() {\n    _classCallCheck(this, ImageStyleEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageStyleEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor;\n      var schema = editor.model.schema;\n      var data = editor.data;\n      var editing = editor.editing; // Define default configuration.\n\n      editor.config.define('image.styles', ['full', 'side']); // Get configuration.\n\n      var styles = normalizeImageStyles(editor.config.get('image.styles')); // Allow imageStyle attribute in image.\n      // We could call it 'style' but https://github.com/ckeditor/ckeditor5-engine/issues/559.\n\n      schema.extend('image', {\n        allowAttributes: 'imageStyle'\n      }); // Converters for imageStyle attribute from model to view.\n\n      var modelToViewConverter = modelToViewStyleAttribute(styles);\n      editing.downcastDispatcher.on('attribute:imageStyle:image', modelToViewConverter);\n      data.downcastDispatcher.on('attribute:imageStyle:image', modelToViewConverter); // Converter for figure element from view to model.\n\n      data.upcastDispatcher.on('element:figure', viewToModelStyleAttribute(styles), {\n        priority: 'low'\n      }); // Register imageStyle command.\n\n      editor.commands.add('imageStyle', new ImageStyleCommand(editor, styles));\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'ImageStyleEditing';\n    }\n  }]);\n\n  return ImageStyleEditing;\n}(Plugin);\n/**\n * The image style format descriptor.\n *\n *\t\timport fullSizeIcon from 'path/to/icon.svg';\n *\n *\t\tconst imageStyleFormat = {\n *\t\t\tname: 'fullSize',\n *\t\t\ticon: fullSizeIcon,\n *\t\t\ttitle: 'Full size image',\n *\t\t\tclassName: 'image-full-size'\n *\t\t}\n *\n * @typedef {Object} module:image/imagestyle/imagestyleediting~ImageStyleFormat\n *\n * @property {String} name The unique name of the style. It will be used to:\n *\n * * Store the chosen style in the model by setting the `imageStyle` attribute of the `<image>` element.\n * * As a value of the {@link module:image/imagestyle/imagestylecommand~ImageStyleCommand#execute `imageStyle` command},\n * * when registering a button for each of the styles (`'imageStyle:{name}'`) in the\n * {@link module:ui/componentfactory~ComponentFactory UI components factory} (this functionality is provided by the\n * {@link module:image/imagestyle/imagestyleui~ImageStyleUI} plugin).\n *\n * @property {Boolean} [isDefault] When set, the style will be used as the default one.\n * A default style does not apply any CSS class to the view element.\n *\n * @property {String} icon One of the following to be used when creating the style's button:\n *\n * * An SVG icon source (as an XML string).\n * * One of {@link module:image/imagestyle/utils~defaultIcons} to use a default icon provided by the plugin.\n *\n * @property {String} title The style's title.\n *\n * @property {String} className The CSS class used to represent the style in the view.\n */\n\n\nexport { ImageStyleEditing as default };","import 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/es6.function.name';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagestyle/imagestyleui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport { normalizeImageStyles } from './utils';\nimport '../../theme/imagestyle.css';\n/**\n * The image style UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageStyleUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ImageStyleUI, _Plugin);\n    var _super = _createSuper(ImageStyleUI);\n    function ImageStyleUI() {\n        _classCallCheck(this, ImageStyleUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ImageStyleUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var editor = this.editor;\n                var configuredStyles = editor.config.get('image.styles');\n                var translatedStyles = translateStyles(normalizeImageStyles(configuredStyles), this.localizedDefaultStylesTitles);\n                var _iterator = _createForOfIteratorHelper(translatedStyles), _step;\n                try {\n                    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                        var style = _step.value;\n                        this._createButton(style);\n                    }\n                } catch (err) {\n                    _iterator.e(err);\n                } finally {\n                    _iterator.f();\n                }\n            }    /**\n     * Creates a button for each style and stores it in the editor {@link module:ui/componentfactory~ComponentFactory ComponentFactory}.\n     *\n     * @private\n     * @param {module:image/imagestyle/imagestyleediting~ImageStyleFormat} style\n     */\n        },\n        {\n            key: '_createButton',\n            value: function _createButton(style) {\n                var _this = this;\n                var editor = this.editor;\n                var componentName = 'imageStyle:'.concat(style.name);\n                editor.ui.componentFactory.add(componentName, function (locale) {\n                    var command = editor.commands.get('imageStyle');\n                    var view = new ButtonView(locale);\n                    view.set({\n                        label: style.title,\n                        icon: style.icon,\n                        tooltip: true,\n                        isToggleable: true\n                    });\n                    view.bind('isEnabled').to(command, 'isEnabled');\n                    view.bind('isOn').to(command, 'value', function (value) {\n                        return value === style.name;\n                    });\n                    _this.listenTo(view, 'execute', function () {\n                        return editor.execute('imageStyle', { value: style.name });\n                    });\n                    return view;\n                });\n            }\n        },\n        {\n            key: 'localizedDefaultStylesTitles',\n            /**\n     * Returns the default localized style titles provided by the plugin.\n     *\n     * The following localized titles corresponding with\n     * {@link module:image/imagestyle/utils~defaultStyles} are available:\n     *\n     * * `'Full size image'`,\n     * * `'Side image'`,\n     * * `'Left aligned image'`,\n     * * `'Centered image'`,\n     * * `'Right aligned image'`\n     *\n     * @returns {Object.<String,String>}\n     */\n            get: function get() {\n                var t = this.editor.t;\n                return {\n                    'Full size image': t('Full size image'),\n                    'Side image': t('Side image'),\n                    'Left aligned image': t('Left aligned image'),\n                    'Centered image': t('Centered image'),\n                    'Right aligned image': t('Right aligned image')\n                };\n            }\n        }\n    ], [{\n            key: 'pluginName',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return 'ImageStyleUI';\n            }\n        }]);\n    return ImageStyleUI;\n}(Plugin);\n/**\n * Returns the translated `title` from the passed styles array.\n *\n * @param {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat>} styles\n * @param titles\n * @returns {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat>}\n */\nexport {\n    ImageStyleUI as default\n};\nfunction translateStyles(styles, titles) {\n    var _iterator2 = _createForOfIteratorHelper(styles), _step2;\n    try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var style = _step2.value;\n            // Localize the titles of the styles, if a title corresponds with\n            // a localized default provided by the plugin.\n            if (titles[style.title]) {\n                style.title = titles[style.title];\n            }\n        }\n    } catch (err) {\n        _iterator2.e(err);\n    } finally {\n        _iterator2.f();\n    }\n    return styles;\n}","import \"core-js/modules/es6.function.name\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagestyle/utils\n */\n\n/* globals console */\nimport fullWidthIcon from '@ckeditor/ckeditor5-core/theme/icons/object-full-width.svg';\nimport leftIcon from '@ckeditor/ckeditor5-core/theme/icons/object-left.svg';\nimport centerIcon from '@ckeditor/ckeditor5-core/theme/icons/object-center.svg';\nimport rightIcon from '@ckeditor/ckeditor5-core/theme/icons/object-right.svg';\nimport { attachLinkToDocumentation } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * Default image styles provided by the plugin that can be referred in the\n * {@link module:image/image~ImageConfig#styles} configuration.\n *\n * Among them, 2 default semantic content styles are available:\n *\n * * `full` is a full–width image without any CSS class,\n * * `side` is a side image styled with the `image-style-side` CSS class.\n *\n * There are also 3 styles focused on formatting:\n *\n * * `alignLeft` aligns the image to the left using the `image-style-align-left` class,\n * * `alignCenter` centers the image using the `image-style-align-center` class,\n * * `alignRight` aligns the image to the right using the `image-style-align-right` class,\n *\n * @member {Object.<String,Object>}\n */\n\nvar defaultStyles = {\n  // This option is equal to the situation when no style is applied.\n  full: {\n    name: 'full',\n    title: 'Full size image',\n    icon: fullWidthIcon,\n    isDefault: true\n  },\n  // This represents a side image.\n  side: {\n    name: 'side',\n    title: 'Side image',\n    icon: rightIcon,\n    className: 'image-style-side'\n  },\n  // This style represents an image aligned to the left.\n  alignLeft: {\n    name: 'alignLeft',\n    title: 'Left aligned image',\n    icon: leftIcon,\n    className: 'image-style-align-left'\n  },\n  // This style represents a centered image.\n  alignCenter: {\n    name: 'alignCenter',\n    title: 'Centered image',\n    icon: centerIcon,\n    className: 'image-style-align-center'\n  },\n  // This style represents an image aligned to the right.\n  alignRight: {\n    name: 'alignRight',\n    title: 'Right aligned image',\n    icon: rightIcon,\n    className: 'image-style-align-right'\n  }\n};\n/**\n * Default image style icons provided by the plugin that can be referred in the\n * {@link module:image/image~ImageConfig#styles} configuration.\n *\n * There are 4 icons available: `'full'`, `'left'`, `'center'` and `'right'`.\n *\n * @member {Object.<String, String>}\n */\n\nvar defaultIcons = {\n  full: fullWidthIcon,\n  left: leftIcon,\n  right: rightIcon,\n  center: centerIcon\n};\n/**\n * Returns a {@link module:image/image~ImageConfig#styles} array with items normalized in the\n * {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat} format and a complete `icon` markup for each style.\n *\n * @returns {Array.<module:image/imagestyle/imagestyleediting~ImageStyleFormat>}\n */\n\nexport function normalizeImageStyles() {\n  var configuredStyles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n  return configuredStyles.map(_normalizeStyle);\n} // Normalizes an image style provided in the {@link module:image/image~ImageConfig#styles}\n// and returns it in a {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat}.\n//\n// @param {Object} style\n// @returns {@link module:image/imagestyle/imagestyleediting~ImageStyleFormat}\n\nfunction _normalizeStyle(style) {\n  // Just the name of the style has been passed.\n  if (typeof style == 'string') {\n    var styleName = style; // If it's one of the defaults, just use it.\n\n    if (defaultStyles[styleName]) {\n      // Clone the style to avoid overriding defaults.\n      style = Object.assign({}, defaultStyles[styleName]);\n    } // If it's just a name but none of the defaults, warn because probably it's a mistake.\n    else {\n        console.warn(attachLinkToDocumentation('image-style-not-found: There is no such image style of given name.'), {\n          name: styleName\n        }); // Normalize the style anyway to prevent errors.\n\n        style = {\n          name: styleName\n        };\n      }\n  } // If an object style has been passed and if the name matches one of the defaults,\n  // extend it with defaults – the user wants to customize a default style.\n  // Note: Don't override the user–defined style object, clone it instead.\n  else if (defaultStyles[style.name]) {\n      var defaultStyle = defaultStyles[style.name];\n      var extendedStyle = Object.assign({}, style);\n\n      for (var prop in defaultStyle) {\n        if (!style.hasOwnProperty(prop)) {\n          extendedStyle[prop] = defaultStyle[prop];\n        }\n      }\n\n      style = extendedStyle;\n    } // If an icon is defined as a string and correspond with a name\n  // in default icons, use the default icon provided by the plugin.\n\n\n  if (typeof style.icon == 'string' && defaultIcons[style.icon]) {\n    style.icon = defaultIcons[style.icon];\n  }\n\n  return style;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageTextAlternativeEditing from \"./imagetextalternative/imagetextalternativeediting\";\nimport ImageTextAlternativeUI from \"./imagetextalternative/imagetextalternativeui\";\n/**\n * The image text alternative plugin.\n *\n * For a detailed overview, check the {@glink features/image#image-styles image styles} documentation.\n *\n * This is a \"glue\" plugin which loads the\n *  {@link module:image/imagetextalternative/imagetextalternativeediting~ImageTextAlternativeEditing}\n * and {@link module:image/imagetextalternative/imagetextalternativeui~ImageTextAlternativeUI} plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageTextAlternative = /*#__PURE__*/function (_Plugin) {\n  _inherits(ImageTextAlternative, _Plugin);\n\n  var _super = _createSuper(ImageTextAlternative);\n\n  function ImageTextAlternative() {\n    _classCallCheck(this, ImageTextAlternative);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageTextAlternative, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [ImageTextAlternativeEditing, ImageTextAlternativeUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'ImageTextAlternative';\n    }\n  }]);\n\n  return ImageTextAlternative;\n}(Plugin);\n\nexport { ImageTextAlternative as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/imagetextalternativecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { isImage } from \"../image/utils\";\n/**\n * The image text alternative command. It is used to change the `alt` attribute of `<image>` elements.\n *\n * @extends module:core/command~Command\n */\n\nvar ImageTextAlternativeCommand = /*#__PURE__*/function (_Command) {\n  _inherits(ImageTextAlternativeCommand, _Command);\n\n  var _super = _createSuper(ImageTextAlternativeCommand);\n\n  function ImageTextAlternativeCommand() {\n    _classCallCheck(this, ImageTextAlternativeCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageTextAlternativeCommand, [{\n    key: \"refresh\",\n\n    /**\n     * The command value: `false` if there is no `alt` attribute, otherwise the value of the `alt` attribute.\n     *\n     * @readonly\n     * @observable\n     * @member {String|Boolean} #value\n     */\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var element = this.editor.model.document.selection.getSelectedElement();\n      this.isEnabled = isImage(element);\n\n      if (isImage(element) && element.hasAttribute('alt')) {\n        this.value = element.getAttribute('alt');\n      } else {\n        this.value = false;\n      }\n    }\n    /**\n     * Executes the command.\n     *\n     * @fires execute\n     * @param {Object} options\n     * @param {String} options.newValue The new value of the `alt` attribute to set.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(options) {\n      var model = this.editor.model;\n      var imageElement = model.document.selection.getSelectedElement();\n      model.change(function (writer) {\n        writer.setAttribute('alt', options.newValue, imageElement);\n      });\n    }\n  }]);\n\n  return ImageTextAlternativeCommand;\n}(Command);\n\nexport { ImageTextAlternativeCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imagetextalternative/imagetextalternativeediting\n */\nimport ImageTextAlternativeCommand from \"./imagetextalternativecommand\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * The image text alternative editing plugin.\n *\n * Registers the `'imageTextAlternative'` command.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageTextAlternativeEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(ImageTextAlternativeEditing, _Plugin);\n\n  var _super = _createSuper(ImageTextAlternativeEditing);\n\n  function ImageTextAlternativeEditing() {\n    _classCallCheck(this, ImageTextAlternativeEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageTextAlternativeEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      this.editor.commands.add('imageTextAlternative', new ImageTextAlternativeCommand(this.editor));\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'ImageTextAlternativeEditing';\n    }\n  }]);\n\n  return ImageTextAlternativeEditing;\n}(Plugin);\n\nexport { ImageTextAlternativeEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/imagetextalternativeui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport clickOutsideHandler from '@ckeditor/ckeditor5-ui/src/bindings/clickoutsidehandler';\nimport TextAlternativeFormView from './ui/textalternativeformview';\nimport ContextualBalloon from '@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon';\nimport textAlternativeIcon from '@ckeditor/ckeditor5-core/theme/icons/low-vision.svg';\nimport {\n    repositionContextualBalloon,\n    getBalloonPositionData\n} from '../image/ui/utils';\nimport { getSelectedImageWidget } from '../image/utils';\n/**\n * The image text alternative UI plugin.\n *\n * The plugin uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageTextAlternativeUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ImageTextAlternativeUI, _Plugin);\n    var _super = _createSuper(ImageTextAlternativeUI);\n    function ImageTextAlternativeUI() {\n        _classCallCheck(this, ImageTextAlternativeUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ImageTextAlternativeUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                this._createButton();\n                this._createForm();\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n                _get(_getPrototypeOf(ImageTextAlternativeUI.prototype), 'destroy', this).call(this);\n                // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n                this._form.destroy();\n            }    /**\n     * Creates a button showing the balloon panel for changing the image text alternative and\n     * registers it in the editor {@link module:ui/componentfactory~ComponentFactory ComponentFactory}.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_createButton',\n            value: function _createButton() {\n                var _this = this;\n                var editor = this.editor;\n                var t = editor.t;\n                editor.ui.componentFactory.add('imageTextAlternative', function (locale) {\n                    var command = editor.commands.get('imageTextAlternative');\n                    var view = new ButtonView(locale);\n                    view.set({\n                        label: t('Change image text alternative'),\n                        icon: textAlternativeIcon,\n                        tooltip: true\n                    });\n                    view.bind('isEnabled').to(command, 'isEnabled');\n                    _this.listenTo(view, 'execute', function () {\n                        return _this._showForm();\n                    });\n                    return view;\n                });\n            }    /**\n     * Creates the {@link module:image/imagetextalternative/ui/textalternativeformview~TextAlternativeFormView}\n     * form.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_createForm',\n            value: function _createForm() {\n                var _this2 = this;\n                var editor = this.editor;\n                var view = editor.editing.view;\n                var viewDocument = view.document;\n                /**\n       * The contextual balloon plugin instance.\n       *\n       * @private\n       * @member {module:ui/panel/balloon/contextualballoon~ContextualBalloon}\n       */\n                this._balloon = this.editor.plugins.get('ContextualBalloon');\n                /**\n       * A form containing a textarea and buttons, used to change the `alt` text value.\n       *\n       * @member {module:image/imagetextalternative/ui/textalternativeformview~TextAlternativeFormView}\n       */\n                this._form = new TextAlternativeFormView(editor.locale);\n                // Render the form so its #element is available for clickOutsideHandler.\n                this._form.render();\n                this.listenTo(this._form, 'submit', function () {\n                    editor.execute('imageTextAlternative', { newValue: _this2._form.labeledInput.inputView.element.value });\n                    _this2._hideForm(true);\n                });\n                this.listenTo(this._form, 'cancel', function () {\n                    _this2._hideForm(true);\n                });\n                // Close the form on Esc key press.\n                this._form.keystrokes.set('Esc', function (data, cancel) {\n                    _this2._hideForm(true);\n                    cancel();\n                });\n                // Reposition the balloon or hide the form if an image widget is no longer selected.\n                this.listenTo(editor.ui, 'update', function () {\n                    if (!getSelectedImageWidget(viewDocument.selection)) {\n                        _this2._hideForm(true);\n                    } else if (_this2._isVisible) {\n                        repositionContextualBalloon(editor);\n                    }\n                });\n                // Close on click outside of balloon panel element.\n                clickOutsideHandler({\n                    emitter: this._form,\n                    activator: function activator() {\n                        return _this2._isVisible;\n                    },\n                    contextElements: [this._balloon.view.element],\n                    callback: function callback() {\n                        return _this2._hideForm();\n                    }\n                });\n            }    /**\n     * Shows the {@link #_form} in the {@link #_balloon}.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_showForm',\n            value: function _showForm() {\n                if (this._isVisible) {\n                    return;\n                }\n                var editor = this.editor;\n                var command = editor.commands.get('imageTextAlternative');\n                var labeledInput = this._form.labeledInput;\n                if (!this._isInBalloon) {\n                    this._balloon.add({\n                        view: this._form,\n                        position: getBalloonPositionData(editor)\n                    });\n                }\n                // Make sure that each time the panel shows up, the field remains in sync with the value of\n                // the command. If the user typed in the input, then canceled the balloon (`labeledInput#value`\n                // stays unaltered) and re-opened it without changing the value of the command, they would see the\n                // old value instead of the actual value of the command.\n                // https://github.com/ckeditor/ckeditor5-image/issues/114\n                labeledInput.value = labeledInput.inputView.element.value = command.value || '';\n                this._form.labeledInput.select();\n            }    /**\n     * Removes the {@link #_form} from the {@link #_balloon}.\n     *\n     * @param {Boolean} [focusEditable=false] Controls whether the editing view is focused afterwards.\n     * @private\n     */\n        },\n        {\n            key: '_hideForm',\n            value: function _hideForm(focusEditable) {\n                if (!this._isInBalloon) {\n                    return;\n                }\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                if (this._form.focusTracker.isFocused) {\n                    this._form.saveButtonView.focus();\n                }\n                this._balloon.remove(this._form);\n                if (focusEditable) {\n                    this.editor.editing.view.focus();\n                }\n            }    /**\n     * Returns `true` when the {@link #_form} is the visible view in the {@link #_balloon}.\n     *\n     * @private\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_isVisible',\n            get: function get() {\n                return this._balloon.visibleView === this._form;\n            }    /**\n     * Returns `true` when the {@link #_form} is in the {@link #_balloon}.\n     *\n     * @private\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_isInBalloon',\n            get: function get() {\n                return this._balloon.hasView(this._form);\n            }\n        }\n    ], [\n        {\n            key: 'requires',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return [ContextualBalloon];\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'pluginName',\n            get: function get() {\n                return 'ImageTextAlternativeUI';\n            }\n        }\n    ]);\n    return ImageTextAlternativeUI;\n}(Plugin);\nexport {\n    ImageTextAlternativeUI as default\n};","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/web.dom.iterable';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetextalternative/ui/textalternativeformview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport LabeledInputView from '@ckeditor/ckeditor5-ui/src/labeledinput/labeledinputview';\nimport InputTextView from '@ckeditor/ckeditor5-ui/src/inputtext/inputtextview';\nimport submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg';\nimport cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';\nimport '../../../theme/textalternativeform.css';\n/**\n * The TextAlternativeFormView class.\n *\n * @extends module:ui/view~View\n */\nvar TextAlternativeFormView = /*#__PURE__*/\nfunction (_View) {\n    _inherits(TextAlternativeFormView, _View);\n    var _super = _createSuper(TextAlternativeFormView);\n    /**\n   * @inheritDoc\n   */\n    function TextAlternativeFormView(locale) {\n        var _this;\n        _classCallCheck(this, TextAlternativeFormView);\n        _this = _super.call(this, locale);\n        var t = _this.locale.t;\n        /**\n     * Tracks information about the DOM focus in the form.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n        _this.focusTracker = new FocusTracker();\n        /**\n     * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n        _this.keystrokes = new KeystrokeHandler();\n        /**\n     * A textarea with a label.\n     *\n     * @member {module:ui/labeledinput/labeledinputview~LabeledInputView} #labeledTextarea\n     */\n        _this.labeledInput = _this._createLabeledInputView();\n        /**\n     * A button used to submit the form.\n     *\n     * @member {module:ui/button/buttonview~ButtonView} #saveButtonView\n     */\n        _this.saveButtonView = _this._createButton(t('Save'), checkIcon, 'ck-button-save');\n        _this.saveButtonView.type = 'submit';\n        /**\n     * A button used to cancel the form.\n     *\n     * @member {module:ui/button/buttonview~ButtonView} #cancelButtonView\n     */\n        _this.cancelButtonView = _this._createButton(t('Cancel'), cancelIcon, 'ck-button-cancel', 'cancel');\n        /**\n     * A collection of views which can be focused in the form.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this._focusables = new ViewCollection();\n        /**\n     * Helps cycling over {@link #_focusables} in the form.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\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-text-alternative-form'\n                ],\n                // https://github.com/ckeditor/ckeditor5-image/issues/40\n                tabindex: '-1'\n            },\n            children: [\n                _this.labeledInput,\n                _this.saveButtonView,\n                _this.cancelButtonView\n            ]\n        });\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(TextAlternativeFormView, [\n        {\n            key: 'render',\n            value: function render() {\n                var _this2 = this;\n                _get(_getPrototypeOf(TextAlternativeFormView.prototype), 'render', this).call(this);\n                this.keystrokes.listenTo(this.element);\n                submitHandler({ view: this });\n                [\n                    this.labeledInput,\n                    this.saveButtonView,\n                    this.cancelButtonView\n                ].forEach(function (v) {\n                    // Register the view as focusable.\n                    _this2._focusables.add(v);\n                    // Register the view in the focus tracker.\n                    _this2.focusTracker.add(v.element);\n                });\n            }    /**\n     * Creates the button view.\n     *\n     * @private\n     * @param {String} label The button label\n     * @param {String} icon The button's icon.\n     * @param {String} className The additional button CSS class name.\n     * @param {String} [eventName] The event name that the ButtonView#execute event will be delegated to.\n     * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n     */\n        },\n        {\n            key: '_createButton',\n            value: function _createButton(label, icon, className, eventName) {\n                var button = new ButtonView(this.locale);\n                button.set({\n                    label: label,\n                    icon: icon,\n                    tooltip: true\n                });\n                button.extendTemplate({ attributes: { class: className } });\n                if (eventName) {\n                    button.delegate('execute').to(this, eventName);\n                }\n                return button;\n            }    /**\n     * Creates an input with a label.\n     *\n     * @private\n     * @returns {module:ui/labeledinput/labeledinputview~LabeledInputView}\n     */\n        },\n        {\n            key: '_createLabeledInputView',\n            value: function _createLabeledInputView() {\n                var t = this.locale.t;\n                var labeledInput = new LabeledInputView(this.locale, InputTextView);\n                labeledInput.label = t('Text alternative');\n                labeledInput.inputView.placeholder = t('Text alternative');\n                return labeledInput;\n            }\n        }\n    ]);\n    return TextAlternativeFormView;\n}(View);\nexport {\n    TextAlternativeFormView as default\n};","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imagetoolbar\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { getSelectedImageWidget } from './image/utils';\nimport WidgetToolbarRepository from '@ckeditor/ckeditor5-widget/src/widgettoolbarrepository';\n/**\n * The image toolbar plugin. It creates and manages the image toolbar (the toolbar displayed when an image is selected).\n *\n * For a detailed overview, check the {@glink features/image#image-contextual-toolbar image contextual toolbar} documentation.\n *\n * Instances of toolbar components (e.g. buttons) are created using the editor's\n * {@link module:ui/componentfactory~ComponentFactory component factory}\n * based on the {@link module:image/image~ImageConfig#toolbar `image.toolbar` configuration option}.\n *\n * The toolbar uses the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageToolbar = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ImageToolbar, _Plugin);\n    var _super = _createSuper(ImageToolbar);\n    function ImageToolbar() {\n        _classCallCheck(this, ImageToolbar);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ImageToolbar, [{\n            key: 'afterInit',\n            /**\n     * @inheritDoc\n     */\n            value: function afterInit() {\n                var editor = this.editor;\n                var t = editor.t;\n                var widgetToolbarRepository = editor.plugins.get(WidgetToolbarRepository);\n                widgetToolbarRepository.register('image', {\n                    ariaLabel: t('Image toolbar'),\n                    items: editor.config.get('image.toolbar') || [],\n                    getRelatedElement: getSelectedImageWidget\n                });\n            }\n        }], [\n        {\n            key: 'requires',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return [WidgetToolbarRepository];\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'pluginName',\n            get: function get() {\n                return 'ImageToolbar';\n            }\n        }\n    ]);\n    return ImageToolbar;\n}(Plugin);\n/**\n * Items to be placed in the image toolbar.\n * This option is used by the {@link module:image/imagetoolbar~ImageToolbar} feature.\n *\n * Assuming that you use the following features:\n *\n * * {@link module:image/imagestyle~ImageStyle} (with a default configuration),\n * * {@link module:image/imagetextalternative~ImageTextAlternative},\n *\n * three toolbar items will be available in {@link module:ui/componentfactory~ComponentFactory}:\n * `'imageStyle:full'`, `'imageStyle:side'`, and `'imageTextAlternative'` so you can configure the toolbar like this:\n *\n *\t\tconst imageConfig = {\n *\t\t\ttoolbar: [ 'imageStyle:full', 'imageStyle:side', '|', 'imageTextAlternative' ]\n *\t\t};\n *\n * Of course, the same buttons can also be used in the\n * {@link module:core/editor/editorconfig~EditorConfig#toolbar main editor toolbar}.\n *\n * Read more about configuring toolbar in {@link module:core/editor/editorconfig~EditorConfig#toolbar}.\n *\n * @member {Array.<String>} module:image/image~ImageConfig#toolbar\n */\nexport {\n    ImageToolbar as default\n};","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ImageUploadUI from \"./imageupload/imageuploadui\";\nimport ImageUploadProgress from \"./imageupload/imageuploadprogress\";\nimport ImageUploadEditing from \"./imageupload/imageuploadediting\";\n/**\n * The image upload plugin.\n *\n * For a detailed overview, check the {@glink features/image-upload/image-upload image upload feature} documentation.\n *\n * This plugin does not do anything directly, but it loads a set of specific plugins to enable image uploading:\n *\n * * {@link module:image/imageupload/imageuploadediting~ImageUploadEditing},\n * * {@link module:image/imageupload/imageuploadui~ImageUploadUI},\n * * {@link module:image/imageupload/imageuploadprogress~ImageUploadProgress}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageUpload = /*#__PURE__*/function (_Plugin) {\n  _inherits(ImageUpload, _Plugin);\n\n  var _super = _createSuper(ImageUpload);\n\n  function ImageUpload() {\n    _classCallCheck(this, ImageUpload);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageUpload, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'ImageUpload';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"requires\",\n    get: function get() {\n      return [ImageUploadEditing, ImageUploadUI, ImageUploadProgress];\n    }\n  }]);\n\n  return ImageUpload;\n}(Plugin);\n/**\n * Image upload configuration.\n *\n * @member {module:image/imageupload~ImageUploadConfig} module:image/image~ImageConfig#upload\n */\n\n/**\n * The configuration of the image upload feature. Used by the image upload feature in the `@ckeditor/ckeditor5-image` package.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\timage: {\n * \t\t\t\t\tupload:  ... // Image upload feature options.\n * \t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface module:image/imageupload~ImageUploadConfig\n */\n\n/**\n * The list of accepted image types.\n *\n * The accepted types of images can be customized to allow only certain types of images:\n *\n *\t\t// Allow only JPEG and PNG images:\n *\t\tconst imageUploadConfig = {\n *\t\t\ttypes: [ 'png', 'jpeg' ]\n *\t\t};\n *\n * The type string should match [one of the sub-types](https://www.iana.org/assignments/media-types/media-types.xhtml#image)\n * of the image MIME type. E.g. for the `image/jpeg` MIME type, add `'jpeg'` to your image upload configuration.\n *\n * **Note:** This setting only restricts some image types to be selected and uploaded through the CKEditor UI and commands. Image type\n * recognition and filtering should also be implemented on the server which accepts image uploads.\n *\n * @member {Array.<String>} module:image/imageupload~ImageUploadConfig#types\n * @default [ 'jpeg', 'png', 'gif', 'bmp', 'webp', 'tiff' ]\n */\n\n\nexport { ImageUpload as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\nimport FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { insertImage, isImageAllowed } from \"../image/utils\";\n/**\n * @module image/imageupload/imageuploadcommand\n */\n\n/**\n * The image upload command.\n *\n * The command is registered by the {@link module:image/imageupload/imageuploadediting~ImageUploadEditing} plugin as `'imageUpload'`.\n *\n * In order to upload an image at the current selection position\n * (according to the {@link module:widget/utils~findOptimalInsertionPosition} algorithm),\n * execute the command and pass the native image file instance:\n *\n *\t\tthis.listenTo( editor.editing.view.document, 'clipboardInput', ( evt, data ) => {\n *\t\t\t// Assuming that only images were pasted:\n *\t\t\tconst images = Array.from( data.dataTransfer.files );\n *\n *\t\t\t// Upload the first image:\n *\t\t\teditor.execute( 'imageUpload', { file: images[ 0 ] } );\n *\t\t} );\n *\n * It is also possible to insert multiple images at once:\n *\n *\t\teditor.execute( 'imageUpload', {\n *\t\t\tfile: [\n *\t\t\t\tfile1,\n *\t\t\t\tfile2\n *\t\t\t]\n *\t\t} );\n *\n * @extends module:core/command~Command\n */\n\nvar ImageUploadCommand = /*#__PURE__*/function (_Command) {\n  _inherits(ImageUploadCommand, _Command);\n\n  var _super = _createSuper(ImageUploadCommand);\n\n  function ImageUploadCommand() {\n    _classCallCheck(this, ImageUploadCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ImageUploadCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      this.isEnabled = isImageAllowed(this.editor.model);\n    }\n    /**\n     * Executes the command.\n     *\n     * @fires execute\n     * @param {Object} options Options for the executed command.\n     * @param {File|Array.<File>} options.file The image file or an array of image files to upload.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(options) {\n      var editor = this.editor;\n      var model = editor.model;\n      var fileRepository = editor.plugins.get(FileRepository);\n      model.change(function (writer) {\n        var filesToUpload = Array.isArray(options.file) ? options.file : [options.file];\n\n        var _iterator = _createForOfIteratorHelper(filesToUpload),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var file = _step.value;\n            uploadImage(writer, model, fileRepository, file);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n  }]);\n\n  return ImageUploadCommand;\n}(Command); // Handles uploading single file.\n//\n// @param {module:engine/model/writer~writer} writer\n// @param {module:engine/model/model~Model} model\n// @param {File} file\n\n\nexport { ImageUploadCommand as default };\n\nfunction uploadImage(writer, model, fileRepository, file) {\n  var loader = fileRepository.createLoader(file); // Do not throw when upload adapter is not set. FileRepository will log an error anyway.\n\n  if (!loader) {\n    return;\n  }\n\n  insertImage(writer, model, {\n    uploadId: loader.id\n  });\n}","import 'core-js/modules/es7.array.includes';\nimport 'core-js/modules/es6.string.includes';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.object.keys';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';\nimport Notification from '@ckeditor/ckeditor5-ui/src/notification/notification';\nimport Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';\nimport UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\nimport ImageUploadCommand from '../../src/imageupload/imageuploadcommand';\nimport {\n    fetchLocalImage,\n    isLocalImage\n} from '../../src/imageupload/utils';\nimport { createImageTypeRegExp } from './utils';\n/**\n * The editing part of the image upload feature. It registers the `'imageUpload'` command.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageUploadEditing = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ImageUploadEditing, _Plugin);\n    var _super = _createSuper(ImageUploadEditing);\n    _createClass(ImageUploadEditing, null, [\n        {\n            key: 'requires',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return [\n                    FileRepository,\n                    Notification,\n                    Clipboard\n                ];\n            }\n        },\n        {\n            key: 'pluginName',\n            get: function get() {\n                return 'ImageUploadEditing';\n            }    /**\n     * @inheritDoc\n     */\n        }\n    ]);\n    function ImageUploadEditing(editor) {\n        var _this;\n        _classCallCheck(this, ImageUploadEditing);\n        _this = _super.call(this, editor);\n        editor.config.define('image', {\n            upload: {\n                types: [\n                    'jpeg',\n                    'png',\n                    'gif',\n                    'bmp',\n                    'webp',\n                    'tiff'\n                ]\n            }\n        });\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(ImageUploadEditing, [\n        {\n            key: 'init',\n            value: function init() {\n                var _this2 = this;\n                var editor = this.editor;\n                var doc = editor.model.document;\n                var schema = editor.model.schema;\n                var conversion = editor.conversion;\n                var fileRepository = editor.plugins.get(FileRepository);\n                var imageTypes = createImageTypeRegExp(editor.config.get('image.upload.types'));\n                // Setup schema to allow uploadId and uploadStatus for images.\n                schema.extend('image', {\n                    allowAttributes: [\n                        'uploadId',\n                        'uploadStatus'\n                    ]\n                });\n                // Register imageUpload command.\n                editor.commands.add('imageUpload', new ImageUploadCommand(editor));\n                // Register upcast converter for uploadId.\n                conversion.for('upcast').attributeToAttribute({\n                    view: {\n                        name: 'img',\n                        key: 'uploadId'\n                    },\n                    model: 'uploadId'\n                });\n                // Handle pasted images.\n                // For every image file, a new file loader is created and a placeholder image is\n                // inserted into the content. Then, those images are uploaded once they appear in the model\n                // (see Document#change listener below).\n                this.listenTo(editor.editing.view.document, 'clipboardInput', function (evt, data) {\n                    // Skip if non empty HTML data is included.\n                    // https://github.com/ckeditor/ckeditor5-upload/issues/68\n                    if (isHtmlIncluded(data.dataTransfer)) {\n                        return;\n                    }\n                    var images = Array.from(data.dataTransfer.files).filter(function (file) {\n                        // See https://github.com/ckeditor/ckeditor5-image/pull/254.\n                        if (!file) {\n                            return false;\n                        }\n                        return imageTypes.test(file.type);\n                    });\n                    var ranges = data.targetRanges.map(function (viewRange) {\n                        return editor.editing.mapper.toModelRange(viewRange);\n                    });\n                    editor.model.change(function (writer) {\n                        // Set selection to paste target.\n                        writer.setSelection(ranges);\n                        if (images.length) {\n                            evt.stop();\n                            // Upload images after the selection has changed in order to ensure the command's state is refreshed.\n                            editor.model.enqueueChange('default', function () {\n                                editor.execute('imageUpload', { file: images });\n                            });\n                        }\n                    });\n                });\n                // Handle HTML pasted with images with base64 or blob sources.\n                // For every image file, a new file loader is created and a placeholder image is\n                // inserted into the content. Then, those images are uploaded once they appear in the model\n                // (see Document#change listener below).\n                this.listenTo(editor.plugins.get(Clipboard), 'inputTransformation', function (evt, data) {\n                    var fetchableImages = Array.from(editor.editing.view.createRangeIn(data.content)).filter(function (value) {\n                        return isLocalImage(value.item) && !value.item.getAttribute('uploadProcessed');\n                    }).map(function (value) {\n                        return {\n                            promise: fetchLocalImage(value.item),\n                            imageElement: value.item\n                        };\n                    });\n                    if (!fetchableImages.length) {\n                        return;\n                    }\n                    var writer = new UpcastWriter();\n                    var _iterator = _createForOfIteratorHelper(fetchableImages), _step;\n                    try {\n                        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                            var fetchableImage = _step.value;\n                            // Set attribute marking that the image was processed already.\n                            writer.setAttribute('uploadProcessed', true, fetchableImage.imageElement);\n                            var loader = fileRepository.createLoader(fetchableImage.promise);\n                            if (loader) {\n                                writer.setAttribute('src', '', fetchableImage.imageElement);\n                                writer.setAttribute('uploadId', loader.id, fetchableImage.imageElement);\n                            }\n                        }\n                    } catch (err) {\n                        _iterator.e(err);\n                    } finally {\n                        _iterator.f();\n                    }\n                });\n                // Prevents from the browser redirecting to the dropped image.\n                editor.editing.view.document.on('dragover', function (evt, data) {\n                    data.preventDefault();\n                });\n                // Upload placeholder images that appeared in the model.\n                doc.on('change', function () {\n                    var changes = doc.differ.getChanges({ includeChangesInGraveyard: true });\n                    var _iterator2 = _createForOfIteratorHelper(changes), _step2;\n                    try {\n                        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                            var entry = _step2.value;\n                            if (entry.type == 'insert' && entry.name != '$text') {\n                                var item = entry.position.nodeAfter;\n                                var isInGraveyard = entry.position.root.rootName == '$graveyard';\n                                var _iterator3 = _createForOfIteratorHelper(getImagesFromChangeItem(editor, item)), _step3;\n                                try {\n                                    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n                                        var image = _step3.value;\n                                        // Check if the image element still has upload id.\n                                        var uploadId = image.getAttribute('uploadId');\n                                        if (!uploadId) {\n                                            continue;\n                                        }\n                                        // Check if the image is loaded on this client.\n                                        var loader = fileRepository.loaders.get(uploadId);\n                                        if (!loader) {\n                                            continue;\n                                        }\n                                        if (isInGraveyard) {\n                                            // If the image was inserted to the graveyard - abort the loading process.\n                                            loader.abort();\n                                        } else if (loader.status == 'idle') {\n                                            // If the image was inserted into content and has not been loaded yet, start loading it.\n                                            _this2._readAndUpload(loader, image);\n                                        }\n                                    }\n                                } catch (err) {\n                                    _iterator3.e(err);\n                                } finally {\n                                    _iterator3.f();\n                                }\n                            }\n                        }\n                    } catch (err) {\n                        _iterator2.e(err);\n                    } finally {\n                        _iterator2.f();\n                    }\n                });\n            }    /**\n     * Reads and uploads an image.\n     *\n     * The image is read from the disk and as a Base64-encoded string it is set temporarily to\n     * `image[src]`. When the image is successfully uploaded, the temporary data is replaced with the target\n     * image's URL (the URL to the uploaded image on the server).\n     *\n     * @protected\n     * @param {module:upload/filerepository~FileLoader} loader\n     * @param {module:engine/model/element~Element} imageElement\n     * @returns {Promise}\n     */\n        },\n        {\n            key: '_readAndUpload',\n            value: function _readAndUpload(loader, imageElement) {\n                var _this3 = this;\n                var editor = this.editor;\n                var model = editor.model;\n                var t = editor.locale.t;\n                var fileRepository = editor.plugins.get(FileRepository);\n                var notification = editor.plugins.get(Notification);\n                model.enqueueChange('transparent', function (writer) {\n                    writer.setAttribute('uploadStatus', 'reading', imageElement);\n                });\n                return loader.read().then(function () {\n                    var promise = loader.upload();\n                    // Force re–paint in Safari. Without it, the image will display with a wrong size.\n                    // https://github.com/ckeditor/ckeditor5/issues/1975\n                    /* istanbul ignore next */\n                    if (env.isSafari) {\n                        var viewFigure = editor.editing.mapper.toViewElement(imageElement);\n                        var viewImg = viewFigure.getChild(0);\n                        editor.editing.view.once('render', function () {\n                            // Early returns just to be safe. There might be some code ran\n                            // in between the outer scope and this callback.\n                            if (!viewImg.parent) {\n                                return;\n                            }\n                            var domFigure = editor.editing.view.domConverter.mapViewToDom(viewImg.parent);\n                            if (!domFigure) {\n                                return;\n                            }\n                            var originalDisplay = domFigure.style.display;\n                            domFigure.style.display = 'none';\n                            // Make sure this line will never be removed during minification for having \"no effect\".\n                            domFigure._ckHack = domFigure.offsetHeight;\n                            domFigure.style.display = originalDisplay;\n                        });\n                    }\n                    model.enqueueChange('transparent', function (writer) {\n                        writer.setAttribute('uploadStatus', 'uploading', imageElement);\n                    });\n                    return promise;\n                }).then(function (data) {\n                    model.enqueueChange('transparent', function (writer) {\n                        writer.setAttributes({\n                            uploadStatus: 'complete',\n                            src: data.default\n                        }, imageElement);\n                        _this3._parseAndSetSrcsetAttributeOnImage(data, imageElement, writer);\n                    });\n                    clean();\n                }).catch(function (error) {\n                    // If status is not 'error' nor 'aborted' - throw error because it means that something else went wrong,\n                    // it might be generic error and it would be real pain to find what is going on.\n                    if (loader.status !== 'error' && loader.status !== 'aborted') {\n                        throw error;\n                    }\n                    // Might be 'aborted'.\n                    if (loader.status == 'error' && error) {\n                        notification.showWarning(error, {\n                            title: t('Upload failed'),\n                            namespace: 'upload'\n                        });\n                    }\n                    clean();\n                    // Permanently remove image from insertion batch.\n                    model.enqueueChange('transparent', function (writer) {\n                        writer.remove(imageElement);\n                    });\n                });\n                function clean() {\n                    model.enqueueChange('transparent', function (writer) {\n                        writer.removeAttribute('uploadId', imageElement);\n                        writer.removeAttribute('uploadStatus', imageElement);\n                    });\n                    fileRepository.destroyLoader(loader);\n                }\n            }    /**\n     * Creates the `srcset` attribute based on a given file upload response and sets it as an attribute to a specific image element.\n     *\n     * @protected\n     * @param {Object} data Data object from which `srcset` will be created.\n     * @param {module:engine/model/element~Element} image The image element on which the `srcset` attribute will be set.\n     * @param {module:engine/model/writer~Writer} writer\n     */\n        },\n        {\n            key: '_parseAndSetSrcsetAttributeOnImage',\n            value: function _parseAndSetSrcsetAttributeOnImage(data, image, writer) {\n                // Srcset attribute for responsive images support.\n                var maxWidth = 0;\n                var srcsetAttribute = Object.keys(data)    // Filter out keys that are not integers.\n.filter(function (key) {\n                    var width = parseInt(key, 10);\n                    if (!isNaN(width)) {\n                        maxWidth = Math.max(maxWidth, width);\n                        return true;\n                    }\n                })    // Convert each key to srcset entry.\n.map(function (key) {\n                    return ''.concat(data[key], ' ').concat(key, 'w');\n                })    // Join all entries.\n.join(', ');\n                if (srcsetAttribute != '') {\n                    writer.setAttribute('srcset', {\n                        data: srcsetAttribute,\n                        width: maxWidth\n                    }, image);\n                }\n            }\n        }\n    ]);\n    return ImageUploadEditing;\n}(Plugin);\n// Returns `true` if non-empty `text/html` is included in the data transfer.\n//\n// @param {module:clipboard/datatransfer~DataTransfer} dataTransfer\n// @returns {Boolean}\nexport {\n    ImageUploadEditing as default\n};\nexport function isHtmlIncluded(dataTransfer) {\n    return Array.from(dataTransfer.types).includes('text/html') && dataTransfer.getData('text/html') !== '';\n}\nfunction getImagesFromChangeItem(editor, item) {\n    return Array.from(editor.model.createRangeOn(item)).filter(function (value) {\n        return value.item.is('image');\n    }).map(function (value) {\n        return value.item;\n    });\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/imageuploadprogress\n */\n\n/* globals setTimeout */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FileRepository from '@ckeditor/ckeditor5-upload/src/filerepository';\nimport uploadingPlaceholder from \"../../theme/icons/image_placeholder.svg\";\nimport env from '@ckeditor/ckeditor5-utils/src/env';\nimport \"../../theme/imageuploadprogress.css\";\nimport \"../../theme/imageuploadicon.css\";\nimport \"../../theme/imageuploadloader.css\";\n/**\n * The image upload progress plugin.\n * It shows a placeholder when the image is read from the disk and a progress bar while the image is uploading.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ImageUploadProgress = /*#__PURE__*/function (_Plugin) {\n  _inherits(ImageUploadProgress, _Plugin);\n\n  var _super = _createSuper(ImageUploadProgress);\n\n  /**\n   * @inheritDoc\n   */\n  function ImageUploadProgress(editor) {\n    var _this;\n\n    _classCallCheck(this, ImageUploadProgress);\n\n    _this = _super.call(this, editor);\n    /**\n     * The image placeholder that is displayed before real image data can be accessed.\n     *\n     * @protected\n     * @member {String} #placeholder\n     */\n\n    _this.placeholder = 'data:image/svg+xml;utf8,' + encodeURIComponent(uploadingPlaceholder);\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ImageUploadProgress, [{\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n\n      var editor = this.editor; // Upload status change - update image's view according to that status.\n\n      editor.editing.downcastDispatcher.on('attribute:uploadStatus:image', function () {\n        return _this2.uploadStatusChange.apply(_this2, arguments);\n      });\n    }\n    /**\n     * This method is called each time the image `uploadStatus` attribute is changed.\n     *\n     * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n     * @param {Object} data Additional information about the change.\n     * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n     */\n\n  }, {\n    key: \"uploadStatusChange\",\n    value: function uploadStatusChange(evt, data, conversionApi) {\n      var editor = this.editor;\n      var modelImage = data.item;\n      var uploadId = modelImage.getAttribute('uploadId');\n\n      if (!conversionApi.consumable.consume(data.item, evt.name)) {\n        return;\n      }\n\n      var fileRepository = editor.plugins.get(FileRepository);\n      var status = uploadId ? data.attributeNewValue : null;\n      var placeholder = this.placeholder;\n      var viewFigure = editor.editing.mapper.toViewElement(modelImage);\n      var viewWriter = conversionApi.writer;\n\n      if (status == 'reading') {\n        // Start \"appearing\" effect and show placeholder with infinite progress bar on the top\n        // while image is read from disk.\n        _startAppearEffect(viewFigure, viewWriter);\n\n        _showPlaceholder(placeholder, viewFigure, viewWriter);\n\n        return;\n      } // Show progress bar on the top of the image when image is uploading.\n\n\n      if (status == 'uploading') {\n        var loader = fileRepository.loaders.get(uploadId); // Start appear effect if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n\n        _startAppearEffect(viewFigure, viewWriter);\n\n        if (!loader) {\n          // There is no loader associated with uploadId - this means that image came from external changes.\n          // In such cases we still want to show the placeholder until image is fully uploaded.\n          // Show placeholder if needed - see https://github.com/ckeditor/ckeditor5-image/issues/191.\n          _showPlaceholder(placeholder, viewFigure, viewWriter);\n        } else {\n          // Hide placeholder and initialize progress bar showing upload progress.\n          _hidePlaceholder(viewFigure, viewWriter);\n\n          _showProgressBar(viewFigure, viewWriter, loader, editor.editing.view);\n\n          _displayLocalImage(viewFigure, viewWriter, loader);\n        }\n\n        return;\n      } // Because in Edge there is no way to show fancy animation of completeIcon we need to skip it.\n\n\n      if (status == 'complete' && fileRepository.loaders.get(uploadId) && !env.isEdge) {\n        _showCompleteIcon(viewFigure, viewWriter, editor.editing.view);\n      } // Clean up.\n\n\n      _hideProgressBar(viewFigure, viewWriter);\n\n      _hidePlaceholder(viewFigure, viewWriter);\n\n      _stopAppearEffect(viewFigure, viewWriter);\n    }\n  }]);\n\n  return ImageUploadProgress;\n}(Plugin); // Adds ck-appear class to the image figure if one is not already applied.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nexport { ImageUploadProgress as default };\n\nfunction _startAppearEffect(viewFigure, writer) {\n  if (!viewFigure.hasClass('ck-appear')) {\n    writer.addClass('ck-appear', viewFigure);\n  }\n} // Removes ck-appear class to the image figure if one is not already removed.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _stopAppearEffect(viewFigure, writer) {\n  writer.removeClass('ck-appear', viewFigure);\n} // Shows placeholder together with infinite progress bar on given image figure.\n//\n// @param {String} Data-uri with a svg placeholder.\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _showPlaceholder(placeholder, viewFigure, writer) {\n  if (!viewFigure.hasClass('ck-image-upload-placeholder')) {\n    writer.addClass('ck-image-upload-placeholder', viewFigure);\n  }\n\n  var viewImg = viewFigure.getChild(0);\n\n  if (viewImg.getAttribute('src') !== placeholder) {\n    writer.setAttribute('src', placeholder, viewImg);\n  }\n\n  if (!_getUIElement(viewFigure, 'placeholder')) {\n    writer.insert(writer.createPositionAfter(viewImg), _createPlaceholder(writer));\n  }\n} // Removes placeholder together with infinite progress bar on given image figure.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _hidePlaceholder(viewFigure, writer) {\n  if (viewFigure.hasClass('ck-image-upload-placeholder')) {\n    writer.removeClass('ck-image-upload-placeholder', viewFigure);\n  }\n\n  _removeUIElement(viewFigure, writer, 'placeholder');\n} // Shows progress bar displaying upload progress.\n// Attaches it to the file loader to update when upload percentace is changed.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {module:upload/filerepository~FileLoader} loader\n// @param {module:engine/view/view~View} view\n\n\nfunction _showProgressBar(viewFigure, writer, loader, view) {\n  var progressBar = _createProgressBar(writer);\n\n  writer.insert(writer.createPositionAt(viewFigure, 'end'), progressBar); // Update progress bar width when uploadedPercent is changed.\n\n  loader.on('change:uploadedPercent', function (evt, name, value) {\n    view.change(function (writer) {\n      writer.setStyle('width', value + '%', progressBar);\n    });\n  });\n} // Hides upload progress bar.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n\n\nfunction _hideProgressBar(viewFigure, writer) {\n  _removeUIElement(viewFigure, writer, 'progressBar');\n} // Shows complete icon and hides after a certain amount of time.\n//\n// @param {module:engine/view/containerelement~ContainerElement} viewFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {module:engine/view/view~View} view\n\n\nfunction _showCompleteIcon(viewFigure, writer, view) {\n  var completeIcon = writer.createUIElement('div', {\n    class: 'ck-image-upload-complete-icon'\n  });\n  writer.insert(writer.createPositionAt(viewFigure, 'end'), completeIcon);\n  setTimeout(function () {\n    view.change(function (writer) {\n      return writer.remove(writer.createRangeOn(completeIcon));\n    });\n  }, 3000);\n} // Create progress bar element using {@link module:engine/view/uielement~UIElement}.\n//\n// @private\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @returns {module:engine/view/uielement~UIElement}\n\n\nfunction _createProgressBar(writer) {\n  var progressBar = writer.createUIElement('div', {\n    class: 'ck-progress-bar'\n  });\n  writer.setCustomProperty('progressBar', true, progressBar);\n  return progressBar;\n} // Create placeholder element using {@link module:engine/view/uielement~UIElement}.\n//\n// @private\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @returns {module:engine/view/uielement~UIElement}\n\n\nfunction _createPlaceholder(writer) {\n  var placeholder = writer.createUIElement('div', {\n    class: 'ck-upload-placeholder-loader'\n  });\n  writer.setCustomProperty('placeholder', true, placeholder);\n  return placeholder;\n} // Returns {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n// Returns `undefined` if element is not found.\n//\n// @private\n// @param {module:engine/view/element~Element} imageFigure\n// @param {String} uniqueProperty\n// @returns {module:engine/view/uielement~UIElement|undefined}\n\n\nfunction _getUIElement(imageFigure, uniqueProperty) {\n  var _iterator = _createForOfIteratorHelper(imageFigure.getChildren()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var child = _step.value;\n\n      if (child.getCustomProperty(uniqueProperty)) {\n        return child;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n} // Removes {@link module:engine/view/uielement~UIElement} of given unique property from image figure element.\n//\n// @private\n// @param {module:engine/view/element~Element} imageFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {String} uniqueProperty\n\n\nfunction _removeUIElement(viewFigure, writer, uniqueProperty) {\n  var element = _getUIElement(viewFigure, uniqueProperty);\n\n  if (element) {\n    writer.remove(writer.createRangeOn(element));\n  }\n} // Displays local data from file loader.\n//\n// @param {module:engine/view/element~Element} imageFigure\n// @param {module:engine/view/downcastwriter~DowncastWriter} writer\n// @param {module:upload/filerepository~FileLoader} loader\n\n\nfunction _displayLocalImage(viewFigure, writer, loader) {\n  if (loader.data) {\n    var viewImg = viewFigure.getChild(0);\n    writer.setAttribute('src', loader.data, viewImg);\n  }\n}","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module image/imageupload/imageuploadui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport FileDialogButtonView from '@ckeditor/ckeditor5-upload/src/ui/filedialogbuttonview';\nimport imageIcon from '@ckeditor/ckeditor5-core/theme/icons/image.svg';\nimport { createImageTypeRegExp } from './utils';\n/**\n * The image upload button plugin.\n *\n * For a detailed overview, check the {@glink features/image-upload/image-upload Image upload feature} documentation.\n *\n * Adds the `'imageUpload'` button to the {@link module:ui/componentfactory~ComponentFactory UI component factory}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ImageUploadUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ImageUploadUI, _Plugin);\n    var _super = _createSuper(ImageUploadUI);\n    function ImageUploadUI() {\n        _classCallCheck(this, ImageUploadUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ImageUploadUI, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var editor = this.editor;\n                var t = editor.t;\n                // Setup `imageUpload` button.\n                editor.ui.componentFactory.add('imageUpload', function (locale) {\n                    var view = new FileDialogButtonView(locale);\n                    var command = editor.commands.get('imageUpload');\n                    var imageTypes = editor.config.get('image.upload.types');\n                    var imageTypesRegExp = createImageTypeRegExp(imageTypes);\n                    view.set({\n                        acceptedType: imageTypes.map(function (type) {\n                            return 'image/'.concat(type);\n                        }).join(','),\n                        allowMultipleFiles: true\n                    });\n                    view.buttonView.set({\n                        label: t('Insert image'),\n                        icon: imageIcon,\n                        tooltip: true\n                    });\n                    view.buttonView.bind('isEnabled').to(command);\n                    view.on('done', function (evt, files) {\n                        var imagesToUpload = Array.from(files).filter(function (file) {\n                            return imageTypesRegExp.test(file.type);\n                        });\n                        if (imagesToUpload.length) {\n                            editor.execute('imageUpload', { file: imagesToUpload });\n                        }\n                    });\n                    return view;\n                });\n            }\n        }]);\n    return ImageUploadUI;\n}(Plugin);\nexport {\n    ImageUploadUI as default\n};","import \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.replace\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module image/imageupload/utils\n */\n\n/* global fetch, File */\n\n/**\n * Creates a regular expression used to test for image files.\n *\n *\t\tconst imageType = createImageTypeRegExp( [ 'png', 'jpeg', 'svg+xml', 'vnd.microsoft.icon' ] );\n *\n *\t\tconsole.log( 'is supported image', imageType.test( file.type ) );\n *\n * @param {Array.<String>} types\n * @returns {RegExp}\n */\nexport function createImageTypeRegExp(types) {\n  // Sanitize the MIME type name which may include: \"+\", \"-\" or \".\".\n  var regExpSafeNames = types.map(function (type) {\n    return type.replace('+', '\\\\+');\n  });\n  return new RegExp(\"^image\\\\/(\".concat(regExpSafeNames.join('|'), \")$\"));\n}\n/**\n * Creates a promise that fetches the image local source (Base64 or blob) and resolves with a `File` object.\n *\n * @param {module:engine/view/element~Element} image Image whose source to fetch.\n * @returns {Promise.<File>} A promise which resolves when an image source is fetched and converted to a `File` instance.\n * It resolves with a `File` object. If there were any errors during file processing, the promise will be rejected.\n */\n\nexport function fetchLocalImage(image) {\n  return new Promise(function (resolve, reject) {\n    var imageSrc = image.getAttribute('src'); // Fetch works asynchronously and so does not block browser UI when processing data.\n\n    fetch(imageSrc).then(function (resource) {\n      return resource.blob();\n    }).then(function (blob) {\n      var mimeType = getImageMimeType(blob, imageSrc);\n      var ext = mimeType.replace('image/', '');\n      var filename = \"image.\".concat(ext);\n      var file = createFileFromBlob(blob, filename, mimeType);\n      file ? resolve(file) : reject();\n    }).catch(reject);\n  });\n}\n/**\n * Checks whether a given node is an image element with a local source (Base64 or blob).\n *\n * @param {module:engine/view/node~Node} node The node to check.\n * @returns {Boolean}\n */\n\nexport function isLocalImage(node) {\n  if (!node.is('element', 'img') || !node.getAttribute('src')) {\n    return false;\n  }\n\n  return node.getAttribute('src').match(/^data:image\\/\\w+;base64,/g) || node.getAttribute('src').match(/^blob:/g);\n} // Extracts an image type based on its blob representation or its source.\n//\n// @param {String} src Image `src` attribute value.\n// @param {Blob} blob Image blob representation.\n// @returns {String}\n\nfunction getImageMimeType(blob, src) {\n  if (blob.type) {\n    return blob.type;\n  } else if (src.match(/data:(image\\/\\w+);base64/)) {\n    return src.match(/data:(image\\/\\w+);base64/)[1].toLowerCase();\n  } else {\n    // Fallback to 'jpeg' as common extension.\n    return 'image/jpeg';\n  }\n} // Creates a `File` instance from the given `Blob` instance using the specified file name.\n//\n// @param {Blob} blob The `Blob` instance from which the file will be created.\n// @param {String} filename The file name used during the file creation.\n// @param {String} mimeType The file MIME type.\n// @returns {File|null} The `File` instance created from the given blob or `null` if `File API` is not available.\n\n\nfunction createFileFromBlob(blob, filename, mimeType) {\n  try {\n    return new File([blob], filename, {\n      type: mimeType\n    });\n  } catch (err) {\n    // Edge does not support `File` constructor ATM, see https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9551546/.\n    // However, the `File` function is present (so cannot be checked with `!window.File` or `typeof File === 'function'`), but\n    // calling it with `new File( ... )` throws an error. This try-catch prevents that. Also when the function will\n    // be implemented correctly in Edge the code will start working without any changes (see #247).\n    return null;\n  }\n}","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 700 250\\\"><rect rx=\\\"4\\\"/></svg>\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./image.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"12033423\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./image.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./image.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imagecaption.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"696f1223\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imagecaption.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imagecaption.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imagestyle.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"30651483\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imagestyle.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imagestyle.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadicon.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4afb8e97\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadicon.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadicon.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadloader.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"10189a6a\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadloader.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadloader.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadprogress.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5236d202\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadprogress.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./imageuploadprogress.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./textalternativeform.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"914cab16\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./textalternativeform.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./textalternativeform.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module link/findlinkrange\n */\n\n/**\n * Returns a range containing the entire link in which the given `position` is placed.\n *\n * It can be used e.g. to get the entire range on which the `linkHref` attribute needs to be changed when having a\n * selection inside a link.\n *\n * @param {module:engine/model/position~Position} position The start position.\n * @param {String} value The `linkHref` attribute value.\n * @returns {module:engine/model/range~Range} The link range.\n */\nexport default function findLinkRange(position, value, model) {\n  return model.createRange(_findBound(position, value, true, model), _findBound(position, value, false, model));\n} // Walks forward or backward (depends on the `lookBack` flag), node by node, as long as they have the same `linkHref` attribute value\n// and returns a position just before or after (depends on the `lookBack` flag) the last matched node.\n//\n// @param {module:engine/model/position~Position} position The start position.\n// @param {String} value The `linkHref` attribute value.\n// @param {Boolean} lookBack Whether the walk direction is forward (`false`) or backward (`true`).\n// @returns {module:engine/model/position~Position} The position just before the last matched node.\n\nfunction _findBound(position, value, lookBack, model) {\n  // Get node before or after position (depends on `lookBack` flag).\n  // When position is inside text node then start searching from text node.\n  var node = position.textNode || (lookBack ? position.nodeBefore : position.nodeAfter);\n  var lastNode = null;\n\n  while (node && node.getAttribute('linkHref') == value) {\n    lastNode = node;\n    node = lookBack ? node.previousSibling : node.nextSibling;\n  }\n\n  return lastNode ? model.createPositionAt(lastNode, lookBack ? 'before' : 'after') : position;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module link/link\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport LinkEditing from \"./linkediting\";\nimport LinkUI from \"./linkui\";\n/**\n * The link plugin.\n *\n * This is a \"glue\" plugin that loads the {@link module:link/linkediting~LinkEditing link editing feature}\n * and {@link module:link/linkui~LinkUI link UI feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Link = /*#__PURE__*/function (_Plugin) {\n  _inherits(Link, _Plugin);\n\n  var _super = _createSuper(Link);\n\n  function Link() {\n    _classCallCheck(this, Link);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Link, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [LinkEditing, LinkUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Link';\n    }\n  }]);\n\n  return Link;\n}(Plugin);\n/**\n * The configuration of the {@link module:link/link~Link} feature.\n *\n * Read more in {@link module:link/link~LinkConfig}.\n *\n * @member {module:link/link~LinkConfig} module:core/editor/editorconfig~EditorConfig#link\n */\n\n/**\n * The configuration of the {@link module:link/link~Link link feature}.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\tlink:  ... // Link feature configuration.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n * @interface LinkConfig\n */\n\n/**\n * When set to `true`, the `target=\"blank\"` and `rel=\"noopener noreferrer\"` attributes are automatically added to all external links\n * in the editor. \"External links\" are all links in the editor content starting with `http`, `https`, or `//`.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\tlink: {\n *\t\t\t\t\taddTargetToExternalLinks: true\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * Internally, this option activates a predefined {@link module:link/link~LinkConfig#decorators automatic link decorator}\n * that extends all external links with the `target` and `rel` attributes.\n *\n * **Note**: To control the `target` and `rel` attributes of specific links in the edited content, a dedicated\n * {@link module:link/link~LinkDecoratorManualDefinition manual} decorator must be defined in the\n * {@link module:link/link~LinkConfig#decorators `config.link.decorators`} array. In such scenario,\n * the `config.link.addTargetToExternalLinks` option should remain `undefined` or `false` to not interfere with the manual decorator.\n *\n * It is possible to add other {@link module:link/link~LinkDecoratorAutomaticDefinition automatic}\n * or {@link module:link/link~LinkDecoratorManualDefinition manual} link decorators when this option is active.\n *\n * More information about decorators can be found in the {@link module:link/link~LinkConfig#decorators decorators configuration}\n * reference.\n *\n * @default false\n * @member {Boolean} module:link/link~LinkConfig#addTargetToExternalLinks\n */\n\n/**\n * Decorators provide an easy way to configure and manage additional link attributes in the editor content. There are\n * two types of link decorators:\n *\n * * {@link module:link/link~LinkDecoratorAutomaticDefinition Automatic} &ndash; They match links against pre–defined rules and\n * manage their attributes based on the results.\n * * {@link module:link/link~LinkDecoratorManualDefinition Manual} &ndash; They allow users to control link attributes individually,\n *  using the editor UI.\n *\n * Link decorators are defined as objects with key-value pairs, where the key is the name provided for a given decorator and the\n * value is the decorator definition.\n *\n * The name of the decorator also corresponds to the {@glink framework/guides/architecture/editing-engine#text-attributes text attribute}\n * in the model. For instance, the `isExternal` decorator below is represented as a `linkIsExternal` attribute in the model.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\tlink: {\n *\t\t\t\t\tdecorators: {\n *\t\t\t\t\t\tisExternal: {\n *\t\t\t\t\t\t\tmode: 'automatic',\n *\t\t\t\t\t\t\tcallback: url => url.startsWith( 'http://' ),\n *\t\t\t\t\t\t\tattributes: {\n *\t\t\t\t\t\t\t\ttarget: '_blank',\n *\t\t\t\t\t\t\t\trel: 'noopener noreferrer'\n *\t\t\t\t\t\t\t}\n *\t\t\t\t\t\t},\n *\t\t\t\t\t\tisDownloadable: {\n *\t\t\t\t\t\t\tmode: 'manual',\n *\t\t\t\t\t\t\tlabel: 'Downloadable',\n *\t\t\t\t\t\t\tattributes: {\n *\t\t\t\t\t\t\t\tdownload: 'file.png',\n *\t\t\t\t\t\t\t}\n *\t\t\t\t\t\t},\n *\t\t\t\t\t\t// ...\n *\t\t\t\t\t}\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * To learn more about the configuration syntax, check out the {@link module:link/link~LinkDecoratorAutomaticDefinition automatic}\n * and {@link module:link/link~LinkDecoratorManualDefinition manual} decorator option reference.\n *\n * **Warning:** Currently, link decorators work independently of one another and no conflict resolution mechanism exists.\n * For example, configuring the `target` attribute using both an automatic and a manual decorator at the same time could end up with\n * quirky results. The same applies if multiple manual or automatic decorators were defined for the same attribute.\n *\n * **Note**: Since the `target` attribute management for external links is a common use case, there is a predefined automatic decorator\n * dedicated for that purpose which can be enabled by turning a single option on. Check out the\n * {@link module:link/link~LinkConfig#addTargetToExternalLinks `config.link.addTargetToExternalLinks`}\n * configuration description to learn more.\n *\n * See also the {@glink features/link#custom-link-attributes-decorators link feature guide} for more information.\n *\n * @member {Object.<String, module:link/link~LinkDecoratorDefinition>} module:link/link~LinkConfig#decorators\n */\n\n/**\n * Represents a link decorator definition ({@link module:link/link~LinkDecoratorManualDefinition `'manual'`}\n * or {@link module:link/link~LinkDecoratorAutomaticDefinition `'automatic'`}).\n *\n * @interface LinkDecoratorDefinition\n */\n\n/**\n * Link decorator type.\n *\n * Check out the {@glink features/link#custom-link-attributes-decorators link feature guide} for more information.\n *\n * @member {'manual'|'automatic'} module:link/link~LinkDecoratorDefinition#mode\n */\n\n/**\n * Describes an automatic {@link module:link/link~LinkConfig#decorators link decorator}. This decorator type matches\n * all links in the editor content against a function that decides whether the link should receive a pre–defined set of attributes.\n *\n * It takes an object with key-value pairs of attributes and a callback function that must return a Boolean value based on the link's\n * `href` (URL). When the callback returns `true`, attributes are applied to the link.\n *\n * For example, to add the `target=\"_blank\"` attribute to all links in the editor starting with `http://`, the\n * configuration could look like this:\n *\n *\t\t{\n *\t\t\tmode: 'automatic',\n *\t\t\tcallback: url => url.startsWith( 'http://' ),\n *\t\t\tattributes: {\n *\t\t\t\ttarget: '_blank'\n *\t\t\t}\n *\t\t}\n *\n * **Note**: Since the `target` attribute management for external links is a common use case, there is a predefined automatic decorator\n * dedicated for that purpose that can be enabled by turning a single option on. Check out the\n * {@link module:link/link~LinkConfig#addTargetToExternalLinks `config.link.addTargetToExternalLinks`}\n * configuration description to learn more.\n *\n * @typedef {Object} module:link/link~LinkDecoratorAutomaticDefinition\n * @property {'automatic'} mode Link decorator type. It is `'automatic'` for all automatic decorators.\n * @property {Function} callback Takes a `url` as a parameter and returns `true` if the `attributes` should be applied to the link.\n * @property {Object} attributes Key-value pairs used as link attributes added to the output during the\n * {@glink framework/guides/architecture/editing-engine#conversion downcasting}.\n * Attributes should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.\n */\n\n/**\n * Describes a manual {@link module:link/link~LinkConfig#decorators link decorator}. This decorator type is represented in\n * the link feature's {@link module:link/linkui user interface} as a switch that the user can use to control the presence\n * of a predefined set of attributes.\n *\n * For instance, to allow the users to manually control the presence of the `target=\"_blank\"` and\n * `rel=\"noopener noreferrer\"` attributes on specific links, the decorator could look as follows:\n *\n *\t\t{\n *\t\t\tmode: 'manual',\n *\t\t\tlabel: 'Open in a new tab',\n *\t\t\tattributes: {\n *\t\t\t\ttarget: '_blank',\n *\t\t\t\trel: 'noopener noreferrer'\n *\t\t\t}\n *\t\t}\n *\n * @typedef {Object} module:link/link~LinkDecoratorManualDefinition\n * @property {'manual'} mode Link decorator type. It is `'manual'` for all manual decorators.\n * @property {String} label The label of the UI button that the user can use to control the presence of link attributes.\n * @property {Object} attributes Key-value pairs used as link attributes added to the output during the\n * {@glink framework/guides/architecture/editing-engine#conversion downcasting}.\n * Attributes should follow the {@link module:engine/view/elementdefinition~ElementDefinition} syntax.\n */\n\n\nexport { Link as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module link/linkcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport findLinkRange from \"./findlinkrange\";\nimport toMap from '@ckeditor/ckeditor5-utils/src/tomap';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\n/**\n * The link command. It is used by the {@link module:link/link~Link link feature}.\n *\n * @extends module:core/command~Command\n */\n\nvar LinkCommand = /*#__PURE__*/function (_Command) {\n  _inherits(LinkCommand, _Command);\n\n  var _super = _createSuper(LinkCommand);\n\n  /**\n   * The value of the `'linkHref'` attribute if the start of the selection is located in a node with this attribute.\n   *\n   * @observable\n   * @readonly\n   * @member {Object|undefined} #value\n   */\n  function LinkCommand(editor) {\n    var _this;\n\n    _classCallCheck(this, LinkCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * A collection of {@link module:link/utils~ManualDecorator manual decorators}\n     * corresponding to the {@link module:link/link~LinkConfig#decorators decorator configuration}.\n     *\n     * You can consider it a model with states of manual decorators added to the currently selected link.\n     *\n     * @readonly\n     * @type {module:utils/collection~Collection}\n     */\n\n    _this.manualDecorators = new Collection();\n    return _this;\n  }\n  /**\n   * Synchronizes the state of {@link #manualDecorators} with the currently present elements in the model.\n   */\n\n\n  _createClass(LinkCommand, [{\n    key: \"restoreManualDecoratorStates\",\n    value: function restoreManualDecoratorStates() {\n      var _iterator = _createForOfIteratorHelper(this.manualDecorators),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var manualDecorator = _step.value;\n          manualDecorator.value = this._getDecoratorStateFromModel(manualDecorator.id);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"refresh\",\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      this.value = doc.selection.getAttribute('linkHref');\n\n      var _iterator2 = _createForOfIteratorHelper(this.manualDecorators),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var manualDecorator = _step2.value;\n          manualDecorator.value = this._getDecoratorStateFromModel(manualDecorator.id);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      this.isEnabled = model.schema.checkAttributeInSelection(doc.selection, 'linkHref');\n    }\n    /**\n     * Executes the command.\n     *\n     * When the selection is non-collapsed, the `linkHref` attribute will be applied to nodes inside the selection, but only to\n     * those nodes where the `linkHref` attribute is allowed (disallowed nodes will be omitted).\n     *\n     * When the selection is collapsed and is not inside the text with the `linkHref` attribute, a\n     * new {@link module:engine/model/text~Text text node} with the `linkHref` attribute will be inserted in place of the caret, but\n     * only if such element is allowed in this place. The `_data` of the inserted text will equal the `href` parameter.\n     * The selection will be updated to wrap the just inserted text node.\n     *\n     * When the selection is collapsed and inside the text with the `linkHref` attribute, the attribute value will be updated.\n     *\n     * # Decorators and model attribute management\n     *\n     * There is an optional argument to this command that applies or removes model\n     * {@glink framework/guides/architecture/editing-engine#text-attributes text attributes} brought by\n     * {@link module:link/utils~ManualDecorator manual link decorators}.\n     *\n     * Text attribute names in the model correspond to the entries in the {@link module:link/link~LinkConfig#decorators configuration}.\n     * For every decorator configured, a model text attribute exists with the \"link\" prefix. For example, a `'linkMyDecorator'` attribute\n     * corresponds to `'myDecorator'` in the configuration.\n     *\n     * To learn more about link decorators, check out the {@link module:link/link~LinkConfig#decorators `config.link.decorators`}\n     * documentation.\n     *\n     * Here is how to manage decorator attributes with the link command:\n     *\n     *\t\tconst linkCommand = editor.commands.get( 'link' );\n     *\n     *\t\t// Adding a new decorator attribute.\n     *\t\tlinkCommand.execute( 'http://example.com', {\n     *\t\t\tlinkIsExternal: true\n     *\t\t} );\n     *\n     *\t\t// Removing a decorator attribute from the selection.\n     *\t\tlinkCommand.execute( 'http://example.com', {\n     *\t\t\tlinkIsExternal: false\n     *\t\t} );\n     *\n     *\t\t// Adding multiple decorator attributes at the same time.\n     *\t\tlinkCommand.execute( 'http://example.com', {\n     *\t\t\tlinkIsExternal: true,\n     *\t\t\tlinkIsDownloadable: true,\n     *\t\t} );\n     *\n     *\t\t// Removing and adding decorator attributes at the same time.\n     *\t\tlinkCommand.execute( 'http://example.com', {\n     *\t\t\tlinkIsExternal: false,\n     *\t\t\tlinkFoo: true,\n     *\t\t\tlinkIsDownloadable: false,\n     *\t\t} );\n     *\n     * **Note**: If the decorator attribute name is not specified, its state remains untouched.\n     *\n     * **Note**: {@link module:link/unlinkcommand~UnlinkCommand#execute `UnlinkCommand#execute()`} removes all\n     * decorator attributes.\n     *\n     * @fires execute\n     * @param {String} href Link destination.\n     * @param {Object} [manualDecoratorIds={}] The information about manual decorator attributes to be applied or removed upon execution.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(href) {\n      var manualDecoratorIds = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var model = this.editor.model;\n      var selection = model.document.selection; // Stores information about manual decorators to turn them on/off when command is applied.\n\n      var truthyManualDecorators = [];\n      var falsyManualDecorators = [];\n\n      for (var name in manualDecoratorIds) {\n        if (manualDecoratorIds[name]) {\n          truthyManualDecorators.push(name);\n        } else {\n          falsyManualDecorators.push(name);\n        }\n      }\n\n      model.change(function (writer) {\n        // If selection is collapsed then update selected link or insert new one at the place of caret.\n        if (selection.isCollapsed) {\n          var position = selection.getFirstPosition(); // When selection is inside text with `linkHref` attribute.\n\n          if (selection.hasAttribute('linkHref')) {\n            // Then update `linkHref` value.\n            var linkRange = findLinkRange(position, selection.getAttribute('linkHref'), model);\n            writer.setAttribute('linkHref', href, linkRange);\n            truthyManualDecorators.forEach(function (item) {\n              writer.setAttribute(item, true, linkRange);\n            });\n            falsyManualDecorators.forEach(function (item) {\n              writer.removeAttribute(item, linkRange);\n            }); // Create new range wrapping changed link.\n\n            writer.setSelection(linkRange);\n          } // If not then insert text node with `linkHref` attribute in place of caret.\n          // However, since selection in collapsed, attribute value will be used as data for text node.\n          // So, if `href` is empty, do not create text node.\n          else if (href !== '') {\n              var attributes = toMap(selection.getAttributes());\n              attributes.set('linkHref', href);\n              truthyManualDecorators.forEach(function (item) {\n                attributes.set(item, true);\n              });\n              var node = writer.createText(href, attributes);\n              model.insertContent(node, position); // Create new range wrapping created node.\n\n              writer.setSelection(writer.createRangeOn(node));\n            }\n        } else {\n          // If selection has non-collapsed ranges, we change attribute on nodes inside those ranges\n          // omitting nodes where `linkHref` attribute is disallowed.\n          var ranges = model.schema.getValidRanges(selection.getRanges(), 'linkHref');\n\n          var _iterator3 = _createForOfIteratorHelper(ranges),\n              _step3;\n\n          try {\n            var _loop = function _loop() {\n              var range = _step3.value;\n              writer.setAttribute('linkHref', href, range);\n              truthyManualDecorators.forEach(function (item) {\n                writer.setAttribute(item, true, range);\n              });\n              falsyManualDecorators.forEach(function (item) {\n                writer.removeAttribute(item, range);\n              });\n            };\n\n            for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n              _loop();\n            }\n          } catch (err) {\n            _iterator3.e(err);\n          } finally {\n            _iterator3.f();\n          }\n        }\n      });\n    }\n    /**\n     * Provides information whether a decorator with a given name is present in the currently processed selection.\n     *\n     * @private\n     * @param {String} decoratorName The name of the manual decorator used in the model\n     * @returns {Boolean} The information whether a given decorator is currently present in the selection.\n     */\n\n  }, {\n    key: \"_getDecoratorStateFromModel\",\n    value: function _getDecoratorStateFromModel(decoratorName) {\n      var doc = this.editor.model.document;\n      return doc.selection.getAttribute(decoratorName) || false;\n    }\n  }]);\n\n  return LinkCommand;\n}(Command);\n\nexport { LinkCommand as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module link/linkediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport LinkCommand from \"./linkcommand\";\nimport UnlinkCommand from \"./unlinkcommand\";\nimport { createLinkElement, ensureSafeUrl, getLocalizedDecorators, normalizeDecorators } from \"./utils\";\nimport AutomaticDecorators from \"./utils/automaticdecorators\";\nimport ManualDecorator from \"./utils/manualdecorator\";\nimport bindTwoStepCaretToAttribute from '@ckeditor/ckeditor5-engine/src/utils/bindtwostepcarettoattribute';\nimport findLinkRange from \"./findlinkrange\";\nimport \"../theme/link.css\";\nvar HIGHLIGHT_CLASS = 'ck-link_selected';\nvar DECORATOR_AUTOMATIC = 'automatic';\nvar DECORATOR_MANUAL = 'manual';\nvar EXTERNAL_LINKS_REGEXP = /^(https?:)?\\/\\//;\n/**\n * The link engine feature.\n *\n * It introduces the `linkHref=\"url\"` attribute in the model which renders to the view as a `<a href=\"url\">` element\n * as well as `'link'` and `'unlink'` commands.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar LinkEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(LinkEditing, _Plugin);\n\n  var _super = _createSuper(LinkEditing);\n\n  _createClass(LinkEditing, null, [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'LinkEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function LinkEditing(editor) {\n    var _this;\n\n    _classCallCheck(this, LinkEditing);\n\n    _this = _super.call(this, editor);\n    editor.config.define('link', {\n      addTargetToExternalLinks: false\n    });\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(LinkEditing, [{\n    key: \"init\",\n    value: function init() {\n      var editor = this.editor;\n      var locale = editor.locale; // Allow link attribute on all inline nodes.\n\n      editor.model.schema.extend('$text', {\n        allowAttributes: 'linkHref'\n      });\n      editor.conversion.for('dataDowncast').attributeToElement({\n        model: 'linkHref',\n        view: createLinkElement\n      });\n      editor.conversion.for('editingDowncast').attributeToElement({\n        model: 'linkHref',\n        view: function view(href, writer) {\n          return createLinkElement(ensureSafeUrl(href), writer);\n        }\n      });\n      editor.conversion.for('upcast').elementToAttribute({\n        view: {\n          name: 'a',\n          attributes: {\n            href: true\n          }\n        },\n        model: {\n          key: 'linkHref',\n          value: function value(viewElement) {\n            return viewElement.getAttribute('href');\n          }\n        }\n      }); // Create linking commands.\n\n      editor.commands.add('link', new LinkCommand(editor));\n      editor.commands.add('unlink', new UnlinkCommand(editor));\n      var linkDecorators = getLocalizedDecorators(editor.t, normalizeDecorators(editor.config.get('link.decorators')));\n\n      this._enableAutomaticDecorators(linkDecorators.filter(function (item) {\n        return item.mode === DECORATOR_AUTOMATIC;\n      }));\n\n      this._enableManualDecorators(linkDecorators.filter(function (item) {\n        return item.mode === DECORATOR_MANUAL;\n      })); // Enable two-step caret movement for `linkHref` attribute.\n\n\n      bindTwoStepCaretToAttribute({\n        view: editor.editing.view,\n        model: editor.model,\n        emitter: this,\n        attribute: 'linkHref',\n        locale: locale\n      }); // Setup highlight over selected link.\n\n      this._setupLinkHighlight();\n    }\n    /**\n     * Processes an array of configured {@link module:link/link~LinkDecoratorAutomaticDefinition automatic decorators}\n     * and registers a {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher downcast dispatcher}\n     * for each one of them. Downcast dispatchers are obtained using the\n     * {@link module:link/utils~AutomaticDecorators#getDispatcher} method.\n     *\n     * **Note**: This method also activates the automatic external link decorator if enabled with\n     * {@link module:link/link~LinkConfig#addTargetToExternalLinks `config.link.addTargetToExternalLinks`}.\n     *\n     * @private\n     * @param {Array.<module:link/link~LinkDecoratorAutomaticDefinition>} automaticDecoratorDefinitions\n     */\n\n  }, {\n    key: \"_enableAutomaticDecorators\",\n    value: function _enableAutomaticDecorators(automaticDecoratorDefinitions) {\n      var editor = this.editor;\n      var automaticDecorators = new AutomaticDecorators(); // Adds a default decorator for external links.\n\n      if (editor.config.get('link.addTargetToExternalLinks')) {\n        automaticDecorators.add({\n          id: 'linkIsExternal',\n          mode: DECORATOR_AUTOMATIC,\n          callback: function callback(url) {\n            return EXTERNAL_LINKS_REGEXP.test(url);\n          },\n          attributes: {\n            target: '_blank',\n            rel: 'noopener noreferrer'\n          }\n        });\n      }\n\n      automaticDecorators.add(automaticDecoratorDefinitions);\n\n      if (automaticDecorators.length) {\n        editor.conversion.for('downcast').add(automaticDecorators.getDispatcher());\n      }\n    }\n    /**\n     * Processes an array of configured {@link module:link/link~LinkDecoratorManualDefinition manual decorators},\n     * transforms them into {@link module:link/utils~ManualDecorator} instances and stores them in the\n     * {@link module:link/linkcommand~LinkCommand#manualDecorators} collection (a model for manual decorators state).\n     *\n     * Also registers an {@link module:engine/conversion/downcasthelpers~DowncastHelpers#attributeToElement attribute-to-element}\n     * converter for each manual decorator and extends the {@link module:engine/model/schema~Schema model's schema}\n     * with adequate model attributes.\n     *\n     * @private\n     * @param {Array.<module:link/link~LinkDecoratorManualDefinition>} manualDecoratorDefinitions\n     */\n\n  }, {\n    key: \"_enableManualDecorators\",\n    value: function _enableManualDecorators(manualDecoratorDefinitions) {\n      if (!manualDecoratorDefinitions.length) {\n        return;\n      }\n\n      var editor = this.editor;\n      var command = editor.commands.get('link');\n      var manualDecorators = command.manualDecorators;\n      manualDecoratorDefinitions.forEach(function (decorator) {\n        editor.model.schema.extend('$text', {\n          allowAttributes: decorator.id\n        }); // Keeps reference to manual decorator to decode its name to attributes during downcast.\n\n        manualDecorators.add(new ManualDecorator(decorator));\n        editor.conversion.for('downcast').attributeToElement({\n          model: decorator.id,\n          view: function view(manualDecoratorName, writer) {\n            if (manualDecoratorName) {\n              var attributes = manualDecorators.get(decorator.id).attributes;\n              var element = writer.createAttributeElement('a', attributes, {\n                priority: 5\n              });\n              writer.setCustomProperty('link', true, element);\n              return element;\n            }\n          }\n        });\n        editor.conversion.for('upcast').elementToAttribute({\n          view: {\n            name: 'a',\n            attributes: manualDecorators.get(decorator.id).attributes\n          },\n          model: {\n            key: decorator.id\n          }\n        });\n      });\n    }\n    /**\n     * Adds a visual highlight style to a link in which the selection is anchored.\n     * Together with two-step caret movement, they indicate that the user is typing inside the link.\n     *\n     * Highlight is turned on by adding the `.ck-link_selected` class to the link in the view:\n     *\n     * * The class is removed before the conversion has started, as callbacks added with the `'highest'` priority\n     * to {@link module:engine/conversion/downcastdispatcher~DowncastDispatcher} events.\n     * * The class is added in the view post fixer, after other changes in the model tree were converted to the view.\n     *\n     * This way, adding and removing the highlight does not interfere with conversion.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_setupLinkHighlight\",\n    value: function _setupLinkHighlight() {\n      var editor = this.editor;\n      var view = editor.editing.view;\n      var highlightedLinks = new Set(); // Adding the class.\n\n      view.document.registerPostFixer(function (writer) {\n        var selection = editor.model.document.selection;\n        var changed = false;\n\n        if (selection.hasAttribute('linkHref')) {\n          var modelRange = findLinkRange(selection.getFirstPosition(), selection.getAttribute('linkHref'), editor.model);\n          var viewRange = editor.editing.mapper.toViewRange(modelRange); // There might be multiple `a` elements in the `viewRange`, for example, when the `a` element is\n          // broken by a UIElement.\n\n          var _iterator = _createForOfIteratorHelper(viewRange.getItems()),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var item = _step.value;\n\n              if (item.is('a') && !item.hasClass(HIGHLIGHT_CLASS)) {\n                writer.addClass(HIGHLIGHT_CLASS, item);\n                highlightedLinks.add(item);\n                changed = true;\n              }\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        }\n\n        return changed;\n      }); // Removing the class.\n\n      editor.conversion.for('editingDowncast').add(function (dispatcher) {\n        // Make sure the highlight is removed on every possible event, before conversion is started.\n        dispatcher.on('insert', removeHighlight, {\n          priority: 'highest'\n        });\n        dispatcher.on('remove', removeHighlight, {\n          priority: 'highest'\n        });\n        dispatcher.on('attribute', removeHighlight, {\n          priority: 'highest'\n        });\n        dispatcher.on('selection', removeHighlight, {\n          priority: 'highest'\n        });\n\n        function removeHighlight() {\n          view.change(function (writer) {\n            var _iterator2 = _createForOfIteratorHelper(highlightedLinks.values()),\n                _step2;\n\n            try {\n              for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                var item = _step2.value;\n                writer.removeClass(HIGHLIGHT_CLASS, item);\n                highlightedLinks.delete(item);\n              }\n            } catch (err) {\n              _iterator2.e(err);\n            } finally {\n              _iterator2.f();\n            }\n          });\n        }\n      });\n    }\n  }]);\n\n  return LinkEditing;\n}(Plugin);\n\nexport { LinkEditing as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/es6.array.find';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/linkui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport ClickObserver from '@ckeditor/ckeditor5-engine/src/view/observer/clickobserver';\nimport { isLinkElement } from './utils';\nimport ContextualBalloon from '@ckeditor/ckeditor5-ui/src/panel/balloon/contextualballoon';\nimport clickOutsideHandler from '@ckeditor/ckeditor5-ui/src/bindings/clickoutsidehandler';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport LinkFormView from './ui/linkformview';\nimport LinkActionsView from './ui/linkactionsview';\nimport linkIcon from '../theme/icons/link.svg';\nvar linkKeystroke = 'Ctrl+K';\n/**\n * The link UI plugin. It introduces the `'link'` and `'unlink'` buttons and support for the <kbd>Ctrl+K</kbd> keystroke.\n *\n * It uses the\n * {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon contextual balloon plugin}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar LinkUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(LinkUI, _Plugin);\n    var _super = _createSuper(LinkUI);\n    function LinkUI() {\n        _classCallCheck(this, LinkUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(LinkUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var editor = this.editor;\n                editor.editing.view.addObserver(ClickObserver);\n                /**\n       * The actions view displayed inside of the balloon.\n       *\n       * @member {module:link/ui/linkactionsview~LinkActionsView}\n       */\n                this.actionsView = this._createActionsView();\n                /**\n       * The form view displayed inside the balloon.\n       *\n       * @member {module:link/ui/linkformview~LinkFormView}\n       */\n                this.formView = this._createFormView();\n                /**\n       * The contextual balloon plugin instance.\n       *\n       * @private\n       * @member {module:ui/panel/balloon/contextualballoon~ContextualBalloon}\n       */\n                this._balloon = editor.plugins.get(ContextualBalloon);\n                // Create toolbar buttons.\n                this._createToolbarLinkButton();\n                // Attach lifecycle actions to the the balloon.\n                this._enableUserBalloonInteractions();\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n                _get(_getPrototypeOf(LinkUI.prototype), 'destroy', this).call(this);\n                // Destroy created UI components as they are not automatically destroyed (see ckeditor5#1341).\n                this.formView.destroy();\n            }    /**\n     * Creates the {@link module:link/ui/linkactionsview~LinkActionsView} instance.\n     *\n     * @private\n     * @returns {module:link/ui/linkactionsview~LinkActionsView} The link actions view instance.\n     */\n        },\n        {\n            key: '_createActionsView',\n            value: function _createActionsView() {\n                var _this = this;\n                var editor = this.editor;\n                var actionsView = new LinkActionsView(editor.locale);\n                var linkCommand = editor.commands.get('link');\n                var unlinkCommand = editor.commands.get('unlink');\n                actionsView.bind('href').to(linkCommand, 'value');\n                actionsView.editButtonView.bind('isEnabled').to(linkCommand);\n                actionsView.unlinkButtonView.bind('isEnabled').to(unlinkCommand);\n                // Execute unlink command after clicking on the \"Edit\" button.\n                this.listenTo(actionsView, 'edit', function () {\n                    _this._addFormView();\n                });\n                // Execute unlink command after clicking on the \"Unlink\" button.\n                this.listenTo(actionsView, 'unlink', function () {\n                    editor.execute('unlink');\n                    _this._hideUI();\n                });\n                // Close the panel on esc key press when the **actions have focus**.\n                actionsView.keystrokes.set('Esc', function (data, cancel) {\n                    _this._hideUI();\n                    cancel();\n                });\n                // Open the form view on Ctrl+K when the **actions have focus**..\n                actionsView.keystrokes.set(linkKeystroke, function (data, cancel) {\n                    _this._addFormView();\n                    cancel();\n                });\n                return actionsView;\n            }    /**\n     * Creates the {@link module:link/ui/linkformview~LinkFormView} instance.\n     *\n     * @private\n     * @returns {module:link/ui/linkformview~LinkFormView} The link form view instance.\n     */\n        },\n        {\n            key: '_createFormView',\n            value: function _createFormView() {\n                var _this2 = this;\n                var editor = this.editor;\n                var linkCommand = editor.commands.get('link');\n                var formView = new LinkFormView(editor.locale, linkCommand.manualDecorators);\n                formView.urlInputView.bind('value').to(linkCommand, 'value');\n                // Form elements should be read-only when corresponding commands are disabled.\n                formView.urlInputView.bind('isReadOnly').to(linkCommand, 'isEnabled', function (value) {\n                    return !value;\n                });\n                formView.saveButtonView.bind('isEnabled').to(linkCommand);\n                // Execute link command after clicking the \"Save\" button.\n                this.listenTo(formView, 'submit', function () {\n                    editor.execute('link', formView.urlInputView.inputView.element.value, formView.getDecoratorSwitchesState());\n                    _this2._closeFormView();\n                });\n                // Hide the panel after clicking the \"Cancel\" button.\n                this.listenTo(formView, 'cancel', function () {\n                    _this2._closeFormView();\n                });\n                // Close the panel on esc key press when the **form has focus**.\n                formView.keystrokes.set('Esc', function (data, cancel) {\n                    _this2._closeFormView();\n                    cancel();\n                });\n                return formView;\n            }    /**\n     * Creates a toolbar Link button. Clicking this button will show\n     * a {@link #_balloon} attached to the selection.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_createToolbarLinkButton',\n            value: function _createToolbarLinkButton() {\n                var _this3 = this;\n                var editor = this.editor;\n                var linkCommand = editor.commands.get('link');\n                var t = editor.t;\n                // Handle the `Ctrl+K` keystroke and show the panel.\n                editor.keystrokes.set(linkKeystroke, function (keyEvtData, cancel) {\n                    // Prevent focusing the search bar in FF and opening new tab in Edge. #153, #154.\n                    cancel();\n                    if (linkCommand.isEnabled) {\n                        _this3._showUI(true);\n                    }\n                });\n                editor.ui.componentFactory.add('link', function (locale) {\n                    var button = new ButtonView(locale);\n                    button.isEnabled = true;\n                    button.label = t('Link');\n                    button.icon = linkIcon;\n                    button.keystroke = linkKeystroke;\n                    button.tooltip = true;\n                    button.isToggleable = true;\n                    // Bind button to the command.\n                    button.bind('isEnabled').to(linkCommand, 'isEnabled');\n                    button.bind('isOn').to(linkCommand, 'value', function (value) {\n                        return !!value;\n                    });\n                    // Show the panel on button click.\n                    _this3.listenTo(button, 'execute', function () {\n                        return _this3._showUI(true);\n                    });\n                    return button;\n                });\n            }    /**\n     * Attaches actions that control whether the balloon panel containing the\n     * {@link #formView} is visible or not.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_enableUserBalloonInteractions',\n            value: function _enableUserBalloonInteractions() {\n                var _this4 = this;\n                var viewDocument = this.editor.editing.view.document;\n                // Handle click on view document and show panel when selection is placed inside the link element.\n                // Keep panel open until selection will be inside the same link element.\n                this.listenTo(viewDocument, 'click', function () {\n                    var parentLink = _this4._getSelectedLinkElement();\n                    if (parentLink) {\n                        // Then show panel but keep focus inside editor editable.\n                        _this4._showUI();\n                    }\n                });\n                // Focus the form if the balloon is visible and the Tab key has been pressed.\n                this.editor.keystrokes.set('Tab', function (data, cancel) {\n                    if (_this4._areActionsVisible && !_this4.actionsView.focusTracker.isFocused) {\n                        _this4.actionsView.focus();\n                        cancel();\n                    }\n                }, {\n                    // Use the high priority because the link UI navigation is more important\n                    // than other feature's actions, e.g. list indentation.\n                    // https://github.com/ckeditor/ckeditor5-link/issues/146\n                    priority: 'high'\n                });\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', function (data, cancel) {\n                    if (_this4._isUIVisible) {\n                        _this4._hideUI();\n                        cancel();\n                    }\n                });\n                // Close on click outside of balloon panel element.\n                clickOutsideHandler({\n                    emitter: this.formView,\n                    activator: function activator() {\n                        return _this4._isUIInPanel;\n                    },\n                    contextElements: [this._balloon.view.element],\n                    callback: function callback() {\n                        return _this4._hideUI();\n                    }\n                });\n            }    /**\n     * Adds the {@link #actionsView} to the {@link #_balloon}.\n     *\n     * @protected\n     */\n        },\n        {\n            key: '_addActionsView',\n            value: function _addActionsView() {\n                if (this._areActionsInPanel) {\n                    return;\n                }\n                this._balloon.add({\n                    view: this.actionsView,\n                    position: this._getBalloonPositionData()\n                });\n            }    /**\n     * Adds the {@link #formView} to the {@link #_balloon}.\n     *\n     * @protected\n     */\n        },\n        {\n            key: '_addFormView',\n            value: function _addFormView() {\n                if (this._isFormInPanel) {\n                    return;\n                }\n                var editor = this.editor;\n                var linkCommand = editor.commands.get('link');\n                this._balloon.add({\n                    view: this.formView,\n                    position: this._getBalloonPositionData()\n                });\n                // Select input when form view is currently visible.\n                if (this._balloon.visibleView === this.formView) {\n                    this.formView.urlInputView.select();\n                }\n                // Make sure that each time the panel shows up, the URL field remains in sync with the value of\n                // the command. If the user typed in the input, then canceled the balloon (`urlInputView#value` stays\n                // unaltered) and re-opened it without changing the value of the link command (e.g. because they\n                // clicked the same link), they would see the old value instead of the actual value of the command.\n                // https://github.com/ckeditor/ckeditor5-link/issues/78\n                // https://github.com/ckeditor/ckeditor5-link/issues/123\n                this.formView.urlInputView.inputView.element.value = linkCommand.value || '';\n            }    /**\n     * Closes the form view. Decides whether the balloon should be hidden completely or if the action view should be shown. This is\n     * decided upon the link command value (which has a value if the document selection is in the link).\n     *\n     * Additionally, if any {@link module:link/link~LinkConfig#decorators} are defined in the editor configuration, the state of\n     * switch buttons responsible for manual decorator handling is restored.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_closeFormView',\n            value: function _closeFormView() {\n                var linkCommand = this.editor.commands.get('link');\n                // Restore manual decorator states to represent the current model state. This case is important to reset the switch buttons\n                // when the user cancels the editing form.\n                linkCommand.restoreManualDecoratorStates();\n                if (linkCommand.value !== undefined) {\n                    this._removeFormView();\n                } else {\n                    this._hideUI();\n                }\n            }    /**\n     * Removes the {@link #formView} from the {@link #_balloon}.\n     *\n     * @protected\n     */\n        },\n        {\n            key: '_removeFormView',\n            value: function _removeFormView() {\n                if (this._isFormInPanel) {\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                    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                    this.editor.editing.view.focus();\n                }\n            }    /**\n     * Shows the correct UI type for the current state of the command. It is either\n     * {@link #formView} or {@link #actionsView}.\n     *\n     * @param {Boolean} forceVisible\n     * @private\n     */\n        },\n        {\n            key: '_showUI',\n            value: function _showUI() {\n                var forceVisible = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n                var editor = this.editor;\n                var linkCommand = editor.commands.get('link');\n                if (!linkCommand.isEnabled) {\n                    return;\n                }\n                // When there's no link under the selection, go straight to the editing UI.\n                if (!this._getSelectedLinkElement()) {\n                    this._addActionsView();\n                    // Be sure panel with link is visible.\n                    if (forceVisible) {\n                        this._balloon.showStack('main');\n                    }\n                    this._addFormView();\n                }    // If there's a link under the selection...\n                else {\n                    // Go to the editing UI if actions are already visible.\n                    if (this._areActionsVisible) {\n                        this._addFormView();\n                    }    // Otherwise display just the actions UI.\n                    else {\n                        this._addActionsView();\n                    }\n                    // Be sure panel with link is visible.\n                    if (forceVisible) {\n                        this._balloon.showStack('main');\n                    }\n                }\n                // Begin responding to ui#update once the UI is added.\n                this._startUpdatingUI();\n            }    /**\n     * Removes the {@link #formView} from the {@link #_balloon}.\n     *\n     * See {@link #_addFormView}, {@link #_addActionsView}.\n     *\n     * @protected\n     */\n        },\n        {\n            key: '_hideUI',\n            value: function _hideUI() {\n                if (!this._isUIInPanel) {\n                    return;\n                }\n                var 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                editor.editing.view.focus();\n                // Remove form first because it's on top of the stack.\n                this._removeFormView();\n                // Then remove the actions view because it's beneath the form.\n                this._balloon.remove(this.actionsView);\n            }    /**\n     * Makes the UI react to the {@link module:core/editor/editorui~EditorUI#event:update} event to\n     * reposition itself when the editor UI should be refreshed.\n     *\n     * See: {@link #_hideUI} to learn when the UI stops reacting to the `update` event.\n     *\n     * @protected\n     */\n        },\n        {\n            key: '_startUpdatingUI',\n            value: function _startUpdatingUI() {\n                var _this5 = this;\n                var editor = this.editor;\n                var viewDocument = editor.editing.view.document;\n                var prevSelectedLink = this._getSelectedLinkElement();\n                var prevSelectionParent = getSelectionParent();\n                var update = function update() {\n                    var selectedLink = _this5._getSelectedLinkElement();\n                    var selectionParent = getSelectionParent();\n                    // Hide the panel if:\n                    //\n                    // * the selection went out of the EXISTING link element. E.g. user moved the caret out\n                    //   of the link,\n                    // * the selection went to a different parent when creating a NEW link. E.g. someone\n                    //   else modified the document.\n                    // * the selection has expanded (e.g. displaying link actions then pressing SHIFT+Right arrow).\n                    //\n                    // Note: #_getSelectedLinkElement will return a link for a non-collapsed selection only\n                    // when fully selected.\n                    if (prevSelectedLink && !selectedLink || !prevSelectedLink && selectionParent !== prevSelectionParent) {\n                        _this5._hideUI();\n                    }    // Update the position of the panel when:\n                         //  * link panel is in the visible stack\n                         //  * the selection remains in the original link element,\n                         //  * there was no link element in the first place, i.e. creating a new link\n                    else if (_this5._isUIVisible) {\n                        // If still in a link element, simply update the position of the balloon.\n                        // If there was no link (e.g. inserting one), the balloon must be moved\n                        // to the new position in the editing view (a new native DOM range).\n                        _this5._balloon.updatePosition(_this5._getBalloonPositionData());\n                    }\n                    prevSelectedLink = selectedLink;\n                    prevSelectionParent = selectionParent;\n                };\n                function getSelectionParent() {\n                    return viewDocument.selection.focus.getAncestors().reverse().find(function (node) {\n                        return node.is('element');\n                    });\n                }\n                this.listenTo(editor.ui, 'update', update);\n                this.listenTo(this._balloon, 'change:visibleView', update);\n            }    /**\n     * Returns `true` when {@link #formView} is in the {@link #_balloon}.\n     *\n     * @readonly\n     * @protected\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_getBalloonPositionData',\n            /**\n     * Returns positioning options for the {@link #_balloon}. They control the way the balloon is attached\n     * to the target element or selection.\n     *\n     * If the selection is collapsed and inside a link element, the panel will be attached to the\n     * entire link element. Otherwise, it will be attached to the selection.\n     *\n     * @private\n     * @returns {module:utils/dom/position~Options}\n     */\n            value: function _getBalloonPositionData() {\n                var view = this.editor.editing.view;\n                var viewDocument = view.document;\n                var targetLink = this._getSelectedLinkElement();\n                var target = targetLink ? // When selection is inside link element, then attach panel to this element.\n                view.domConverter.mapViewToDom(targetLink) : // Otherwise attach panel to the selection.\n                view.domConverter.viewRangeToDom(viewDocument.selection.getFirstRange());\n                return { target: target };\n            }    /**\n     * Returns the link {@link module:engine/view/attributeelement~AttributeElement} under\n     * the {@link module:engine/view/document~Document editing view's} selection or `null`\n     * if there is none.\n     *\n     * **Note**: For a non–collapsed selection, the link element is only returned when **fully**\n     * selected and the **only** element within the selection boundaries.\n     *\n     * @private\n     * @returns {module:engine/view/attributeelement~AttributeElement|null}\n     */\n        },\n        {\n            key: '_getSelectedLinkElement',\n            value: function _getSelectedLinkElement() {\n                var view = this.editor.editing.view;\n                var selection = view.document.selection;\n                if (selection.isCollapsed) {\n                    return findLinkElementAncestor(selection.getFirstPosition());\n                } else {\n                    // The range for fully selected link is usually anchored in adjacent text nodes.\n                    // Trim it to get closer to the actual link element.\n                    var range = selection.getFirstRange().getTrimmed();\n                    var startLink = findLinkElementAncestor(range.start);\n                    var endLink = findLinkElementAncestor(range.end);\n                    if (!startLink || startLink != endLink) {\n                        return null;\n                    }\n                    // Check if the link element is fully selected.\n                    if (view.createRangeIn(startLink).getTrimmed().isEqual(range)) {\n                        return startLink;\n                    } else {\n                        return null;\n                    }\n                }\n            }\n        },\n        {\n            key: '_isFormInPanel',\n            get: function get() {\n                return this._balloon.hasView(this.formView);\n            }    /**\n     * Returns `true` when {@link #actionsView} is in the {@link #_balloon}.\n     *\n     * @readonly\n     * @protected\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_areActionsInPanel',\n            get: function get() {\n                return this._balloon.hasView(this.actionsView);\n            }    /**\n     * Returns `true` when {@link #actionsView} is in the {@link #_balloon} and it is\n     * currently visible.\n     *\n     * @readonly\n     * @protected\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_areActionsVisible',\n            get: function get() {\n                return this._balloon.visibleView === this.actionsView;\n            }    /**\n     * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon}.\n     *\n     * @readonly\n     * @protected\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_isUIInPanel',\n            get: function get() {\n                return this._isFormInPanel || this._areActionsInPanel;\n            }    /**\n     * Returns `true` when {@link #actionsView} or {@link #formView} is in the {@link #_balloon} and it is\n     * currently visible.\n     *\n     * @readonly\n     * @protected\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_isUIVisible',\n            get: function get() {\n                var visibleView = this._balloon.visibleView;\n                return visibleView == this.formView || this._areActionsVisible;\n            }\n        }\n    ], [\n        {\n            key: 'requires',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return [ContextualBalloon];\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'pluginName',\n            get: function get() {\n                return 'LinkUI';\n            }\n        }\n    ]);\n    return LinkUI;\n}(Plugin);\n// Returns a link element if there's one among the ancestors of the provided `Position`.\n//\n// @private\n// @param {module:engine/view/position~Position} View position to analyze.\n// @returns {module:engine/view/attributeelement~AttributeElement|null} Link element at the position or null.\nexport {\n    LinkUI as default\n};\nfunction findLinkElementAncestor(position) {\n    return position.getAncestors().find(function (ancestor) {\n        return isLinkElement(ancestor);\n    });\n}","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/web.dom.iterable';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/ui/linkactionsview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport { ensureSafeUrl } from '../utils';\nimport unlinkIcon from '../../theme/icons/unlink.svg';\nimport pencilIcon from '@ckeditor/ckeditor5-core/theme/icons/pencil.svg';\nimport '../../theme/linkactions.css';\n/**\n * The link actions view class. This view displays the link preview, allows\n * unlinking or editing the link.\n *\n * @extends module:ui/view~View\n */\nvar LinkActionsView = /*#__PURE__*/\nfunction (_View) {\n    _inherits(LinkActionsView, _View);\n    var _super = _createSuper(LinkActionsView);\n    /**\n   * @inheritDoc\n   */\n    function LinkActionsView(locale) {\n        var _this;\n        _classCallCheck(this, LinkActionsView);\n        _this = _super.call(this, locale);\n        var t = locale.t;\n        /**\n     * Tracks information about DOM focus in the actions.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n        _this.focusTracker = new FocusTracker();\n        /**\n     * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n        _this.keystrokes = new KeystrokeHandler();\n        /**\n     * The href preview view.\n     *\n     * @member {module:ui/view~View}\n     */\n        _this.previewButtonView = _this._createPreviewButton();\n        /**\n     * The unlink button view.\n     *\n     * @member {module:ui/button/buttonview~ButtonView}\n     */\n        _this.unlinkButtonView = _this._createButton(t('Unlink'), unlinkIcon, 'unlink');\n        /**\n     * The edit link button view.\n     *\n     * @member {module:ui/button/buttonview~ButtonView}\n     */\n        _this.editButtonView = _this._createButton(t('Edit link'), pencilIcon, 'edit');\n        /**\n     * The value of the \"href\" attribute of the link to use in the {@link #previewButtonView}.\n     *\n     * @observable\n     * @member {String}\n     */\n        _this.set('href');\n        /**\n     * A collection of views that can be focused in the view.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this._focusables = new ViewCollection();\n        /**\n     * Helps cycling over {@link #_focusables} in the view.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\n     */\n        _this._focusCycler = new FocusCycler({\n            focusables: _this._focusables,\n            focusTracker: _this.focusTracker,\n            keystrokeHandler: _this.keystrokes,\n            actions: {\n                // Navigate fields backwards using the Shift + Tab keystroke.\n                focusPrevious: 'shift + tab',\n                // Navigate fields forwards using the Tab key.\n                focusNext: 'tab'\n            }\n        });\n        _this.setTemplate({\n            tag: 'div',\n            attributes: {\n                class: [\n                    'ck',\n                    'ck-link-actions'\n                ],\n                // https://github.com/ckeditor/ckeditor5-link/issues/90\n                tabindex: '-1'\n            },\n            children: [\n                _this.previewButtonView,\n                _this.editButtonView,\n                _this.unlinkButtonView\n            ]\n        });\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(LinkActionsView, [\n        {\n            key: 'render',\n            value: function render() {\n                var _this2 = this;\n                _get(_getPrototypeOf(LinkActionsView.prototype), 'render', this).call(this);\n                var childViews = [\n                    this.previewButtonView,\n                    this.editButtonView,\n                    this.unlinkButtonView\n                ];\n                childViews.forEach(function (v) {\n                    // Register the view as focusable.\n                    _this2._focusables.add(v);\n                    // Register the view in the focus tracker.\n                    _this2.focusTracker.add(v.element);\n                });\n                // Start listening for the keystrokes coming from #element.\n                this.keystrokes.listenTo(this.element);\n            }    /**\n     * Focuses the fist {@link #_focusables} in the actions.\n     */\n        },\n        {\n            key: 'focus',\n            value: function focus() {\n                this._focusCycler.focusFirst();\n            }    /**\n     * Creates a button view.\n     *\n     * @private\n     * @param {String} label The button label.\n     * @param {String} icon The button icon.\n     * @param {String} [eventName] An event name that the `ButtonView#execute` event will be delegated to.\n     * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n     */\n        },\n        {\n            key: '_createButton',\n            value: function _createButton(label, icon, eventName) {\n                var button = new ButtonView(this.locale);\n                button.set({\n                    label: label,\n                    icon: icon,\n                    tooltip: true\n                });\n                button.delegate('execute').to(this, eventName);\n                return button;\n            }    /**\n     * Creates a link href preview button.\n     *\n     * @private\n     * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n     */\n        },\n        {\n            key: '_createPreviewButton',\n            value: function _createPreviewButton() {\n                var button = new ButtonView(this.locale);\n                var bind = this.bindTemplate;\n                var t = this.t;\n                button.set({\n                    withText: true,\n                    tooltip: t('Open link in new tab')\n                });\n                button.extendTemplate({\n                    attributes: {\n                        class: [\n                            'ck',\n                            'ck-link-actions__preview'\n                        ],\n                        href: bind.to('href', function (href) {\n                            return href && ensureSafeUrl(href);\n                        }),\n                        target: '_blank'\n                    }\n                });\n                button.bind('label').to(this, 'href', function (href) {\n                    return href || t('This link has no URL');\n                });\n                button.bind('isEnabled').to(this, 'href', function (href) {\n                    return !!href;\n                });\n                button.template.tag = 'a';\n                button.template.eventListeners = {};\n                return button;\n            }\n        }\n    ]);\n    return LinkActionsView;\n}(View);\n/**\n * Fired when the {@link #editButtonView} is clicked.\n *\n * @event edit\n */\n/**\n * Fired when the {@link #unlinkButtonView} is clicked.\n *\n * @event unlink\n */\nexport {\n    LinkActionsView as default\n};","import 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/web.dom.iterable';\nimport _toConsumableArray from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/ui/linkformview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport SwitchButtonView from '@ckeditor/ckeditor5-ui/src/button/switchbuttonview';\nimport LabeledInputView from '@ckeditor/ckeditor5-ui/src/labeledinput/labeledinputview';\nimport InputTextView from '@ckeditor/ckeditor5-ui/src/inputtext/inputtextview';\nimport submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg';\nimport cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';\nimport '../../theme/linkform.css';\n/**\n * The link form view controller class.\n *\n * See {@link module:link/ui/linkformview~LinkFormView}.\n *\n * @extends module:ui/view~View\n */\nvar LinkFormView = /*#__PURE__*/\nfunction (_View) {\n    _inherits(LinkFormView, _View);\n    var _super = _createSuper(LinkFormView);\n    /**\n   * Creates an instance of the {@link module:link/ui/linkformview~LinkFormView} class.\n   *\n   * Also see {@link #render}.\n   *\n   * @param {module:utils/locale~Locale} [locale] The localization services instance.\n   * @param {module:utils/collection~Collection} [manualDecorators] Reference to manual decorators in\n   * {@link module:link/linkcommand~LinkCommand#manualDecorators}.\n   */\n    function LinkFormView(locale) {\n        var _this;\n        var manualDecorators = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n        _classCallCheck(this, LinkFormView);\n        _this = _super.call(this, locale);\n        var t = locale.t;\n        /**\n     * Tracks information about DOM focus in the form.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n        _this.focusTracker = new FocusTracker();\n        /**\n     * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n        _this.keystrokes = new KeystrokeHandler();\n        /**\n     * The URL input view.\n     *\n     * @member {module:ui/labeledinput/labeledinputview~LabeledInputView}\n     */\n        _this.urlInputView = _this._createUrlInput();\n        /**\n     * The Save button view.\n     *\n     * @member {module:ui/button/buttonview~ButtonView}\n     */\n        _this.saveButtonView = _this._createButton(t('Save'), checkIcon, 'ck-button-save');\n        _this.saveButtonView.type = 'submit';\n        /**\n     * The Cancel button view.\n     *\n     * @member {module:ui/button/buttonview~ButtonView}\n     */\n        _this.cancelButtonView = _this._createButton(t('Cancel'), cancelIcon, 'ck-button-cancel', 'cancel');\n        /**\n     * A collection of {@link module:ui/button/switchbuttonview~SwitchButtonView},\n     * which corresponds to {@link module:link/linkcommand~LinkCommand#manualDecorators manual decorators}\n     * configured in the editor.\n     *\n     * @private\n     * @readonly\n     * @type {module:ui/viewcollection~ViewCollection}\n     */\n        _this._manualDecoratorSwitches = _this._createManualDecoratorSwitches(manualDecorators);\n        /**\n     * A collection of child views in the form.\n     *\n     * @readonly\n     * @type {module:ui/viewcollection~ViewCollection}\n     */\n        _this.children = _this._createFormChildren(manualDecorators);\n        /**\n     * A collection of views that can be focused in the form.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this._focusables = new ViewCollection();\n        /**\n     * Helps cycling over {@link #_focusables} in the form.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\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        var classList = [\n            'ck',\n            'ck-link-form'\n        ];\n        if (manualDecorators.length) {\n            classList.push('ck-link-form_layout-vertical');\n        }\n        _this.setTemplate({\n            tag: 'form',\n            attributes: {\n                class: classList,\n                // https://github.com/ckeditor/ckeditor5-link/issues/90\n                tabindex: '-1'\n            },\n            children: _this.children\n        });\n        return _this;\n    }\n    /**\n   * Obtains the state of the {@link module:ui/button/switchbuttonview~SwitchButtonView switch buttons} representing\n   * {@link module:link/linkcommand~LinkCommand#manualDecorators manual link decorators}\n   * in the {@link module:link/ui/linkformview~LinkFormView}.\n   *\n   * @returns {Object.<String,Boolean>} Key-value pairs, where the key is the name of the decorator and the value is\n   * its state.\n   */\n    _createClass(LinkFormView, [\n        {\n            key: 'getDecoratorSwitchesState',\n            value: function getDecoratorSwitchesState() {\n                return Array.from(this._manualDecoratorSwitches).reduce(function (accumulator, switchButton) {\n                    accumulator[switchButton.name] = switchButton.isOn;\n                    return accumulator;\n                }, {});\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'render',\n            value: function render() {\n                var _this2 = this;\n                _get(_getPrototypeOf(LinkFormView.prototype), 'render', this).call(this);\n                submitHandler({ view: this });\n                var childViews = [this.urlInputView].concat(_toConsumableArray(this._manualDecoratorSwitches), [\n                    this.saveButtonView,\n                    this.cancelButtonView\n                ]);\n                childViews.forEach(function (v) {\n                    // Register the view as focusable.\n                    _this2._focusables.add(v);\n                    // Register the view in the focus tracker.\n                    _this2.focusTracker.add(v.element);\n                });\n                // Start listening for the keystrokes coming from #element.\n                this.keystrokes.listenTo(this.element);\n            }    /**\n     * Focuses the fist {@link #_focusables} in the form.\n     */\n        },\n        {\n            key: 'focus',\n            value: function focus() {\n                this._focusCycler.focusFirst();\n            }    /**\n     * Creates a labeled input view.\n     *\n     * @private\n     * @returns {module:ui/labeledinput/labeledinputview~LabeledInputView} Labeled input view instance.\n     */\n        },\n        {\n            key: '_createUrlInput',\n            value: function _createUrlInput() {\n                var t = this.locale.t;\n                var labeledInput = new LabeledInputView(this.locale, InputTextView);\n                labeledInput.label = t('Link URL');\n                labeledInput.inputView.placeholder = 'https://example.com';\n                return labeledInput;\n            }    /**\n     * Creates a button view.\n     *\n     * @private\n     * @param {String} label The button label.\n     * @param {String} icon The button icon.\n     * @param {String} className The additional button CSS class name.\n     * @param {String} [eventName] An event name that the `ButtonView#execute` event will be delegated to.\n     * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n     */\n        },\n        {\n            key: '_createButton',\n            value: function _createButton(label, icon, className, eventName) {\n                var button = new ButtonView(this.locale);\n                button.set({\n                    label: label,\n                    icon: icon,\n                    tooltip: true\n                });\n                button.extendTemplate({ attributes: { class: className } });\n                if (eventName) {\n                    button.delegate('execute').to(this, eventName);\n                }\n                return button;\n            }    /**\n     * Populates {@link module:ui/viewcollection~ViewCollection} of {@link module:ui/button/switchbuttonview~SwitchButtonView}\n     * made based on {@link module:link/linkcommand~LinkCommand#manualDecorators}.\n     *\n     * @private\n     * @param {module:utils/collection~Collection} manualDecorators A reference to the\n     * collection of manual decorators stored in the link command.\n     * @returns {module:ui/viewcollection~ViewCollection} of switch buttons.\n     */\n        },\n        {\n            key: '_createManualDecoratorSwitches',\n            value: function _createManualDecoratorSwitches(manualDecorators) {\n                var _this3 = this;\n                var switches = this.createCollection();\n                var _iterator = _createForOfIteratorHelper(manualDecorators), _step;\n                try {\n                    var _loop = function _loop() {\n                        var manualDecorator = _step.value;\n                        var switchButton = new SwitchButtonView(_this3.locale);\n                        switchButton.set({\n                            name: manualDecorator.id,\n                            label: manualDecorator.label,\n                            withText: true\n                        });\n                        switchButton.bind('isOn').to(manualDecorator, 'value');\n                        switchButton.on('execute', function () {\n                            manualDecorator.set('value', !switchButton.isOn);\n                        });\n                        switches.add(switchButton);\n                    };\n                    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                        _loop();\n                    }\n                } catch (err) {\n                    _iterator.e(err);\n                } finally {\n                    _iterator.f();\n                }\n                return switches;\n            }    /**\n     * Populates the {@link #children} collection of the form.\n     *\n     * If {@link module:link/linkcommand~LinkCommand#manualDecorators manual decorators} are configured in the editor, it creates an\n     * additional `View` wrapping all {@link #_manualDecoratorSwitches} switch buttons corresponding\n     * to these decorators.\n     *\n     * @private\n     * @param {module:utils/collection~Collection} manualDecorators A reference to\n     * the collection of manual decorators stored in the link command.\n     * @returns {module:ui/viewcollection~ViewCollection} The children of link form view.\n     */\n        },\n        {\n            key: '_createFormChildren',\n            value: function _createFormChildren(manualDecorators) {\n                var children = this.createCollection();\n                children.add(this.urlInputView);\n                if (manualDecorators.length) {\n                    var additionalButtonsView = new View();\n                    additionalButtonsView.setTemplate({\n                        tag: 'ul',\n                        children: this._manualDecoratorSwitches.map(function (switchButton) {\n                            return {\n                                tag: 'li',\n                                children: [switchButton],\n                                attributes: {\n                                    class: [\n                                        'ck',\n                                        'ck-list__item'\n                                    ]\n                                }\n                            };\n                        }),\n                        attributes: {\n                            class: [\n                                'ck',\n                                'ck-reset',\n                                'ck-list'\n                            ]\n                        }\n                    });\n                    children.add(additionalButtonsView);\n                }\n                children.add(this.saveButtonView);\n                children.add(this.cancelButtonView);\n                return children;\n            }\n        }\n    ]);\n    return LinkFormView;\n}(View);\n/**\n * Fired when the form view is submitted (when one of the children triggered the submit event),\n * for example with a click on {@link #saveButtonView}.\n *\n * @event submit\n */\n/**\n * Fired when the form view is canceled, for example with a click on {@link #cancelButtonView}.\n *\n * @event cancel\n */\nexport {\n    LinkFormView as default\n};","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module link/unlinkcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport findLinkRange from \"./findlinkrange\";\n/**\n * The unlink command. It is used by the {@link module:link/link~Link link plugin}.\n *\n * @extends module:core/command~Command\n */\n\nvar UnlinkCommand = /*#__PURE__*/function (_Command) {\n  _inherits(UnlinkCommand, _Command);\n\n  var _super = _createSuper(UnlinkCommand);\n\n  function UnlinkCommand() {\n    _classCallCheck(this, UnlinkCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(UnlinkCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      this.isEnabled = this.editor.model.document.selection.hasAttribute('linkHref');\n    }\n    /**\n     * Executes the command.\n     *\n     * When the selection is collapsed, it removes the `linkHref` attribute from each node with the same `linkHref` attribute value.\n     * When the selection is non-collapsed, it removes the `linkHref` attribute from each node in selected ranges.\n     *\n     * # Decorators\n     *\n     * If {@link module:link/link~LinkConfig#decorators `config.link.decorators`} is specified,\n     * all configured decorators are removed together with the `linkHref` attribute.\n     *\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var editor = this.editor;\n      var model = this.editor.model;\n      var selection = model.document.selection;\n      var linkCommand = editor.commands.get('link');\n      model.change(function (writer) {\n        // Get ranges to unlink.\n        var rangesToUnlink = selection.isCollapsed ? [findLinkRange(selection.getFirstPosition(), selection.getAttribute('linkHref'), model)] : selection.getRanges(); // Remove `linkHref` attribute from specified ranges.\n\n        var _iterator = _createForOfIteratorHelper(rangesToUnlink),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var range = _step.value;\n            writer.removeAttribute('linkHref', range); // If there are registered custom attributes, then remove them during unlink.\n\n            if (linkCommand) {\n              var _iterator2 = _createForOfIteratorHelper(linkCommand.manualDecorators),\n                  _step2;\n\n              try {\n                for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                  var manualDecorator = _step2.value;\n                  writer.removeAttribute(manualDecorator.id, range);\n                }\n              } catch (err) {\n                _iterator2.e(err);\n              } finally {\n                _iterator2.f();\n              }\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n  }]);\n\n  return UnlinkCommand;\n}(Command);\n\nexport { UnlinkCommand as default };","import _slicedToArray from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray';\nimport 'core-js/modules/es7.object.entries';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.regexp.match';\nimport 'core-js/modules/es6.regexp.replace';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module link/utils\n */\nimport { upperFirst } from 'lodash-es';\nvar ATTRIBUTE_WHITESPACES = /[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205f\\u3000]/g;\n// eslint-disable-line no-control-regex\nvar SAFE_URL = /^(?:(?:https?|ftps?|mailto):|[^a-z]|[a-z+.-]+(?:[^a-z+.:-]|$))/i;\n/**\n * Returns `true` if a given view node is the link element.\n *\n * @param {module:engine/view/node~Node} node\n * @returns {Boolean}\n */\nexport function isLinkElement(node) {\n    return node.is('attributeElement') && !!node.getCustomProperty('link');\n}\n/**\n * Creates link {@link module:engine/view/attributeelement~AttributeElement} with the provided `href` attribute.\n *\n * @param {String} href\n * @returns {module:engine/view/attributeelement~AttributeElement}\n */\nexport function createLinkElement(href, writer) {\n    // Priority 5 - https://github.com/ckeditor/ckeditor5-link/issues/121.\n    var linkElement = writer.createAttributeElement('a', { href: href }, { priority: 5 });\n    writer.setCustomProperty('link', true, linkElement);\n    return linkElement;\n}\n/**\n * Returns a safe URL based on a given value.\n *\n * A URL is considered safe if it is safe for the user (does not contain any malicious code).\n *\n * If a URL is considered unsafe, a simple `\"#\"` is returned.\n *\n * @protected\n * @param {*} url\n * @returns {String} Safe URL.\n */\nexport function ensureSafeUrl(url) {\n    url = String(url);\n    return isSafeUrl(url) ? url : '#';\n}\n// Checks whether the given URL is safe for the user (does not contain any malicious code).\n//\n// @param {String} url URL to check.\nfunction isSafeUrl(url) {\n    var normalizedUrl = url.replace(ATTRIBUTE_WHITESPACES, '');\n    return normalizedUrl.match(SAFE_URL);\n}\n/**\n * Returns the {@link module:link/link~LinkConfig#decorators `config.link.decorators`} configuration processed\n * to respect the locale of the editor, i.e. to display the {@link module:link/link~LinkDecoratorManualDefinition label}\n * in the correct language.\n *\n * **Note**: Only the few most commonly used labels are translated automatically. Other labels should be manually\n * translated in the {@link module:link/link~LinkConfig#decorators `config.link.decorators`} configuration.\n *\n * @param {module:utils/locale~Locale#t} t shorthand for {@link module:utils/locale~Locale#t Locale#t}\n * @param {Array.<module:link/link~LinkDecoratorDefinition>} The decorator reference\n * where the label values should be localized.\n * @returns {Array.<module:link/link~LinkDecoratorDefinition>}\n */\nexport function getLocalizedDecorators(t, decorators) {\n    var localizedDecoratorsLabels = {\n        'Open in a new tab': t('Open in a new tab'),\n        'Downloadable': t('Downloadable')\n    };\n    decorators.forEach(function (decorator) {\n        if (decorator.label && localizedDecoratorsLabels[decorator.label]) {\n            decorator.label = localizedDecoratorsLabels[decorator.label];\n        }\n        return decorator;\n    });\n    return decorators;\n}\n/**\n * Converts an object with defined decorators to a normalized array of decorators. The `id` key is added for each decorator and\n * is used as the attribute's name in the model.\n *\n * @param {Object.<String, module:link/link~LinkDecoratorDefinition>} decorators\n * @returns {Array.<module:link/link~LinkDecoratorDefinition>}\n */\nexport function normalizeDecorators(decorators) {\n    var retArray = [];\n    if (decorators) {\n        for (var _i = 0, _Object$entries = Object.entries(decorators); _i < _Object$entries.length; _i++) {\n            var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2), key = _Object$entries$_i[0], value = _Object$entries$_i[1];\n            var decorator = Object.assign({}, value, { id: 'link'.concat(upperFirst(key)) });\n            retArray.push(decorator);\n        }\n    }\n    return retArray;\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module link/utils\n */\n\n/**\n * Helper class that ties together all {@link module:link/link~LinkDecoratorAutomaticDefinition} and provides\n * a {@link module:engine/conversion/downcasthelpers~DowncastHelpers#attributeToElement downcast dispatcher} for them.\n */\nvar AutomaticDecorators = /*#__PURE__*/function () {\n  function AutomaticDecorators() {\n    _classCallCheck(this, AutomaticDecorators);\n\n    /**\n     * Stores the definition of {@link module:link/link~LinkDecoratorAutomaticDefinition automatic decorators}.\n     * This data is used as a source for a downcast dispatcher to create a proper conversion to output data.\n     *\n     * @private\n     * @type {Set}\n     */\n    this._definitions = new Set();\n  }\n  /**\n   * Gives information about the number of decorators stored in the {@link module:link/utils~AutomaticDecorators} instance.\n   *\n   * @readonly\n   * @protected\n   * @type {Number}\n   */\n\n\n  _createClass(AutomaticDecorators, [{\n    key: \"add\",\n\n    /**\n     * Adds automatic decorator objects or an array with them to be used during downcasting.\n     *\n     * @param {module:link/link~LinkDecoratorAutomaticDefinition|Array.<module:link/link~LinkDecoratorAutomaticDefinition>} item\n     * A configuration object of automatic rules for decorating links. It might also be an array of such objects.\n     */\n    value: function add(item) {\n      var _this = this;\n\n      if (Array.isArray(item)) {\n        item.forEach(function (item) {\n          return _this._definitions.add(item);\n        });\n      } else {\n        this._definitions.add(item);\n      }\n    }\n    /**\n     * Provides the conversion helper used in the {@link module:engine/conversion/downcasthelpers~DowncastHelpers#add} method.\n     *\n     * @returns {Function} A dispatcher function used as conversion helper\n     * in {@link module:engine/conversion/downcasthelpers~DowncastHelpers#add}.\n     */\n\n  }, {\n    key: \"getDispatcher\",\n    value: function getDispatcher() {\n      var _this2 = this;\n\n      return function (dispatcher) {\n        dispatcher.on('attribute:linkHref', function (evt, data, conversionApi) {\n          // There is only test as this behavior decorates links and\n          // it is run before dispatcher which actually consumes this node.\n          // This allows on writing own dispatcher with highest priority,\n          // which blocks both native converter and this additional decoration.\n          if (!conversionApi.consumable.test(data.item, 'attribute:linkHref')) {\n            return;\n          }\n\n          var viewWriter = conversionApi.writer;\n          var viewSelection = viewWriter.document.selection;\n\n          var _iterator = _createForOfIteratorHelper(_this2._definitions),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var item = _step.value;\n              var viewElement = viewWriter.createAttributeElement('a', item.attributes, {\n                priority: 5\n              });\n              viewWriter.setCustomProperty('link', true, viewElement);\n\n              if (item.callback(data.attributeNewValue)) {\n                if (data.item.is('selection')) {\n                  viewWriter.wrap(viewSelection.getFirstRange(), viewElement);\n                } else {\n                  viewWriter.wrap(conversionApi.mapper.toViewRange(data.range), viewElement);\n                }\n              } else {\n                viewWriter.unwrap(conversionApi.mapper.toViewRange(data.range), viewElement);\n              }\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        }, {\n          priority: 'high'\n        });\n      };\n    }\n  }, {\n    key: \"length\",\n    get: function get() {\n      return this._definitions.size;\n    }\n  }]);\n\n  return AutomaticDecorators;\n}();\n\nexport { AutomaticDecorators as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module link/utils\n */\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\n/**\n * Helper class that stores manual decorators with observable {@link module:link/utils~ManualDecorator#value}\n * to support integration with the UI state. An instance of this class is a model with the state of individual manual decorators.\n * These decorators are kept as collections in {@link module:link/linkcommand~LinkCommand#manualDecorators}.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar ManualDecorator =\n/**\n * Creates a new instance of {@link module:link/utils~ManualDecorator}.\n *\n * @param {Object} config\n * @param {String} config.id The name of the attribute used in the model that represents a given manual decorator.\n * For example: `'linkIsExternal'`.\n * @param {String} config.label The label used in the user interface to toggle the manual decorator.\n * @param {Object} config.attributes A set of attributes added to output data when the decorator is active for a specific link.\n * Attributes should keep the format of attributes defined in {@link module:engine/view/elementdefinition~ElementDefinition}.\n */\nfunction ManualDecorator(_ref) {\n  var id = _ref.id,\n      label = _ref.label,\n      attributes = _ref.attributes;\n\n  _classCallCheck(this, ManualDecorator);\n\n  /**\n   * An ID of a manual decorator which is the name of the attribute in the model, for example: 'linkManualDecorator0'.\n   *\n   * @type {String}\n   */\n  this.id = id;\n  /**\n   * The value of the current manual decorator. It reflects its state from the UI.\n   *\n   * @observable\n   * @member {Boolean} module:link/utils~ManualDecorator#value\n   */\n\n  this.set('value');\n  /**\n   * The label used in the user interface to toggle the manual decorator.\n   *\n   * @type {String}\n   */\n\n  this.label = label;\n  /**\n   * A set of attributes added to downcasted data when the decorator is activated for a specific link.\n   * Attributes should be added in a form of attributes defined in {@link module:engine/view/elementdefinition~ElementDefinition}.\n   *\n   * @type {Object}\n   */\n\n  this.attributes = attributes;\n};\n\nexport { ManualDecorator as default };\nmix(ManualDecorator, ObservableMixin);","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M11.077 15l.991-1.416a.75.75 0 1 1 1.229.86l-1.148 1.64a.748.748 0 0 1-.217.206 5.251 5.251 0 0 1-8.503-5.955.741.741 0 0 1 .12-.274l1.147-1.639a.75.75 0 1 1 1.228.86L4.933 10.7l.006.003a3.75 3.75 0 0 0 6.132 4.294l.006.004zm5.494-5.335a.748.748 0 0 1-.12.274l-1.147 1.639a.75.75 0 1 1-1.228-.86l.86-1.23a3.75 3.75 0 0 0-6.144-4.301l-.86 1.229a.75.75 0 0 1-1.229-.86l1.148-1.64a.748.748 0 0 1 .217-.206 5.251 5.251 0 0 1 8.503 5.955zm-4.563-2.532a.75.75 0 0 1 .184 1.045l-3.155 4.505a.75.75 0 1 1-1.229-.86l3.155-4.506a.75.75 0 0 1 1.045-.184z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M11.077 15l.991-1.416a.75.75 0 1 1 1.229.86l-1.148 1.64a.748.748 0 0 1-.217.206 5.251 5.251 0 0 1-8.503-5.955.741.741 0 0 1 .12-.274l1.147-1.639a.75.75 0 1 1 1.228.86L4.933 10.7l.006.003a3.75 3.75 0 0 0 6.132 4.294l.006.004zm5.494-5.335a.748.748 0 0 1-.12.274l-1.147 1.639a.75.75 0 1 1-1.228-.86l.86-1.23a3.75 3.75 0 0 0-6.144-4.301l-.86 1.229a.75.75 0 0 1-1.229-.86l1.148-1.64a.748.748 0 0 1 .217-.206 5.251 5.251 0 0 1 8.503 5.955zm-4.563-2.532a.75.75 0 0 1 .184 1.045l-3.155 4.505a.75.75 0 1 1-1.229-.86l3.155-4.506a.75.75 0 0 1 1.045-.184zm4.919 10.562l-1.414 1.414a.75.75 0 1 1-1.06-1.06l1.414-1.415-1.415-1.414a.75.75 0 0 1 1.061-1.06l1.414 1.414 1.414-1.415a.75.75 0 0 1 1.061 1.061l-1.414 1.414 1.414 1.415a.75.75 0 0 1-1.06 1.06l-1.415-1.414z\\\"/></svg>\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./link.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0c211d90\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./link.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./link.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./linkactions.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"77751f08\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./linkactions.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./linkactions.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./linkform.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1a344dd0\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./linkform.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./linkform.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module list/converters\n */\nimport { generateLiInUl, injectViewList, mergeViewLists, getSiblingListItem, positionAfterUiElements } from \"./utils\";\nimport TreeWalker from '@ckeditor/ckeditor5-engine/src/model/treewalker';\n/**\n * A model-to-view converter for the `listItem` model element insertion.\n *\n * It creates a `<ul><li></li><ul>` (or `<ol>`) view structure out of a `listItem` model element, inserts it at the correct\n * position, and merges the list with surrounding lists (if available).\n *\n * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert\n * @param {module:engine/model/model~Model} model Model instance.\n * @returns {Function} Returns a conversion callback.\n */\n\nexport function modelViewInsertion(model) {\n  return function (evt, data, conversionApi) {\n    var consumable = conversionApi.consumable;\n\n    if (!consumable.test(data.item, 'insert') || !consumable.test(data.item, 'attribute:listType') || !consumable.test(data.item, 'attribute:listIndent')) {\n      return;\n    }\n\n    consumable.consume(data.item, 'insert');\n    consumable.consume(data.item, 'attribute:listType');\n    consumable.consume(data.item, 'attribute:listIndent');\n    var modelItem = data.item;\n    var viewItem = generateLiInUl(modelItem, conversionApi);\n    injectViewList(modelItem, viewItem, conversionApi, model);\n  };\n}\n/**\n * A model-to-view converter for the `listItem` model element removal.\n *\n * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:remove\n * @param {module:engine/model/model~Model} model Model instance.\n * @returns {Function} Returns a conversion callback.\n */\n\nexport function modelViewRemove(model) {\n  return function (evt, data, conversionApi) {\n    var viewStart = conversionApi.mapper.toViewPosition(data.position).getLastMatchingPosition(function (value) {\n      return !value.item.is('li');\n    });\n    var viewItem = viewStart.nodeAfter;\n    var viewWriter = conversionApi.writer; // 1. Break the container after and before the list item.\n    // This will create a view list with one view list item - the one to remove.\n\n    viewWriter.breakContainer(viewWriter.createPositionBefore(viewItem));\n    viewWriter.breakContainer(viewWriter.createPositionAfter(viewItem)); // 2. Remove the list with the item to remove.\n\n    var viewList = viewItem.parent;\n    var viewListPrev = viewList.previousSibling;\n    var removeRange = viewWriter.createRangeOn(viewList);\n    var removed = viewWriter.remove(removeRange); // 3. Merge the whole created by breaking and removing the list.\n\n    if (viewListPrev && viewListPrev.nextSibling) {\n      mergeViewLists(viewWriter, viewListPrev, viewListPrev.nextSibling);\n    } // 4. Bring back nested list that was in the removed <li>.\n\n\n    var modelItem = conversionApi.mapper.toModelElement(viewItem);\n    hoistNestedLists(modelItem.getAttribute('listIndent') + 1, data.position, removeRange.start, viewItem, conversionApi, model); // 5. Unbind removed view item and all children.\n\n    var _iterator = _createForOfIteratorHelper(viewWriter.createRangeIn(removed).getItems()),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var child = _step.value;\n        conversionApi.mapper.unbindViewElement(child);\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    evt.stop();\n  };\n}\n/**\n * A model-to-view converter for the `type` attribute change on the `listItem` model element.\n *\n * This change means that the `<li>` element parent changes from `<ul>` to `<ol>` (or vice versa). This is accomplished\n * by breaking view elements and changing their name. The next {@link module:list/converters~modelViewMergeAfterChangeType}\n * converter will attempt to merge split nodes.\n *\n * Splitting this conversion into 2 steps makes it possible to add an additional conversion in the middle.\n * Check {@link module:list/todolistconverters~modelViewChangeType} to see an example of it.\n *\n * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data Additional information about the change.\n * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface.\n */\n\nexport function modelViewChangeType(evt, data, conversionApi) {\n  if (!conversionApi.consumable.consume(data.item, 'attribute:listType')) {\n    return;\n  }\n\n  var viewItem = conversionApi.mapper.toViewElement(data.item);\n  var viewWriter = conversionApi.writer; // Break the container after and before the list item.\n  // This will create a view list with one view list item -- the one that changed type.\n\n  viewWriter.breakContainer(viewWriter.createPositionBefore(viewItem));\n  viewWriter.breakContainer(viewWriter.createPositionAfter(viewItem)); // Change name of the view list that holds the changed view item.\n  // We cannot just change name property, because that would not render properly.\n\n  var viewList = viewItem.parent;\n  var listName = data.attributeNewValue == 'numbered' ? 'ol' : 'ul';\n  viewWriter.rename(listName, viewList);\n}\n/**\n * A model-to-view converter that attempts to merge nodes split by {@link module:list/converters~modelViewChangeType}.\n *\n * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data Additional information about the change.\n * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface.\n */\n\nexport function modelViewMergeAfterChangeType(evt, data, conversionApi) {\n  var viewItem = conversionApi.mapper.toViewElement(data.item);\n  var viewList = viewItem.parent;\n  var viewWriter = conversionApi.writer; // Merge the changed view list with other lists, if possible.\n\n  mergeViewLists(viewWriter, viewList, viewList.nextSibling);\n  mergeViewLists(viewWriter, viewList.previousSibling, viewList); // Consumable insertion of children inside the item. They are already handled by re-building the item in view.\n\n  var _iterator2 = _createForOfIteratorHelper(data.item.getChildren()),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var child = _step2.value;\n      conversionApi.consumable.consume(child, 'insert');\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n}\n/**\n * A model-to-view converter for the `listIndent` attribute change on the `listItem` model element.\n *\n * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:attribute\n * @param {module:engine/model/model~Model} model Model instance.\n * @returns {Function} Returns a conversion callback.\n */\n\nexport function modelViewChangeIndent(model) {\n  return function (evt, data, conversionApi) {\n    if (!conversionApi.consumable.consume(data.item, 'attribute:listIndent')) {\n      return;\n    }\n\n    var viewItem = conversionApi.mapper.toViewElement(data.item);\n    var viewWriter = conversionApi.writer; // 1. Break the container after and before the list item.\n    // This will create a view list with one view list item -- the one that changed type.\n\n    viewWriter.breakContainer(viewWriter.createPositionBefore(viewItem));\n    viewWriter.breakContainer(viewWriter.createPositionAfter(viewItem)); // 2. Extract view list with changed view list item and merge \"hole\" possibly created by breaking and removing elements.\n\n    var viewList = viewItem.parent;\n    var viewListPrev = viewList.previousSibling;\n    var removeRange = viewWriter.createRangeOn(viewList);\n    viewWriter.remove(removeRange);\n\n    if (viewListPrev && viewListPrev.nextSibling) {\n      mergeViewLists(viewWriter, viewListPrev, viewListPrev.nextSibling);\n    } // 3. Bring back nested list that was in the removed <li>.\n\n\n    hoistNestedLists(data.attributeOldValue + 1, data.range.start, removeRange.start, viewItem, conversionApi, model); // 4. Inject view list like it is newly inserted.\n\n    injectViewList(data.item, viewItem, conversionApi, model); // 5. Consume insertion of children inside the item. They are already handled by re-building the item in view.\n\n    var _iterator3 = _createForOfIteratorHelper(data.item.getChildren()),\n        _step3;\n\n    try {\n      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n        var child = _step3.value;\n        conversionApi.consumable.consume(child, 'insert');\n      }\n    } catch (err) {\n      _iterator3.e(err);\n    } finally {\n      _iterator3.f();\n    }\n  };\n}\n/**\n * A special model-to-view converter introduced by the {@link module:list/list~List list feature}. This converter is fired for\n * insert change of every model item, and should be fired before the actual converter. The converter checks whether the inserted\n * model item is a non-`listItem` element. If it is, and it is inserted inside a view list, the converter breaks the\n * list so the model element is inserted to the view parent element corresponding to its model parent element.\n *\n * The converter prevents such situations:\n *\n *\t\t// Model:                        // View:\n *\t\t<listItem>foo</listItem>         <ul>\n *\t\t<listItem>bar</listItem>             <li>foo</li>\n *\t\t                                     <li>bar</li>\n *\t\t                                 </ul>\n *\n *\t\t// After change:                 // Correct view guaranteed by this converter:\n *\t\t<listItem>foo</listItem>         <ul><li>foo</li></ul><p>xxx</p><ul><li>bar</li></ul>\n *\t\t<paragraph>xxx</paragraph>       // Instead of this wrong view state:\n *\t\t<listItem>bar</listItem>         <ul><li>foo</li><p>xxx</p><li>bar</li></ul>\n *\n * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:insert\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data Additional information about the change.\n * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface.\n */\n\nexport function modelViewSplitOnInsert(evt, data, conversionApi) {\n  if (data.item.name != 'listItem') {\n    var viewPosition = conversionApi.mapper.toViewPosition(data.range.start);\n    var viewWriter = conversionApi.writer;\n    var lists = []; // Break multiple ULs/OLs if there are.\n    //\n    // Imagine following list:\n    //\n    // 1 --------\n    //   1.1 --------\n    //     1.1.1 --------\n    //     1.1.2 --------\n    //     1.1.3 --------\n    //       1.1.3.1 --------\n    //   1.2 --------\n    //     1.2.1 --------\n    // 2 --------\n    //\n    // Insert paragraph after item 1.1.1:\n    //\n    // 1 --------\n    //   1.1 --------\n    //     1.1.1 --------\n    //\n    // Lorem ipsum.\n    //\n    //     1.1.2 --------\n    //     1.1.3 --------\n    //       1.1.3.1 --------\n    //   1.2 --------\n    //     1.2.1 --------\n    // 2 --------\n    //\n    // In this case 1.1.2 has to become beginning of a new list.\n    // We need to break list before 1.1.2 (obvious), then we need to break list also before 1.2.\n    // Then we need to move those broken pieces one after another and merge:\n    //\n    // 1 --------\n    //   1.1 --------\n    //     1.1.1 --------\n    //\n    // Lorem ipsum.\n    //\n    // 1.1.2 --------\n    //   1.1.3 --------\n    //     1.1.3.1 --------\n    // 1.2 --------\n    //   1.2.1 --------\n    // 2 --------\n    //\n\n    while (viewPosition.parent.name == 'ul' || viewPosition.parent.name == 'ol') {\n      viewPosition = viewWriter.breakContainer(viewPosition);\n\n      if (viewPosition.parent.name != 'li') {\n        break;\n      } // Remove lists that are after inserted element.\n      // They will be brought back later, below the inserted element.\n\n\n      var removeStart = viewPosition;\n      var removeEnd = viewWriter.createPositionAt(viewPosition.parent, 'end'); // Don't remove if there is nothing to remove.\n\n      if (!removeStart.isEqual(removeEnd)) {\n        var removed = viewWriter.remove(viewWriter.createRange(removeStart, removeEnd));\n        lists.push(removed);\n      }\n\n      viewPosition = viewWriter.createPositionAfter(viewPosition.parent);\n    } // Bring back removed lists.\n\n\n    if (lists.length > 0) {\n      for (var i = 0; i < lists.length; i++) {\n        var previousList = viewPosition.nodeBefore;\n        var insertedRange = viewWriter.insert(viewPosition, lists[i]);\n        viewPosition = insertedRange.end; // Don't merge first list! We want a split in that place (this is why this converter is introduced).\n\n        if (i > 0) {\n          var mergePos = mergeViewLists(viewWriter, previousList, previousList.nextSibling); // If `mergePos` is in `previousList` it means that the lists got merged.\n          // In this case, we need to fix insert position.\n\n          if (mergePos && mergePos.parent == previousList) {\n            viewPosition.offset--;\n          }\n        }\n      } // Merge last inserted list with element after it.\n\n\n      mergeViewLists(viewWriter, viewPosition.nodeBefore, viewPosition.nodeAfter);\n    }\n  }\n}\n/**\n * A special model-to-view converter introduced by the {@link module:list/list~List list feature}. This converter takes care of\n * merging view lists after something is removed or moved from near them.\n *\n * Example:\n *\n *\t\t// Model:                        // View:\n *\t\t<listItem>foo</listItem>         <ul><li>foo</li></ul>\n *\t\t<paragraph>xxx</paragraph>       <p>xxx</p>\n *\t\t<listItem>bar</listItem>         <ul><li>bar</li></ul>\n *\n *\t\t// After change:                 // Correct view guaranteed by this converter:\n *\t\t<listItem>foo</listItem>         <ul>\n *\t\t<listItem>bar</listItem>             <li>foo</li>\n *\t\t                                     <li>bar</li>\n *\t\t                                 </ul>\n *\n * @see module:engine/conversion/downcastdispatcher~DowncastDispatcher#event:remove\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data Additional information about the change.\n * @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi Conversion interface.\n */\n\nexport function modelViewMergeAfter(evt, data, conversionApi) {\n  var viewPosition = conversionApi.mapper.toViewPosition(data.position);\n  var viewItemPrev = viewPosition.nodeBefore;\n  var viewItemNext = viewPosition.nodeAfter; // Merge lists if something (remove, move) was done from inside of list.\n  // Merging will be done only if both items are view lists of the same type.\n  // The check is done inside the helper function.\n\n  mergeViewLists(conversionApi.writer, viewItemPrev, viewItemNext);\n}\n/**\n * A view-to-model converter that converts the `<li>` view elements into the `listItem` model elements.\n *\n * To set correct values of the `listType` and `listIndent` attributes the converter:\n * * checks `<li>`'s parent,\n * * stores and increases the `conversionApi.store.indent` value when `<li>`'s sub-items are converted.\n *\n * @see module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data An object containing conversion input and a placeholder for conversion output and possibly other values.\n * @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion interface to be used by the callback.\n */\n\nexport function viewModelConverter(evt, data, conversionApi) {\n  if (conversionApi.consumable.consume(data.viewItem, {\n    name: true\n  })) {\n    var writer = conversionApi.writer; // 1. Create `listItem` model element.\n\n    var listItem = writer.createElement('listItem'); // 2. Handle `listItem` model element attributes.\n\n    var indent = getIndent(data.viewItem);\n    writer.setAttribute('listIndent', indent, listItem); // Set 'bulleted' as default. If this item is pasted into a context,\n\n    var type = data.viewItem.parent && data.viewItem.parent.name == 'ol' ? 'numbered' : 'bulleted';\n    writer.setAttribute('listType', type, listItem); // Try to find allowed parent for list item.\n\n    var splitResult = conversionApi.splitToAllowedParent(listItem, data.modelCursor); // When there is no allowed parent it means that list item cannot be converted at current model position\n    // and in any of position ancestors.\n\n    if (!splitResult) {\n      return;\n    }\n\n    writer.insert(listItem, splitResult.position);\n    var nextPosition = viewToModelListItemChildrenConverter(listItem, data.viewItem.getChildren(), conversionApi); // Result range starts before the first item and ends after the last.\n\n    data.modelRange = writer.createRange(data.modelCursor, nextPosition); // When `data.modelCursor` parent had to be split to insert list item...\n\n    if (splitResult.cursorParent) {\n      // Continue conversion in the split element.\n      data.modelCursor = writer.createPositionAt(splitResult.cursorParent, 0);\n    } else {\n      // Otherwise continue conversion after the last list item.\n      data.modelCursor = data.modelRange.end;\n    }\n  }\n}\n/**\n * A view-to-model converter for the `<ul>` and `<ol>` view elements that cleans the input view of garbage.\n * This is mostly to clean whitespaces from between the `<li>` view elements inside the view list element, however, also\n * incorrect data can be cleared if the view was incorrect.\n *\n * @see module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data An object containing conversion input and a placeholder for conversion output and possibly other values.\n * @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion interface to be used by the callback.\n */\n\nexport function cleanList(evt, data, conversionApi) {\n  if (conversionApi.consumable.test(data.viewItem, {\n    name: true\n  })) {\n    // Caching children because when we start removing them iterating fails.\n    var children = Array.from(data.viewItem.getChildren());\n\n    for (var _i = 0, _children = children; _i < _children.length; _i++) {\n      var child = _children[_i];\n      var isWrongElement = !(child.is('li') || isList(child));\n\n      if (isWrongElement) {\n        child._remove();\n      }\n    }\n  }\n}\n/**\n * A view-to-model converter for the `<li>` elements that cleans whitespace formatting from the input view.\n *\n * @see module:engine/conversion/upcastdispatcher~UpcastDispatcher#event:element\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Object} data An object containing conversion input and a placeholder for conversion output and possibly other values.\n * @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion interface to be used by the callback.\n */\n\nexport function cleanListItem(evt, data, conversionApi) {\n  if (conversionApi.consumable.test(data.viewItem, {\n    name: true\n  })) {\n    if (data.viewItem.childCount === 0) {\n      return;\n    }\n\n    var children = _toConsumableArray(data.viewItem.getChildren());\n\n    var foundList = false;\n    var firstNode = true;\n\n    var _iterator4 = _createForOfIteratorHelper(children),\n        _step4;\n\n    try {\n      for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n        var child = _step4.value;\n\n        if (foundList && !isList(child)) {\n          child._remove();\n        }\n\n        if (child.is('text')) {\n          // If this is the first node and it's a text node, left-trim it.\n          if (firstNode) {\n            child._data = child.data.replace(/^\\s+/, '');\n          } // If this is the last text node before <ul> or <ol>, right-trim it.\n\n\n          if (!child.nextSibling || isList(child.nextSibling)) {\n            child._data = child.data.replace(/\\s+$/, '');\n          }\n        } else if (isList(child)) {\n          // If this is a <ul> or <ol>, do not process it, just mark that we already visited list element.\n          foundList = true;\n        }\n\n        firstNode = false;\n      }\n    } catch (err) {\n      _iterator4.e(err);\n    } finally {\n      _iterator4.f();\n    }\n  }\n}\n/**\n * Returns a callback for model position to view position mapping for {@link module:engine/conversion/mapper~Mapper}. The callback fixes\n * positions between the `listItem` elements that would be incorrectly mapped because of how list items are represented in the model\n * and in the view.\n *\n * @see module:engine/conversion/mapper~Mapper#event:modelToViewPosition\n * @param {module:engine/view/view~View} view A view instance.\n * @returns {Function}\n */\n\nexport function modelToViewPosition(view) {\n  return function (evt, data) {\n    if (data.isPhantom) {\n      return;\n    }\n\n    var modelItem = data.modelPosition.nodeBefore;\n\n    if (modelItem && modelItem.is('listItem')) {\n      var viewItem = data.mapper.toViewElement(modelItem);\n      var topmostViewList = viewItem.getAncestors().find(isList);\n      var walker = view.createPositionAt(viewItem, 0).getWalker();\n\n      var _iterator5 = _createForOfIteratorHelper(walker),\n          _step5;\n\n      try {\n        for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n          var value = _step5.value;\n\n          if (value.type == 'elementStart' && value.item.is('li')) {\n            data.viewPosition = value.previousPosition;\n            break;\n          } else if (value.type == 'elementEnd' && value.item == topmostViewList) {\n            data.viewPosition = value.nextPosition;\n            break;\n          }\n        }\n      } catch (err) {\n        _iterator5.e(err);\n      } finally {\n        _iterator5.f();\n      }\n    }\n  };\n}\n/**\n * The callback for view position to model position mapping for {@link module:engine/conversion/mapper~Mapper}. The callback fixes\n * positions between the `<li>` elements that would be incorrectly mapped because of how list items are represented in the model\n * and in the view.\n *\n * @see module:engine/conversion/mapper~Mapper#event:viewToModelPosition\n * @param {module:engine/model/model~Model} model Model instance.\n * @returns {Function} Returns a conversion callback.\n */\n\nexport function viewToModelPosition(model) {\n  return function (evt, data) {\n    var viewPos = data.viewPosition;\n    var viewParent = viewPos.parent;\n    var mapper = data.mapper;\n\n    if (viewParent.name == 'ul' || viewParent.name == 'ol') {\n      // Position is directly in <ul> or <ol>.\n      if (!viewPos.isAtEnd) {\n        // If position is not at the end, it must be before <li>.\n        // Get that <li>, map it to `listItem` and set model position before that `listItem`.\n        var modelNode = mapper.toModelElement(viewPos.nodeAfter);\n        data.modelPosition = model.createPositionBefore(modelNode);\n      } else {\n        // Position is at the end of <ul> or <ol>, so there is no <li> after it to be mapped.\n        // There is <li> before the position, but we cannot just map it to `listItem` and set model position after it,\n        // because that <li> may contain nested items.\n        // We will check \"model length\" of that <li>, in other words - how many `listItem`s are in that <li>.\n        var _modelNode = mapper.toModelElement(viewPos.nodeBefore);\n\n        var modelLength = mapper.getModelLength(viewPos.nodeBefore); // Then we get model position before mapped `listItem` and shift it accordingly.\n\n        data.modelPosition = model.createPositionBefore(_modelNode).getShiftedBy(modelLength);\n      }\n\n      evt.stop();\n    } else if (viewParent.name == 'li' && viewPos.nodeBefore && (viewPos.nodeBefore.name == 'ul' || viewPos.nodeBefore.name == 'ol')) {\n      // In most cases when view position is in <li> it is in text and this is a correct position.\n      // However, if position is after <ul> or <ol> we have to fix it -- because in model <ul>/<ol> are not in the `listItem`.\n      var _modelNode2 = mapper.toModelElement(viewParent); // Check all <ul>s and <ol>s that are in the <li> but before mapped position.\n      // Get model length of those elements and then add it to the offset of `listItem` mapped to the original <li>.\n\n\n      var _modelLength = 1; // Starts from 1 because the original <li> has to be counted in too.\n\n      var viewList = viewPos.nodeBefore;\n\n      while (viewList && isList(viewList)) {\n        _modelLength += mapper.getModelLength(viewList);\n        viewList = viewList.previousSibling;\n      }\n\n      data.modelPosition = model.createPositionBefore(_modelNode2).getShiftedBy(_modelLength);\n      evt.stop();\n    }\n  };\n}\n/**\n * Post-fixer that reacts to changes on document and fixes incorrect model states.\n *\n * In the example below, there is a correct list structure.\n * Then the middle element is removed so the list structure will become incorrect:\n *\n *\t\t<listItem listType=\"bulleted\" listIndent=0>Item 1</listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=1>Item 2</listItem>   <--- this is removed.\n *\t\t<listItem listType=\"bulleted\" listIndent=2>Item 3</listItem>\n *\n * The list structure after the middle element is removed:\n *\n * \t\t<listItem listType=\"bulleted\" listIndent=0>Item 1</listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=2>Item 3</listItem>\n *\n * Should become:\n *\n *\t\t<listItem listType=\"bulleted\" listIndent=0>Item 1</listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=1>Item 3</listItem>   <--- note that indent got post-fixed.\n *\n * @param {module:engine/model/model~Model} model The data model.\n * @param {module:engine/model/writer~Writer} writer The writer to do changes with.\n * @returns {Boolean} `true` if any change has been applied, `false` otherwise.\n */\n\nexport function modelChangePostFixer(model, writer) {\n  var changes = model.document.differ.getChanges();\n  var itemToListHead = new Map();\n  var applied = false;\n\n  var _iterator6 = _createForOfIteratorHelper(changes),\n      _step6;\n\n  try {\n    for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n      var entry = _step6.value;\n\n      if (entry.type == 'insert' && entry.name == 'listItem') {\n        _addListToFix(entry.position);\n      } else if (entry.type == 'insert' && entry.name != 'listItem') {\n        if (entry.name != '$text') {\n          // In case of renamed element.\n          var item = entry.position.nodeAfter;\n\n          if (item.hasAttribute('listIndent')) {\n            writer.removeAttribute('listIndent', item);\n            applied = true;\n          }\n\n          if (item.hasAttribute('listType')) {\n            writer.removeAttribute('listType', item);\n            applied = true;\n          }\n\n          var _iterator8 = _createForOfIteratorHelper(Array.from(model.createRangeIn(item)).filter(function (e) {\n            return e.item.is('listItem');\n          })),\n              _step8;\n\n          try {\n            for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n              var innerItem = _step8.value;\n\n              _addListToFix(innerItem.previousPosition);\n            }\n          } catch (err) {\n            _iterator8.e(err);\n          } finally {\n            _iterator8.f();\n          }\n        }\n\n        var posAfter = entry.position.getShiftedBy(entry.length);\n\n        _addListToFix(posAfter);\n      } else if (entry.type == 'remove' && entry.name == 'listItem') {\n        _addListToFix(entry.position);\n      } else if (entry.type == 'attribute' && entry.attributeKey == 'listIndent') {\n        _addListToFix(entry.range.start);\n      } else if (entry.type == 'attribute' && entry.attributeKey == 'listType') {\n        _addListToFix(entry.range.start);\n      }\n    }\n  } catch (err) {\n    _iterator6.e(err);\n  } finally {\n    _iterator6.f();\n  }\n\n  var _iterator7 = _createForOfIteratorHelper(itemToListHead.values()),\n      _step7;\n\n  try {\n    for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n      var listHead = _step7.value;\n\n      _fixListIndents(listHead);\n\n      _fixListTypes(listHead);\n    }\n  } catch (err) {\n    _iterator7.e(err);\n  } finally {\n    _iterator7.f();\n  }\n\n  return applied;\n\n  function _addListToFix(position) {\n    var prev = position.nodeBefore;\n\n    if (!prev || !prev.is('listItem')) {\n      var item = position.nodeAfter;\n\n      if (item && item.is('listItem')) {\n        itemToListHead.set(item, item);\n      }\n    } else {\n      var listHead = prev;\n\n      if (itemToListHead.has(listHead)) {\n        return;\n      }\n\n      while (listHead.previousSibling && listHead.previousSibling.is('listItem')) {\n        listHead = listHead.previousSibling;\n\n        if (itemToListHead.has(listHead)) {\n          return;\n        }\n      }\n\n      itemToListHead.set(position.nodeBefore, listHead);\n    }\n  }\n\n  function _fixListIndents(item) {\n    var maxIndent = 0;\n    var fixBy = null;\n\n    while (item && item.is('listItem')) {\n      var itemIndent = item.getAttribute('listIndent');\n\n      if (itemIndent > maxIndent) {\n        var newIndent = void 0;\n\n        if (fixBy === null) {\n          fixBy = itemIndent - maxIndent;\n          newIndent = maxIndent;\n        } else {\n          if (fixBy > itemIndent) {\n            fixBy = itemIndent;\n          }\n\n          newIndent = itemIndent - fixBy;\n        }\n\n        writer.setAttribute('listIndent', newIndent, item);\n        applied = true;\n      } else {\n        fixBy = null;\n        maxIndent = item.getAttribute('listIndent') + 1;\n      }\n\n      item = item.nextSibling;\n    }\n  }\n\n  function _fixListTypes(item) {\n    var typesStack = [];\n    var prev = null;\n\n    while (item && item.is('listItem')) {\n      var itemIndent = item.getAttribute('listIndent');\n\n      if (prev && prev.getAttribute('listIndent') > itemIndent) {\n        typesStack = typesStack.slice(0, itemIndent + 1);\n      }\n\n      if (itemIndent != 0) {\n        if (typesStack[itemIndent]) {\n          var type = typesStack[itemIndent];\n\n          if (item.getAttribute('listType') != type) {\n            writer.setAttribute('listType', type, item);\n            applied = true;\n          }\n        } else {\n          typesStack[itemIndent] = item.getAttribute('listType');\n        }\n      }\n\n      prev = item;\n      item = item.nextSibling;\n    }\n  }\n}\n/**\n * A fixer for pasted content that includes list items.\n *\n * It fixes indentation of pasted list items so the pasted items match correctly to the context they are pasted into.\n *\n * Example:\n *\n *\t\t<listItem listType=\"bulleted\" listIndent=0>A</listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=1>B^</listItem>\n *\t\t// At ^ paste:  <listItem listType=\"bulleted\" listIndent=4>X</listItem>\n *\t\t//              <listItem listType=\"bulleted\" listIndent=5>Y</listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=2>C</listItem>\n *\n * Should become:\n *\n *\t\t<listItem listType=\"bulleted\" listIndent=0>A</listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=1>BX</listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=2>Y/listItem>\n *\t\t<listItem listType=\"bulleted\" listIndent=2>C</listItem>\n *\n * @param {module:utils/eventinfo~EventInfo} evt An object containing information about the fired event.\n * @param {Array} args Arguments of {@link module:engine/model/model~Model#insertContent}.\n */\n\nexport function modelIndentPasteFixer(evt, _ref) {\n  var _ref2 = _slicedToArray(_ref, 2),\n      content = _ref2[0],\n      selectable = _ref2[1];\n\n  // Check whether inserted content starts from a `listItem`. If it does not, it means that there are some other\n  // elements before it and there is no need to fix indents, because even if we insert that content into a list,\n  // that list will be broken.\n  // Note: we also need to handle singular elements because inserting item with indent 0 into 0,1,[],2\n  // would create incorrect model.\n  var item = content.is('documentFragment') ? content.getChild(0) : content;\n  var selection;\n\n  if (!selectable) {\n    selection = this.document.selection;\n  } else {\n    selection = this.createSelection(selectable);\n  }\n\n  if (item && item.is('listItem')) {\n    // Get a reference list item. Inserted list items will be fixed according to that item.\n    var pos = selection.getFirstPosition();\n    var refItem = null;\n\n    if (pos.parent.is('listItem')) {\n      refItem = pos.parent;\n    } else if (pos.nodeBefore && pos.nodeBefore.is('listItem')) {\n      refItem = pos.nodeBefore;\n    } // If there is `refItem` it means that we do insert list items into an existing list.\n\n\n    if (refItem) {\n      // First list item in `data` has indent equal to 0 (it is a first list item). It should have indent equal\n      // to the indent of reference item. We have to fix the first item and all of it's children and following siblings.\n      // Indent of all those items has to be adjusted to reference item.\n      var indentChange = refItem.getAttribute('listIndent'); // Fix only if there is anything to fix.\n\n      if (indentChange > 0) {\n        // Adjust indent of all \"first\" list items in inserted data.\n        while (item && item.is('listItem')) {\n          item._setAttribute('listIndent', item.getAttribute('listIndent') + indentChange);\n\n          item = item.nextSibling;\n        }\n      }\n    }\n  }\n} // Helper function that converts children of a given `<li>` view element into corresponding model elements.\n// The function maintains proper order of elements if model `listItem` is split during the conversion\n// due to block children conversion.\n//\n// @param {module:engine/model/element~Element} listItemModel List item model element to which converted children will be inserted.\n// @param {Iterable.<module:engine/view/node~Node>} viewChildren View elements which will be converted.\n// @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion interface to be used by the callback.\n// @returns {module:engine/model/position~Position} Position on which next elements should be inserted after children conversion.\n\nfunction viewToModelListItemChildrenConverter(listItemModel, viewChildren, conversionApi) {\n  var writer = conversionApi.writer,\n      schema = conversionApi.schema; // A position after the last inserted `listItem`.\n\n  var nextPosition = writer.createPositionAfter(listItemModel); // Check all children of the converted `<li>`. At this point we assume there are no \"whitespace\" view text nodes\n  // in view list, between view list items. This should be handled by `<ul>` and `<ol>` converters.\n\n  var _iterator9 = _createForOfIteratorHelper(viewChildren),\n      _step9;\n\n  try {\n    for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n      var child = _step9.value;\n\n      if (child.name == 'ul' || child.name == 'ol') {\n        // If the children is a list, we will insert its conversion result after currently handled `listItem`.\n        // Then, next insertion position will be set after all the new list items (and maybe other elements if\n        // something split list item).\n        //\n        // If this is a list, we expect that some `listItem`s and possibly other blocks will be inserted, however `.modelCursor`\n        // should be set after last `listItem` (or block). This is why it feels safe to use it as `nextPosition`\n        nextPosition = conversionApi.convertItem(child, nextPosition).modelCursor;\n      } else {\n        // If this is not a list, try inserting content at the end of the currently handled `listItem`.\n        var result = conversionApi.convertItem(child, writer.createPositionAt(listItemModel, 'end')); // It may end up that the current `listItem` becomes split (if that content cannot be inside `listItem`). For example:\n        //\n        // <li><p>Foo</p></li>\n        //\n        // will be converted to:\n        //\n        // <listItem></listItem><paragraph>Foo</paragraph><listItem></listItem>\n        //\n\n        var convertedChild = result.modelRange.start.nodeAfter;\n        var wasSplit = convertedChild && convertedChild.is('element') && !schema.checkChild(listItemModel, convertedChild.name);\n\n        if (wasSplit) {\n          // As `lastListItem` got split, we need to update it to the second part of the split `listItem` element.\n          //\n          // `modelCursor` should be set to a position where the conversion should continue. There are multiple possible scenarios\n          // that may happen. Usually, `modelCursor` (marked as `#` below) would point to the second list item after conversion:\n          //\n          //\t\t`<li><p>Foo</p></li>` -> `<listItem></listItem><paragraph>Foo</paragraph><listItem>#</listItem>`\n          //\n          // However, in some cases, like auto-paragraphing, the position is placed at the end of the block element:\n          //\n          //\t\t`<li><div>Foo</div></li>` -> `<listItem></listItem><paragraph>Foo#</paragraph><listItem></listItem>`\n          //\n          // or after an element if another element broken auto-paragraphed element:\n          //\n          //\t\t`<li><div><h2>Foo</h2></div></li>` -> `<listItem></listItem><heading1>Foo</heading1>#<listItem></listItem>`\n          //\n          // We need to check for such cases and use proper list item and position based on it.\n          //\n          if (result.modelCursor.parent.is('listItem')) {\n            // (1).\n            listItemModel = result.modelCursor.parent;\n          } else {\n            // (2), (3).\n            listItemModel = findNextListItem(result.modelCursor);\n          }\n\n          nextPosition = writer.createPositionAfter(listItemModel);\n        }\n      }\n    }\n  } catch (err) {\n    _iterator9.e(err);\n  } finally {\n    _iterator9.f();\n  }\n\n  return nextPosition;\n} // Helper function that seeks for a next list item starting from given `startPosition`.\n\n\nfunction findNextListItem(startPosition) {\n  var treeWalker = new TreeWalker({\n    startPosition: startPosition\n  });\n  var value;\n\n  do {\n    value = treeWalker.next();\n  } while (!value.value.item.is('listItem'));\n\n  return value.value.item;\n} // Helper function that takes all children of given `viewRemovedItem` and moves them in a correct place, according\n// to other given parameters.\n\n\nfunction hoistNestedLists(nextIndent, modelRemoveStartPosition, viewRemoveStartPosition, viewRemovedItem, conversionApi, model) {\n  // Find correct previous model list item element.\n  // The element has to have either same or smaller indent than given reference indent.\n  // This will be the model element which will get nested items (if it has smaller indent) or sibling items (if it has same indent).\n  // Keep in mind that such element might not be found, if removed item was the first item.\n  var prevModelItem = getSiblingListItem(modelRemoveStartPosition.nodeBefore, {\n    sameIndent: true,\n    smallerIndent: true,\n    listIndent: nextIndent,\n    foo: 'b'\n  });\n  var mapper = conversionApi.mapper;\n  var viewWriter = conversionApi.writer; // Indent of found element or `null` if the element has not been found.\n\n  var prevIndent = prevModelItem ? prevModelItem.getAttribute('listIndent') : null;\n  var insertPosition;\n\n  if (!prevModelItem) {\n    // If element has not been found, simply insert lists at the position where the removed item was:\n    //\n    // Lorem ipsum.\n    // 1 --------           <--- this is removed, no previous list item, put nested items in place of removed item.\n    //   1.1 --------       <--- this is reference indent.\n    //     1.1.1 --------\n    //     1.1.2 --------\n    //   1.2 --------\n    //\n    // Becomes:\n    //\n    // Lorem ipsum.\n    // 1.1 --------\n    //   1.1.1 --------\n    //   1.1.2 --------\n    // 1.2 --------\n    insertPosition = viewRemoveStartPosition;\n  } else if (prevIndent == nextIndent) {\n    // If element has been found and has same indent as reference indent it means that nested items should\n    // become siblings of found element:\n    //\n    // 1 --------\n    //   1.1 --------\n    //   1.2 --------       <--- this is `prevModelItem`.\n    // 2 --------           <--- this is removed, previous list item has indent same as reference indent.\n    //   2.1 --------       <--- this is reference indent, this and 2.2 should become siblings of 1.2.\n    //   2.2 --------\n    //\n    // Becomes:\n    //\n    // 1 --------\n    //   1.1 --------\n    //   1.2 --------\n    //   2.1 --------\n    //   2.2 --------\n    var prevViewList = mapper.toViewElement(prevModelItem).parent;\n    insertPosition = viewWriter.createPositionAfter(prevViewList);\n  } else {\n    // If element has been found and has smaller indent as reference indent it means that nested items\n    // should become nested items of found item:\n    //\n    // 1 --------           <--- this is `prevModelItem`.\n    //   1.1 --------       <--- this is removed, previous list item has indent smaller than reference indent.\n    //     1.1.1 --------   <--- this is reference indent, this and 1.1.1 should become nested items of 1.\n    //     1.1.2 --------\n    //   1.2 --------\n    //\n    // Becomes:\n    //\n    // 1 --------\n    //   1.1.1 --------\n    //   1.1.2 --------\n    //   1.2 --------\n    //\n    // Note: in this case 1.1.1 have indent 2 while 1 have indent 0. In model that should not be possible,\n    // because following item may have indent bigger only by one. But this is fixed by postfixer.\n    var modelPosition = model.createPositionAt(prevModelItem, 'end');\n    insertPosition = mapper.toViewPosition(modelPosition);\n  }\n\n  insertPosition = positionAfterUiElements(insertPosition); // Handle multiple lists. This happens if list item has nested numbered and bulleted lists. Following lists\n  // are inserted after the first list (no need to recalculate insertion position for them).\n\n  for (var _i2 = 0, _arr = _toConsumableArray(viewRemovedItem.getChildren()); _i2 < _arr.length; _i2++) {\n    var child = _arr[_i2];\n\n    if (isList(child)) {\n      insertPosition = viewWriter.move(viewWriter.createRangeOn(child), insertPosition).end;\n      mergeViewLists(viewWriter, child, child.nextSibling);\n      mergeViewLists(viewWriter, child.previousSibling, child);\n    }\n  }\n} // Checks if view element is a list type (ul or ol).\n//\n// @param {module:engine/view/element~Element} viewElement\n// @returns {Boolean}\n\n\nfunction isList(viewElement) {\n  return viewElement.is('ol') || viewElement.is('ul');\n} // Calculates the indent value for a list item. Handles HTML compliant and non-compliant lists.\n//\n// Also, fixes non HTML compliant lists indents:\n//\n//\t\tbefore:                                     fixed list:\n//\t\tOL                                          OL\n//\t\t|-> LI (parent LIs: 0)                      |-> LI     (indent: 0)\n//\t\t    |-> OL                                  |-> OL\n//\t\t        |-> OL                                  |\n//\t\t        |   |-> OL                              |\n//\t\t        |       |-> OL                          |\n//\t\t        |           |-> LI (parent LIs: 1)      |-> LI (indent: 1)\n//\t\t        |-> LI (parent LIs: 1)                  |-> LI (indent: 1)\n//\n//\t\tbefore:                                     fixed list:\n//\t\tOL                                          OL\n//\t\t|-> OL                                      |\n//\t\t    |-> OL                                  |\n//\t\t         |-> OL                             |\n//\t\t             |-> LI (parent LIs: 0)         |-> LI        (indent: 0)\n//\n//\t\tbefore:                                     fixed list:\n//\t\tOL                                          OL\n//\t\t|-> LI (parent LIs: 0)                      |-> LI         (indent: 0)\n//\t\t|-> OL                                          |-> OL\n//\t\t    |-> LI (parent LIs: 0)                          |-> LI (indent: 1)\n//\n// @param {module:engine/view/element~Element} listItem\n// @param {Object} conversionStore\n// @returns {Number}\n\n\nfunction getIndent(listItem) {\n  var indent = 0;\n  var parent = listItem.parent;\n\n  while (parent) {\n    // Each LI in the tree will result in an increased indent for HTML compliant lists.\n    if (parent.is('li')) {\n      indent++;\n    } else {\n      // If however the list is nested in other list we should check previous sibling of any of the list elements...\n      var previousSibling = parent.previousSibling; // ...because the we might need increase its indent:\n      //\t\tbefore:                           fixed list:\n      //\t\tOL                                OL\n      //\t\t|-> LI (parent LIs: 0)            |-> LI         (indent: 0)\n      //\t\t|-> OL                                |-> OL\n      //\t\t    |-> LI (parent LIs: 0)                |-> LI (indent: 1)\n\n      if (previousSibling && previousSibling.is('li')) {\n        indent++;\n      }\n    }\n\n    parent = parent.parent;\n  }\n\n  return indent;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module list/indentcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * The list indent command. It is used by the {@link module:list/list~List list feature}.\n *\n * @extends module:core/command~Command\n */\n\nvar IndentCommand = /*#__PURE__*/function (_Command) {\n  _inherits(IndentCommand, _Command);\n\n  var _super = _createSuper(IndentCommand);\n\n  /**\n   * Creates an instance of the command.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor instance.\n   * @param {'forward'|'backward'} indentDirection The direction of indent. If it is equal to `backward`, the command\n   * will outdent a list item.\n   */\n  function IndentCommand(editor, indentDirection) {\n    var _this;\n\n    _classCallCheck(this, IndentCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * Determines by how much the command will change the list item's indent attribute.\n     *\n     * @readonly\n     * @private\n     * @member {Number}\n     */\n\n    _this._indentBy = indentDirection == 'forward' ? 1 : -1;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(IndentCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      this.isEnabled = this._checkEnabled();\n    }\n    /**\n     * Indents or outdents (depending on the {@link #constructor}'s `indentDirection` parameter) selected list items.\n     *\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this2 = this;\n\n      var model = this.editor.model;\n      var doc = model.document;\n      var itemsToChange = Array.from(doc.selection.getSelectedBlocks());\n      model.change(function (writer) {\n        var lastItem = itemsToChange[itemsToChange.length - 1]; // Indenting a list item should also indent all the items that are already sub-items of indented item.\n\n        var next = lastItem.nextSibling; // Check all items after last indented item, as long as their indent is bigger than indent of that item.\n\n        while (next && next.name == 'listItem' && next.getAttribute('listIndent') > lastItem.getAttribute('listIndent')) {\n          itemsToChange.push(next);\n          next = next.nextSibling;\n        } // We need to be sure to keep model in correct state after each small change, because converters\n        // bases on that state and assumes that model is correct.\n        // Because of that, if the command outdents items, we will outdent them starting from the last item, as\n        // it is safer.\n\n\n        if (_this2._indentBy < 0) {\n          itemsToChange = itemsToChange.reverse();\n        }\n\n        var _iterator = _createForOfIteratorHelper(itemsToChange),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var item = _step.value;\n\n            var indent = item.getAttribute('listIndent') + _this2._indentBy; // If indent is lower than 0, it means that the item got outdented when it was not indented.\n            // This means that we need to convert that list item to paragraph.\n\n\n            if (indent < 0) {\n              // To keep the model as correct as possible, first rename listItem, then remove attributes,\n              // as listItem without attributes is very incorrect and will cause problems in converters.\n              // No need to remove attributes, will be removed by post fixer.\n              writer.rename(item, 'paragraph');\n            } // If indent is >= 0, change the attribute value.\n            else {\n                writer.setAttribute('listIndent', indent, item);\n              }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n    /**\n     * Checks whether the command can be enabled in the current context.\n     *\n     * @private\n     * @returns {Boolean} Whether the command should be enabled.\n     */\n\n  }, {\n    key: \"_checkEnabled\",\n    value: function _checkEnabled() {\n      // Check whether any of position's ancestor is a list item.\n      var listItem = first(this.editor.model.document.selection.getSelectedBlocks()); // If selection is not in a list item, the command is disabled.\n\n      if (!listItem || !listItem.is('listItem')) {\n        return false;\n      }\n\n      if (this._indentBy > 0) {\n        // Cannot indent first item in it's list. Check if before `listItem` is a list item that is in same list.\n        // To be in the same list, the item has to have same attributes and cannot be \"split\" by an item with lower indent.\n        var indent = listItem.getAttribute('listIndent');\n        var type = listItem.getAttribute('listType');\n        var prev = listItem.previousSibling;\n\n        while (prev && prev.is('listItem') && prev.getAttribute('listIndent') >= indent) {\n          if (prev.getAttribute('listIndent') == indent) {\n            // The item is on the same level.\n            // If it has same type, it means that we found a preceding sibling from the same list.\n            // If it does not have same type, it means that `listItem` is on different list (this can happen only\n            // on top level lists, though).\n            return prev.getAttribute('listType') == type;\n          }\n\n          prev = prev.previousSibling;\n        } // Could not find similar list item, this means that `listItem` is first in its list.\n\n\n        return false;\n      } // If we are outdenting it is enough to be in list item. Every list item can always be outdented.\n\n\n      return true;\n    }\n  }]);\n\n  return IndentCommand;\n}(Command);\n\nexport { IndentCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module list/list\n */\nimport ListEditing from \"./listediting\";\nimport ListUI from \"./listui\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * The list feature.\n *\n * This is a \"glue\" plugin that loads the {@link module:list/listediting~ListEditing list editing feature}\n * and {@link module:list/listui~ListUI list UI feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar List = /*#__PURE__*/function (_Plugin) {\n  _inherits(List, _Plugin);\n\n  var _super = _createSuper(List);\n\n  function List() {\n    _classCallCheck(this, List);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(List, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [ListEditing, ListUI];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'List';\n    }\n  }]);\n\n  return List;\n}(Plugin);\n\nexport { List as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.number.constructor\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module list/listcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * The list command. It is used by the {@link module:list/list~List list feature}.\n *\n * @extends module:core/command~Command\n */\n\nvar ListCommand = /*#__PURE__*/function (_Command) {\n  _inherits(ListCommand, _Command);\n\n  var _super = _createSuper(ListCommand);\n\n  /**\n   * Creates an instance of the command.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor instance.\n   * @param {'numbered'|'bulleted'} type List type that will be handled by this command.\n   */\n  function ListCommand(editor, type) {\n    var _this;\n\n    _classCallCheck(this, ListCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The type of the list created by the command.\n     *\n     * @readonly\n     * @member {'numbered'|'bulleted'|'todo'}\n     */\n\n    _this.type = type;\n    /**\n     * A flag indicating whether the command is active, which means that the selection starts in a list of the same type.\n     *\n     * @observable\n     * @readonly\n     * @member {Boolean} #value\n     */\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ListCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      this.value = this._getValue();\n      this.isEnabled = this._checkEnabled();\n    }\n    /**\n     * Executes the command.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this2 = this;\n\n      var model = this.editor.model;\n      var document = model.document;\n      var blocks = Array.from(document.selection.getSelectedBlocks()).filter(function (block) {\n        return checkCanBecomeListItem(block, model.schema);\n      }); // Whether we are turning off some items.\n\n      var turnOff = this.value === true; // If we are turning off items, we are going to rename them to paragraphs.\n\n      model.change(function (writer) {\n        // If part of a list got turned off, we need to handle (outdent) all of sub-items of the last turned-off item.\n        // To be sure that model is all the time in a good state, we first fix items below turned-off item.\n        if (turnOff) {\n          // Start from the model item that is just after the last turned-off item.\n          var next = blocks[blocks.length - 1].nextSibling;\n          var currentIndent = Number.POSITIVE_INFINITY;\n          var changes = []; // Correct indent of all items after the last turned off item.\n          // Rules that should be followed:\n          // 1. All direct sub-items of turned-off item should become indent 0, because the first item after it\n          //    will be the first item of a new list. Other items are at the same level, so should have same 0 index.\n          // 2. All items with indent lower than indent of turned-off item should become indent 0, because they\n          //    should not end up as a child of any of list items that they were not children of before.\n          // 3. All other items should have their indent changed relatively to it's parent.\n          //\n          // For example:\n          // 1  * --------\n          // 2     * --------\n          // 3        * --------\t\t\t<-- this is turned off.\n          // 4           * --------\t\t<-- this has to become indent = 0, because it will be first item on a new list.\n          // 5              * --------\t<-- this should be still be a child of item above, so indent = 1.\n          // 6        * --------\t\t\t<-- this has to become indent = 0, because it should not be a child of any of items above.\n          // 7           * --------\t\t<-- this should be still be a child of item above, so indent = 1.\n          // 8     * --------\t\t\t\t<-- this has to become indent = 0.\n          // 9        * --------\t\t\t<-- this should still be a child of item above, so indent = 1.\n          // 10          * --------\t\t<-- this should still be a child of item above, so indent = 2.\n          // 11          * --------\t\t<-- this should still be at the same level as item above, so indent = 2.\n          // 12 * --------\t\t\t\t<-- this and all below are left unchanged.\n          // 13    * --------\n          // 14       * --------\n          //\n          // After turning off 3 the list becomes:\n          //\n          // 1  * --------\n          // 2     * --------\n          //\n          // 3  --------\n          //\n          // 4  * --------\n          // 5     * --------\n          // 6  * --------\n          // 7     * --------\n          // 8  * --------\n          // 9     * --------\n          // 10       * --------\n          // 11       * --------\n          // 12 * --------\n          // 13    * --------\n          // 14       * --------\n          //\n          // Thanks to this algorithm no lists are mismatched and no items get unexpected children/parent, while\n          // those parent-child connection which are possible to maintain are still maintained. It's worth noting\n          // that this is the same effect that we would be get by multiple use of outdent command. However doing\n          // it like this is much more efficient because it's less operation (less memory usage, easier OT) and\n          // less conversion (faster).\n\n          while (next && next.name == 'listItem' && next.getAttribute('listIndent') !== 0) {\n            // Check each next list item, as long as its indent is bigger than 0.\n            // If the indent is 0 we are not going to change anything anyway.\n            var indent = next.getAttribute('listIndent'); // We check if that's item indent is lower as current relative indent.\n\n            if (indent < currentIndent) {\n              // If it is, current relative indent becomes that indent.\n              currentIndent = indent;\n            } // Fix indent relatively to current relative indent.\n            // Note, that if we just changed the current relative indent, the newIndent will be equal to 0.\n\n\n            var newIndent = indent - currentIndent; // Save the entry in changes array. We do not apply it at the moment, because we will need to\n            // reverse the changes so the last item is changed first.\n            // This is to keep model in correct state all the time.\n\n            changes.push({\n              element: next,\n              listIndent: newIndent\n            }); // Find next item.\n\n            next = next.nextSibling;\n          }\n\n          changes = changes.reverse();\n\n          var _iterator = _createForOfIteratorHelper(changes),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var item = _step.value;\n              writer.setAttribute('listIndent', item.listIndent, item.element);\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        } // If we are turning on, we might change some items that are already `listItem`s but with different type.\n        // Changing one nested list item to other type should also trigger changing all its siblings so the\n        // whole nested list is of the same type.\n        // Example (assume changing to numbered list):\n        // * ------\t\t\t\t<-- do not fix, top level item\n        //   * ------\t\t\t<-- fix, because latter list item of this item's list is changed\n        //      * ------\t\t<-- do not fix, item is not affected (different list)\n        //   * ------\t\t\t<-- fix, because latter list item of this item's list is changed\n        //      * ------\t\t<-- fix, because latter list item of this item's list is changed\n        //      * ---[--\t\t<-- already in selection\n        //   * ------\t\t\t<-- already in selection\n        //   * ------\t\t\t<-- already in selection\n        // * ------\t\t\t\t<-- already in selection, but does not cause other list items to change because is top-level\n        //   * ---]--\t\t\t<-- already in selection\n        //   * ------\t\t\t<-- fix, because preceding list item of this item's list is changed\n        //      * ------\t\t<-- do not fix, item is not affected (different list)\n        // * ------\t\t\t\t<-- do not fix, top level item\n\n\n        if (!turnOff) {\n          // Find lowest indent among selected items. This will be indicator what is the indent of\n          // top-most list affected by the command.\n          var lowestIndent = Number.POSITIVE_INFINITY;\n\n          var _iterator2 = _createForOfIteratorHelper(blocks),\n              _step2;\n\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n              var _item = _step2.value;\n\n              if (_item.is('listItem') && _item.getAttribute('listIndent') < lowestIndent) {\n                lowestIndent = _item.getAttribute('listIndent');\n              }\n            } // Do not execute the fix for top-level lists.\n\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n\n          lowestIndent = lowestIndent === 0 ? 1 : lowestIndent; // Fix types of list items that are \"before\" the selected blocks.\n\n          _fixType(blocks, true, lowestIndent); // Fix types of list items that are \"after\" the selected blocks.\n\n\n          _fixType(blocks, false, lowestIndent);\n        } // Phew! Now it will be easier :).\n        // For each block element that was in the selection, we will either: turn it to list item,\n        // turn it to paragraph, or change it's type. Or leave it as it is.\n        // Do it in reverse as there might be multiple blocks (same as with changing indents).\n\n\n        var _iterator3 = _createForOfIteratorHelper(blocks.reverse()),\n            _step3;\n\n        try {\n          for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n            var element = _step3.value;\n\n            if (turnOff && element.name == 'listItem') {\n              // We are turning off and the element is a `listItem` - it should be converted to `paragraph`.\n              // List item specific attributes are removed by post fixer.\n              writer.rename(element, 'paragraph');\n            } else if (!turnOff && element.name != 'listItem') {\n              // We are turning on and the element is not a `listItem` - it should be converted to `listItem`.\n              // The order of operations is important to keep model in correct state.\n              writer.setAttributes({\n                listType: _this2.type,\n                listIndent: 0\n              }, element);\n              writer.rename(element, 'listItem');\n            } else if (!turnOff && element.name == 'listItem' && element.getAttribute('listType') != _this2.type) {\n              // We are turning on and the element is a `listItem` but has different type - change it's type and\n              // type of it's all siblings that have same indent.\n              writer.setAttribute('listType', _this2.type, element);\n            }\n          }\n        } catch (err) {\n          _iterator3.e(err);\n        } finally {\n          _iterator3.f();\n        }\n      });\n    }\n    /**\n     * Checks the command's {@link #value}.\n     *\n     * @private\n     * @returns {Boolean} The current value.\n     */\n\n  }, {\n    key: \"_getValue\",\n    value: function _getValue() {\n      // Check whether closest `listItem` ancestor of the position has a correct type.\n      var listItem = first(this.editor.model.document.selection.getSelectedBlocks());\n      return !!listItem && listItem.is('listItem') && listItem.getAttribute('listType') == this.type;\n    }\n    /**\n     * Checks whether the command can be enabled in the current context.\n     *\n     * @private\n     * @returns {Boolean} Whether the command should be enabled.\n     */\n\n  }, {\n    key: \"_checkEnabled\",\n    value: function _checkEnabled() {\n      // If command value is true it means that we are in list item, so the command should be enabled.\n      if (this.value) {\n        return true;\n      }\n\n      var selection = this.editor.model.document.selection;\n      var schema = this.editor.model.schema;\n      var firstBlock = first(selection.getSelectedBlocks());\n\n      if (!firstBlock) {\n        return false;\n      } // Otherwise, check if list item can be inserted at the position start.\n\n\n      return checkCanBecomeListItem(firstBlock, schema);\n    }\n  }]);\n\n  return ListCommand;\n}(Command); // Helper function used when one or more list item have their type changed. Fixes type of other list items\n// that are affected by the change (are in same lists) but are not directly in selection. The function got extracted\n// not to duplicated code, as same fix has to be performed before and after selection.\n//\n// @param {Array.<module:engine/model/node~Node>} blocks Blocks that are in selection.\n// @param {Boolean} isBackward Specified whether fix will be applied for blocks before first selected block (`true`)\n// or blocks after last selected block (`false`).\n// @param {Number} lowestIndent Lowest indent among selected blocks.\n\n\nexport { ListCommand as default };\n\nfunction _fixType(blocks, isBackward, lowestIndent) {\n  // We need to check previous sibling of first changed item and next siblings of last changed item.\n  var startingItem = isBackward ? blocks[0] : blocks[blocks.length - 1];\n\n  if (startingItem.is('listItem')) {\n    var item = startingItem[isBackward ? 'previousSibling' : 'nextSibling']; // During processing items, keeps the lowest indent of already processed items.\n    // This saves us from changing too many items.\n    // Following example is for going forward as it is easier to read, however same applies to going backward.\n    // * ------\n    //   * ------\n    //     * --[---\n    //   * ------\t\t<-- `lowestIndent` should be 1\n    //     * --]---\t\t<-- `startingItem`, `currentIndent` = 2, `lowestIndent` == 1\n    //     * ------\t\t<-- should be fixed, `indent` == 2 == `currentIndent`\n    //   * ------\t\t<-- should be fixed, set `currentIndent` to 1, `indent` == 1 == `currentIndent`\n    //     * ------\t\t<-- should not be fixed, item is in different list, `indent` = 2, `indent` != `currentIndent`\n    //   * ------\t\t<-- should be fixed, `indent` == 1 == `currentIndent`\n    // * ------\t\t\t<-- break loop (`indent` < `lowestIndent`)\n\n    var currentIndent = startingItem.getAttribute('listIndent'); // Look back until a list item with indent lower than reference `lowestIndent`.\n    // That would be the parent of nested sublist which contains item having `lowestIndent`.\n\n    while (item && item.is('listItem') && item.getAttribute('listIndent') >= lowestIndent) {\n      if (currentIndent > item.getAttribute('listIndent')) {\n        currentIndent = item.getAttribute('listIndent');\n      } // Found an item that is in the same nested sublist.\n\n\n      if (item.getAttribute('listIndent') == currentIndent) {\n        // Just add the item to selected blocks like it was selected by the user.\n        blocks[isBackward ? 'unshift' : 'push'](item);\n      }\n\n      item = item[isBackward ? 'previousSibling' : 'nextSibling'];\n    }\n  }\n} // Checks whether the given block can be replaced by a listItem.\n//\n// @private\n// @param {module:engine/model/element~Element} block A block to be tested.\n// @param {module:engine/model/schema~Schema} schema The schema of the document.\n// @returns {Boolean}\n\n\nfunction checkCanBecomeListItem(block, schema) {\n  return schema.checkChild(block.parent, 'listItem') && !schema.isObject(block);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module list/listediting\n */\nimport ListCommand from \"./listcommand\";\nimport IndentCommand from \"./indentcommand\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Paragraph from '@ckeditor/ckeditor5-paragraph/src/paragraph';\nimport { cleanList, cleanListItem, modelViewInsertion, modelViewChangeType, modelViewMergeAfterChangeType, modelViewMergeAfter, modelViewRemove, modelViewSplitOnInsert, modelViewChangeIndent, modelChangePostFixer, modelIndentPasteFixer, viewModelConverter, modelToViewPosition, viewToModelPosition } from \"./converters\";\n/**\n * The engine of the list feature. It handles creating, editing and removing lists and list items.\n *\n * It registers the `'numberedList'`, `'bulletedList'`, `'indentList'` and `'outdentList'` commands.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar ListEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(ListEditing, _Plugin);\n\n  var _super = _createSuper(ListEditing);\n\n  function ListEditing() {\n    _classCallCheck(this, ListEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ListEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var _this = this;\n\n      var editor = this.editor; // Schema.\n      // Note: in case `$block` will ever be allowed in `listItem`, keep in mind that this feature\n      // uses `Selection#getSelectedBlocks()` without any additional processing to obtain all selected list items.\n      // If there are blocks allowed inside list item, algorithms using `getSelectedBlocks()` will have to be modified.\n\n      editor.model.schema.register('listItem', {\n        inheritAllFrom: '$block',\n        allowAttributes: ['listType', 'listIndent']\n      }); // Converters.\n\n      var data = editor.data;\n      var editing = editor.editing;\n      editor.model.document.registerPostFixer(function (writer) {\n        return modelChangePostFixer(editor.model, writer);\n      });\n      editing.mapper.registerViewToModelLength('li', getViewListItemLength);\n      data.mapper.registerViewToModelLength('li', getViewListItemLength);\n      editing.mapper.on('modelToViewPosition', modelToViewPosition(editing.view));\n      editing.mapper.on('viewToModelPosition', viewToModelPosition(editor.model));\n      data.mapper.on('modelToViewPosition', modelToViewPosition(editing.view));\n      editing.downcastDispatcher.on('insert', modelViewSplitOnInsert, {\n        priority: 'high'\n      });\n      editing.downcastDispatcher.on('insert:listItem', modelViewInsertion(editor.model));\n      data.downcastDispatcher.on('insert', modelViewSplitOnInsert, {\n        priority: 'high'\n      });\n      data.downcastDispatcher.on('insert:listItem', modelViewInsertion(editor.model));\n      editing.downcastDispatcher.on('attribute:listType:listItem', modelViewChangeType, {\n        priority: 'high'\n      });\n      editing.downcastDispatcher.on('attribute:listType:listItem', modelViewMergeAfterChangeType, {\n        priority: 'low'\n      });\n      editing.downcastDispatcher.on('attribute:listIndent:listItem', modelViewChangeIndent(editor.model));\n      editing.downcastDispatcher.on('remove:listItem', modelViewRemove(editor.model));\n      editing.downcastDispatcher.on('remove', modelViewMergeAfter, {\n        priority: 'low'\n      });\n      data.upcastDispatcher.on('element:ul', cleanList, {\n        priority: 'high'\n      });\n      data.upcastDispatcher.on('element:ol', cleanList, {\n        priority: 'high'\n      });\n      data.upcastDispatcher.on('element:li', cleanListItem, {\n        priority: 'high'\n      });\n      data.upcastDispatcher.on('element:li', viewModelConverter); // Fix indentation of pasted items.\n\n      editor.model.on('insertContent', modelIndentPasteFixer, {\n        priority: 'high'\n      }); // Register commands for numbered and bulleted list.\n\n      editor.commands.add('numberedList', new ListCommand(editor, 'numbered'));\n      editor.commands.add('bulletedList', new ListCommand(editor, 'bulleted')); // Register commands for indenting.\n\n      editor.commands.add('indentList', new IndentCommand(editor, 'forward'));\n      editor.commands.add('outdentList', new IndentCommand(editor, 'backward'));\n      var viewDocument = editing.view.document; // Overwrite default Enter key behavior.\n      // If Enter key is pressed with selection collapsed in empty list item, outdent it instead of breaking it.\n\n      this.listenTo(viewDocument, 'enter', function (evt, data) {\n        var doc = _this.editor.model.document;\n        var positionParent = doc.selection.getLastPosition().parent;\n\n        if (doc.selection.isCollapsed && positionParent.name == 'listItem' && positionParent.isEmpty) {\n          _this.editor.execute('outdentList');\n\n          data.preventDefault();\n          evt.stop();\n        }\n      }); // Overwrite default Backspace key behavior.\n      // If Backspace key is pressed with selection collapsed on first position in first list item, outdent it. #83\n\n      this.listenTo(viewDocument, 'delete', function (evt, data) {\n        // Check conditions from those that require less computations like those immediately available.\n        if (data.direction !== 'backward') {\n          return;\n        }\n\n        var selection = _this.editor.model.document.selection;\n\n        if (!selection.isCollapsed) {\n          return;\n        }\n\n        var firstPosition = selection.getFirstPosition();\n\n        if (!firstPosition.isAtStart) {\n          return;\n        }\n\n        var positionParent = firstPosition.parent;\n\n        if (positionParent.name !== 'listItem') {\n          return;\n        }\n\n        var previousIsAListItem = positionParent.previousSibling && positionParent.previousSibling.name === 'listItem';\n\n        if (previousIsAListItem) {\n          return;\n        }\n\n        _this.editor.execute('outdentList');\n\n        data.preventDefault();\n        evt.stop();\n      }, {\n        priority: 'high'\n      });\n\n      var getCommandExecuter = function getCommandExecuter(commandName) {\n        return function (data, cancel) {\n          var command = _this.editor.commands.get(commandName);\n\n          if (command.isEnabled) {\n            _this.editor.execute(commandName);\n\n            cancel();\n          }\n        };\n      };\n\n      editor.keystrokes.set('Tab', getCommandExecuter('indentList'));\n      editor.keystrokes.set('Shift+Tab', getCommandExecuter('outdentList'));\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"afterInit\",\n    value: function afterInit() {\n      var commands = this.editor.commands;\n      var indent = commands.get('indent');\n      var outdent = commands.get('outdent');\n\n      if (indent) {\n        indent.registerChildCommand(commands.get('indentList'));\n      }\n\n      if (outdent) {\n        outdent.registerChildCommand(commands.get('outdentList'));\n      }\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'ListEditing';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"requires\",\n    get: function get() {\n      return [Paragraph];\n    }\n  }]);\n\n  return ListEditing;\n}(Plugin);\n\nexport { ListEditing as default };\n\nfunction getViewListItemLength(element) {\n  var length = 1;\n\n  var _iterator = _createForOfIteratorHelper(element.getChildren()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var child = _step.value;\n\n      if (child.name == 'ul' || child.name == 'ol') {\n        var _iterator2 = _createForOfIteratorHelper(child.getChildren()),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var item = _step2.value;\n            length += getViewListItemLength(item);\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return length;\n}","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module list/listui\n */\nimport { createUIComponent } from './utils';\nimport numberedListIcon from '../theme/icons/numberedlist.svg';\nimport bulletedListIcon from '../theme/icons/bulletedlist.svg';\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * The list UI feature. It introduces the `'numberedList'` and `'bulletedList'` buttons that\n * allow to convert paragraphs to and from list items and indent or outdent them.\n *\n * @extends module:core/plugin~Plugin\n */\nvar ListUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ListUI, _Plugin);\n    var _super = _createSuper(ListUI);\n    function ListUI() {\n        _classCallCheck(this, ListUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(ListUI, [{\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var t = this.editor.t;\n                // Create two buttons and link them with numberedList and bulletedList commands.\n                createUIComponent(this.editor, 'numberedList', t('Numbered List'), numberedListIcon);\n                createUIComponent(this.editor, 'bulletedList', t('Bulleted List'), bulletedListIcon);\n            }\n        }]);\n    return ListUI;\n}(Plugin);\nexport {\n    ListUI as default\n};","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module list/utils\n */\nimport { getFillerOffset } from '@ckeditor/ckeditor5-engine/src/view/containerelement';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\n/**\n * Creates a list item {@link module:engine/view/containerelement~ContainerElement}.\n *\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer The writer instance.\n * @returns {module:engine/view/containerelement~ContainerElement}\n */\n\nexport function createViewListItemElement(writer) {\n  var viewItem = writer.createContainerElement('li');\n  viewItem.getFillerOffset = getListItemFillerOffset;\n  return viewItem;\n}\n/**\n * Helper function that creates a `<ul><li></li></ul>` or (`<ol>`) structure out of the given `modelItem` model `listItem` element.\n * Then, it binds the created view list item (<li>) with the model `listItem` element.\n * The function then returns the created view list item (<li>).\n *\n * @param {module:engine/model/item~Item} modelItem Model list item.\n * @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion interface.\n * @returns {module:engine/view/containerelement~ContainerElement} View list element.\n */\n\nexport function generateLiInUl(modelItem, conversionApi) {\n  var mapper = conversionApi.mapper;\n  var viewWriter = conversionApi.writer;\n  var listType = modelItem.getAttribute('listType') == 'numbered' ? 'ol' : 'ul';\n  var viewItem = createViewListItemElement(viewWriter);\n  var viewList = viewWriter.createContainerElement(listType, null);\n  viewWriter.insert(viewWriter.createPositionAt(viewList, 0), viewItem);\n  mapper.bindElements(modelItem, viewItem);\n  return viewItem;\n}\n/**\n * Helper function that inserts a view list at a correct place and merges it with its siblings.\n * It takes a model list item element (`modelItem`) and a corresponding view list item element (`injectedItem`). The view list item\n * should be in a view list element (`<ul>` or `<ol>`) and should be its only child.\n * See comments below to better understand the algorithm.\n *\n * @param {module:engine/view/item~Item} modelItem Model list item.\n * @param {module:engine/view/containerelement~ContainerElement} injectedItem\n * @param {module:engine/conversion/upcastdispatcher~UpcastConversionApi} conversionApi Conversion interface.\n * @param {module:engine/model/model~Model} model The model instance.\n */\n\nexport function injectViewList(modelItem, injectedItem, conversionApi, model) {\n  var injectedList = injectedItem.parent;\n  var mapper = conversionApi.mapper;\n  var viewWriter = conversionApi.writer; // The position where the view list will be inserted.\n\n  var insertPosition = mapper.toViewPosition(model.createPositionBefore(modelItem)); // 1. Find the previous list item that has the same or smaller indent. Basically we are looking for the first model item\n  // that is a \"parent\" or \"sibling\" of the injected model item.\n  // If there is no such list item, it means that the injected list item is the first item in \"its list\".\n\n  var refItem = getSiblingListItem(modelItem.previousSibling, {\n    sameIndent: true,\n    smallerIndent: true,\n    listIndent: modelItem.getAttribute('listIndent')\n  });\n  var prevItem = modelItem.previousSibling;\n\n  if (refItem && refItem.getAttribute('listIndent') == modelItem.getAttribute('listIndent')) {\n    // There is a list item with the same indent - we found the same-level sibling.\n    // Break the list after it. The inserted view item will be added in the broken space.\n    var viewItem = mapper.toViewElement(refItem);\n    insertPosition = viewWriter.breakContainer(viewWriter.createPositionAfter(viewItem));\n  } else {\n    // There is no list item with the same indent. Check the previous model item.\n    if (prevItem && prevItem.name == 'listItem') {\n      // If it is a list item, it has to have a lower indent.\n      // It means that the inserted item should be added to it as its nested item.\n      insertPosition = mapper.toViewPosition(model.createPositionAt(prevItem, 'end'));\n    } else {\n      // The previous item is not a list item (or does not exist at all).\n      // Just map the position and insert the view item at the mapped position.\n      insertPosition = mapper.toViewPosition(model.createPositionBefore(modelItem));\n    }\n  }\n\n  insertPosition = positionAfterUiElements(insertPosition); // Insert the view item.\n\n  viewWriter.insert(insertPosition, injectedList); // 2. Handle possible children of the injected model item.\n\n  if (prevItem && prevItem.name == 'listItem') {\n    var prevView = mapper.toViewElement(prevItem);\n    var walkerBoundaries = viewWriter.createRange(viewWriter.createPositionAt(prevView, 0), insertPosition);\n    var walker = walkerBoundaries.getWalker({\n      ignoreElementEnd: true\n    });\n\n    var _iterator = _createForOfIteratorHelper(walker),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var value = _step.value;\n\n        if (value.item.is('li')) {\n          var breakPosition = viewWriter.breakContainer(viewWriter.createPositionBefore(value.item));\n          var viewList = value.item.parent;\n          var targetPosition = viewWriter.createPositionAt(injectedItem, 'end');\n          mergeViewLists(viewWriter, targetPosition.nodeBefore, targetPosition.nodeAfter);\n          viewWriter.move(viewWriter.createRangeOn(viewList), targetPosition);\n          walker.position = breakPosition;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n  } else {\n    var nextViewList = injectedList.nextSibling;\n\n    if (nextViewList && (nextViewList.is('ul') || nextViewList.is('ol'))) {\n      var lastSubChild = null;\n\n      var _iterator2 = _createForOfIteratorHelper(nextViewList.getChildren()),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var child = _step2.value;\n          var modelChild = mapper.toModelElement(child);\n\n          if (modelChild && modelChild.getAttribute('listIndent') > modelItem.getAttribute('listIndent')) {\n            lastSubChild = child;\n          } else {\n            break;\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      if (lastSubChild) {\n        viewWriter.breakContainer(viewWriter.createPositionAfter(lastSubChild));\n        viewWriter.move(viewWriter.createRangeOn(lastSubChild.parent), viewWriter.createPositionAt(injectedItem, 'end'));\n      }\n    }\n  } // Merge the inserted view list with its possible neighbor lists.\n\n\n  mergeViewLists(viewWriter, injectedList, injectedList.nextSibling);\n  mergeViewLists(viewWriter, injectedList.previousSibling, injectedList);\n}\n/**\n * Helper function that takes two parameters that are expected to be view list elements, and merges them.\n * The merge happens only if both parameters are list elements of the same type (the same element name and the same class attributes).\n *\n * @param {module:engine/view/downcastwriter~DowncastWriter} viewWriter The writer instance.\n * @param {module:engine/view/item~Item} firstList The first element to compare.\n * @param {module:engine/view/item~Item} secondList The second element to compare.\n * @returns {module:engine/view/position~Position|null} The position after merge or `null` when there was no merge.\n */\n\nexport function mergeViewLists(viewWriter, firstList, secondList) {\n  // Check if two lists are going to be merged.\n  if (!firstList || !secondList || firstList.name != 'ul' && firstList.name != 'ol') {\n    return null;\n  } // Both parameters are list elements, so compare types now.\n\n\n  if (firstList.name != secondList.name || firstList.getAttribute('class') !== secondList.getAttribute('class')) {\n    return null;\n  }\n\n  return viewWriter.mergeContainers(viewWriter.createPositionAfter(firstList));\n}\n/**\n * Helper function that for a given `view.Position`, returns a `view.Position` that is after all `view.UIElement`s that\n * are after the given position.\n *\n * For example:\n * `<container:p>foo^<ui:span></ui:span><ui:span></ui:span>bar</container:p>`\n * For position ^, the position before \"bar\" will be returned.\n *\n * @param {module:engine/view/position~Position} viewPosition\n * @returns {module:engine/view/position~Position}\n */\n\nexport function positionAfterUiElements(viewPosition) {\n  return viewPosition.getLastMatchingPosition(function (value) {\n    return value.item.is('uiElement');\n  });\n}\n/**\n * Helper function that searches for a previous list item sibling of a given model item that meets the given criteria\n * passed by the options object.\n *\n * @param {module:engine/model/item~Item} modelItem\n * @param {Object} options Search criteria.\n * @param {Boolean} [options.sameIndent=false] Whether the sought sibling should have the same indentation.\n * @param {Boolean} [options.smallerIndent=false] Whether the sought sibling should have a smaller indentation.\n * @param {Number} [options.listIndent] The reference indentation.\n * @returns {module:engine/model/item~Item|null}\n */\n\nexport function getSiblingListItem(modelItem, options) {\n  var sameIndent = !!options.sameIndent;\n  var smallerIndent = !!options.smallerIndent;\n  var indent = options.listIndent;\n  var item = modelItem;\n\n  while (item && item.name == 'listItem') {\n    var itemIndent = item.getAttribute('listIndent');\n\n    if (sameIndent && indent == itemIndent || smallerIndent && indent > itemIndent) {\n      return item;\n    }\n\n    item = item.previousSibling;\n  }\n\n  return null;\n}\n/**\n * Helper method for creating a UI button and linking it with an appropriate command.\n *\n * @private\n * @param {module:core/editor/editor~Editor} editor The editor instance to which the UI component will be added.\n * @param {String} commandName The name of the command.\n * @param {Object} label The button label.\n * @param {String} icon The source of the icon.\n */\n\nexport function createUIComponent(editor, commandName, label, icon) {\n  editor.ui.componentFactory.add(commandName, function (locale) {\n    var command = editor.commands.get(commandName);\n    var buttonView = new ButtonView(locale);\n    buttonView.set({\n      label: label,\n      icon: icon,\n      tooltip: true,\n      isToggleable: true\n    }); // Bind button model to command.\n\n    buttonView.bind('isOn', 'isEnabled').to(command, 'value', 'isEnabled'); // Execute command.\n\n    buttonView.on('execute', function () {\n      return editor.execute(commandName);\n    });\n    return buttonView;\n  });\n} // Implementation of getFillerOffset for view list item element.\n//\n// @returns {Number|null} Block filler offset or `null` if block filler is not needed.\n\nfunction getListItemFillerOffset() {\n  var hasOnlyLists = !this.isEmpty && (this.getChild(0).name == 'ul' || this.getChild(0).name == 'ol');\n\n  if (this.isEmpty || hasOnlyLists) {\n    return 0;\n  }\n\n  return getFillerOffset.call(this);\n}","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7 5.75c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zm-6 0C1 4.784 1.777 4 2.75 4c.966 0 1.75.777 1.75 1.75 0 .966-.777 1.75-1.75 1.75C1.784 7.5 1 6.723 1 5.75zm6 9c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zm-6 0c0-.966.777-1.75 1.75-1.75.966 0 1.75.777 1.75 1.75 0 .966-.777 1.75-1.75 1.75-.966 0-1.75-.777-1.75-1.75z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M7 5.75c0 .414.336.75.75.75h9.5a.75.75 0 1 0 0-1.5h-9.5a.75.75 0 0 0-.75.75zM3.5 3v5H2V3.7H1v-1h2.5V3zM.343 17.857l2.59-3.257H2.92a.6.6 0 1 0-1.04 0H.302a2 2 0 1 1 3.995 0h-.001c-.048.405-.16.734-.333.988-.175.254-.59.692-1.244 1.312H4.3v1h-4l.043-.043zM7 14.75a.75.75 0 0 1 .75-.75h9.5a.75.75 0 1 1 0 1.5h-9.5a.75.75 0 0 1-.75-.75z\\\"/></svg>\"","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.regexp.match\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/automediaembed\n */\nimport MediaEmbedEditing from \"./mediaembedediting\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';\nimport LiveRange from '@ckeditor/ckeditor5-engine/src/model/liverange';\nimport LivePosition from '@ckeditor/ckeditor5-engine/src/model/liveposition';\nimport Undo from '@ckeditor/ckeditor5-undo/src/undo';\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport { insertMedia } from \"./utils\";\nvar URL_REGEXP = /^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w.-]+)+[\\w\\-._~:/?#[\\]@!$&'()*+,;=]+$/;\n/**\n * The auto-media embed plugin. It recognizes media links in the pasted content and embeds\n * them shortly after they are injected into the document.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar AutoMediaEmbed = /*#__PURE__*/function (_Plugin) {\n  _inherits(AutoMediaEmbed, _Plugin);\n\n  var _super = _createSuper(AutoMediaEmbed);\n\n  _createClass(AutoMediaEmbed, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [Clipboard, Undo];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'AutoMediaEmbed';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }]);\n\n  function AutoMediaEmbed(editor) {\n    var _this;\n\n    _classCallCheck(this, AutoMediaEmbed);\n\n    _this = _super.call(this, editor);\n    /**\n     * The paste–to–embed `setTimeout` ID. Stored as a property to allow\n     * cleaning of the timeout.\n     *\n     * @private\n     * @member {Number} #_timeoutId\n     */\n\n    _this._timeoutId = null;\n    /**\n     * The position where the `<media>` element will be inserted after the timeout,\n     * determined each time the new content is pasted into the document.\n     *\n     * @private\n     * @member {module:engine/model/liveposition~LivePosition} #_positionToInsert\n     */\n\n    _this._positionToInsert = null;\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(AutoMediaEmbed, [{\n    key: \"init\",\n    value: function init() {\n      var _this2 = this;\n\n      var editor = this.editor;\n      var modelDocument = editor.model.document; // We need to listen on `Clipboard#inputTransformation` because we need to save positions of selection.\n      // After pasting, the content between those positions will be checked for a URL that could be transformed\n      // into media.\n\n      this.listenTo(editor.plugins.get(Clipboard), 'inputTransformation', function () {\n        var firstRange = modelDocument.selection.getFirstRange();\n        var leftLivePosition = LivePosition.fromPosition(firstRange.start);\n        leftLivePosition.stickiness = 'toPrevious';\n        var rightLivePosition = LivePosition.fromPosition(firstRange.end);\n        rightLivePosition.stickiness = 'toNext';\n        modelDocument.once('change:data', function () {\n          _this2._embedMediaBetweenPositions(leftLivePosition, rightLivePosition);\n\n          leftLivePosition.detach();\n          rightLivePosition.detach();\n        }, {\n          priority: 'high'\n        });\n      });\n      editor.commands.get('undo').on('execute', function () {\n        if (_this2._timeoutId) {\n          global.window.clearTimeout(_this2._timeoutId);\n\n          _this2._positionToInsert.detach();\n\n          _this2._timeoutId = null;\n          _this2._positionToInsert = null;\n        }\n      }, {\n        priority: 'high'\n      });\n    }\n    /**\n     * Analyzes the part of the document between provided positions in search for a URL representing media.\n     * When the URL is found, it is automatically converted into media.\n     *\n     * @protected\n     * @param {module:engine/model/liveposition~LivePosition} leftPosition Left position of the selection.\n     * @param {module:engine/model/liveposition~LivePosition} rightPosition Right position of the selection.\n     */\n\n  }, {\n    key: \"_embedMediaBetweenPositions\",\n    value: function _embedMediaBetweenPositions(leftPosition, rightPosition) {\n      var _this3 = this;\n\n      var editor = this.editor;\n      var mediaRegistry = editor.plugins.get(MediaEmbedEditing).registry; // TODO: Use marker instead of LiveRange & LivePositions.\n\n      var urlRange = new LiveRange(leftPosition, rightPosition);\n      var walker = urlRange.getWalker({\n        ignoreElementEnd: true\n      });\n      var url = '';\n\n      var _iterator = _createForOfIteratorHelper(walker),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var node = _step.value;\n\n          if (node.item.is('textProxy')) {\n            url += node.item.data;\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      url = url.trim(); // If the URL does not match to universal URL regexp, let's skip that.\n\n      if (!url.match(URL_REGEXP)) {\n        return;\n      } // If the URL represents a media, let's use it.\n\n\n      if (!mediaRegistry.hasMedia(url)) {\n        return;\n      }\n\n      var mediaEmbedCommand = editor.commands.get('mediaEmbed'); // Do not anything if media element cannot be inserted at the current position (#47).\n\n      if (!mediaEmbedCommand.isEnabled) {\n        return;\n      } // Position won't be available in the `setTimeout` function so let's clone it.\n\n\n      this._positionToInsert = LivePosition.fromPosition(leftPosition); // This action mustn't be executed if undo was called between pasting and auto-embedding.\n\n      this._timeoutId = global.window.setTimeout(function () {\n        editor.model.change(function (writer) {\n          _this3._timeoutId = null;\n          writer.remove(urlRange);\n          var insertionPosition; // Check if position where the media element should be inserted is still valid.\n          // Otherwise leave it as undefined to use document.selection - default behavior of model.insertContent().\n\n          if (_this3._positionToInsert.root.rootName !== '$graveyard') {\n            insertionPosition = _this3._positionToInsert;\n          }\n\n          insertMedia(editor.model, url, insertionPosition);\n\n          _this3._positionToInsert.detach();\n\n          _this3._positionToInsert = null;\n        });\n      }, 100);\n    }\n  }]);\n\n  return AutoMediaEmbed;\n}(Plugin);\n\nexport { AutoMediaEmbed as default };","import \"core-js/modules/es6.function.name\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/converters\n */\n\n/**\n * Returns a function that converts the model \"url\" attribute to the view representation.\n *\n * Depending on the configuration, the view representation can be \"semantic\" (for the data pipeline):\n *\n *\t\t<figure class=\"media\">\n *\t\t\t<oembed url=\"foo\"></oembed>\n *\t\t</figure>\n *\n * or \"non-semantic\" (for the editing view pipeline):\n *\n *\t\t<figure class=\"media\">\n *\t\t\t<div data-oembed-url=\"foo\">[ non-semantic media preview for \"foo\" ]</div>\n *\t\t</figure>\n *\n * **Note:** Changing the model \"url\" attribute replaces the entire content of the\n * `<figure>` in the view.\n *\n * @param {module:media-embed/mediaregistry~MediaRegistry} registry The registry providing\n * the media and their content.\n * @param {Object} options\n * @param {String} [options.renderMediaPreview] When `true`, the converter will create the view in the non-semantic form.\n * @param {String} [options.renderForEditingView] When `true`, the converter will create a view specific for the\n * editing pipeline (e.g. including CSS classes, content placeholders).\n * @returns {Function}\n */\nexport function modelToViewUrlAttributeConverter(registry, options) {\n  return function (dispatcher) {\n    dispatcher.on('attribute:url:media', converter);\n  };\n\n  function converter(evt, data, conversionApi) {\n    if (!conversionApi.consumable.consume(data.item, evt.name)) {\n      return;\n    }\n\n    var url = data.attributeNewValue;\n    var viewWriter = conversionApi.writer;\n    var figure = conversionApi.mapper.toViewElement(data.item); // TODO: removing it and creating it from scratch is a hack. We can do better than that.\n\n    viewWriter.remove(viewWriter.createRangeIn(figure));\n    var mediaViewElement = registry.getMediaViewElement(viewWriter, url, options);\n    viewWriter.insert(viewWriter.createPositionAt(figure, 0), mediaViewElement);\n  }\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/mediaembed\n */\nimport MediaEmbedEditing from \"./mediaembedediting\";\nimport AutoMediaEmbed from \"./automediaembed\";\nimport MediaEmbedUI from \"./mediaembedui\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Widget from '@ckeditor/ckeditor5-widget/src/widget';\nimport \"../theme/mediaembed.css\";\n/**\n * The media embed plugin.\n *\n * For a detailed overview, check the {@glink features/media-embed Media Embed feature documentation}.\n *\n * This is a \"glue\" plugin which loads the following plugins:\n *\n * * The {@link module:media-embed/mediaembedediting~MediaEmbedEditing media embed editing feature},\n * * The {@link module:media-embed/mediaembedui~MediaEmbedUI media embed UI feature} and\n * * The {@link module:media-embed/automediaembed~AutoMediaEmbed auto-media embed feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar MediaEmbed = /*#__PURE__*/function (_Plugin) {\n  _inherits(MediaEmbed, _Plugin);\n\n  var _super = _createSuper(MediaEmbed);\n\n  function MediaEmbed() {\n    _classCallCheck(this, MediaEmbed);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(MediaEmbed, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [MediaEmbedEditing, MediaEmbedUI, AutoMediaEmbed, Widget];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'MediaEmbed';\n    }\n  }]);\n\n  return MediaEmbed;\n}(Plugin);\n/**\n * The media embed provider descriptor. Used in\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#providers `config.mediaEmbed.providers`} and\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#extraProviders `config.mediaEmbed.extraProviders`}.\n *\n * See {@link module:media-embed/mediaembed~MediaEmbedConfig} to learn more.\n *\n *\t\t{\n *\t\t\tname: 'example',\n *\n *\t\t\t// The following RegExp matches https://www.example.com/media/{media id},\n *\t\t\t// (either with \"http(s)://\" and \"www\" or without), so the valid URLs are:\n *\t\t\t//\n *\t\t\t// * https://www.example.com/media/{media id},\n *\t\t\t// * http://www.example.com/media/{media id},\n *\t\t\t// * www.example.com/media/{media id},\n *\t\t\t// * example.com/media/{media id}\n *\t\t\turl: /^example\\.com\\/media\\/(\\w+)/,\n *\n *\t\t\t// The rendering function of the provider.\n *\t\t\t// Used to represent the media when editing the content (i.e. in the view)\n *\t\t\t// and also in the data output of the editor if semantic data output is disabled.\n *\t\t\thtml: match => `The HTML representing the media with ID=${ match[ 1 ] }.`\n *\t\t}\n *\n * You can allow any sort of media in the editor using the \"allow–all\" `RegExp`.\n * But mind that, since URLs are processed in the order of configuration, if one of the previous\n * `RegExps` matches the URL, it will have a precedence over this one.\n *\n *\t\t{\n *\t\t\tname: 'allow-all',\n *\t\t\turl: /^.+/\n *\t\t}\n *\n * To implement responsive media, you can use the following HTML structure:\n *\n *\t\t{\n *\t\t\t...\n *\t\t\thtml: match =>\n *\t\t\t\t'<div style=\"position:relative; padding-bottom:100%; height:0\">' +\n *\t\t\t\t\t'<iframe src=\"...\" frameborder=\"0\" ' +\n *\t\t\t\t\t\t'style=\"position:absolute; width:100%; height:100%; top:0; left:0\">' +\n *\t\t\t\t\t'</iframe>' +\n *\t\t\t\t'</div>'\n *\t\t}\n *\n * @typedef {Object} module:media-embed/mediaembed~MediaEmbedProvider\n * @property {String} name The name of the provider. Used e.g. when\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#removeProviders removing providers}.\n * @property {RegExp|Array.<RegExp>} url The `RegExp` object (or array of objects) defining the URL of the media.\n * If any URL matches the `RegExp`, it becomes the media in the editor model, as defined by the provider. The result\n * of matching (output of `String.prototype.match()`) is passed to the `html` rendering function of the media.\n *\n * **Note:** You do not need to include the protocol (`http://`, `https://`) and `www` subdomain in your `RegExps`,\n * they are stripped from the URLs before matching anyway.\n * @property {Function} [html] (optional) The rendering function of the media. The function receives the entire matching\n * array from the corresponding `url` `RegExp` as an argument, allowing rendering a dedicated\n * preview of the media identified by a certain ID or a hash. When not defined, the media embed feature\n * will use a generic media representation in the view and output data.\n * Note that when\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#previewsInData `config.mediaEmbed.previewsInData`}\n * is `true`, the rendering function **will always** be used for the media in the editor data output.\n */\n\n/**\n * The configuration of the {@link module:media-embed/mediaembed~MediaEmbed} feature.\n *\n * Read more in {@link module:media-embed/mediaembed~MediaEmbedConfig}.\n *\n * @member {module:media-embed/mediaembed~MediaEmbedConfig} module:core/editor/editorconfig~EditorConfig#mediaEmbed\n */\n\n/**\n * The configuration of the media embed features.\n *\n * Read more about {@glink features/media-embed#configuration configuring the media embed feature}.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\tmediaEmbed: ... // Media embed feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface MediaEmbedConfig\n */\n\n/**\n * The default media providers supported by the editor.\n *\n * The names of providers with rendering functions (previews):\n *\n * * \"dailymotion\",\n * * \"spotify\",\n * * \"youtube\",\n * * \"vimeo\"\n *\n * The names of providers without rendering functions:\n *\n * * \"instagram\",\n * * \"twitter\",\n * * \"googleMaps\",\n * * \"flickr\",\n * * \"facebook\"\n *\n * See the {@link module:media-embed/mediaembed~MediaEmbedProvider provider syntax} to learn more about\n * different kinds of media and media providers.\n *\n * **Note**: The default media provider configuration may not support all possible media URLs,\n * only the most common are included.\n *\n * Media without rendering functions are always represented in the data using the \"semantic\" markup. See\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#previewsInData `config.mediaEmbed.previewsInData`} to\n * learn more about possible data outputs.\n *\n * The priority of media providers corresponds to the order of configuration. The first provider\n * to match the URL is always used, even if there are other providers that support a particular URL.\n * The URL is never matched against the remaining providers.\n *\n * To discard **all** default media providers, simply override this configuration with your own\n * {@link module:media-embed/mediaembed~MediaEmbedProvider definitions}:\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\tplugins: [ MediaEmbed, ... ],\n *\t\t\t\tmediaEmbed: {\n *\t\t\t\t\tproviders: [\n *\t\t\t\t\t\t{\n *\t\t\t\t\t\t\t name: 'myProvider',\n *\t\t\t\t\t\t\t url: /^example\\.com\\/media\\/(\\w+)/,\n *\t\t\t\t\t\t\t html: match => '...'\n *\t\t\t\t\t\t},\n *\t\t\t\t\t\t...\n * \t\t\t\t\t]\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * You can take inspiration from the default configuration of this feature which you can find in:\n * https://github.com/ckeditor/ckeditor5-media-embed/blob/master/src/mediaembedediting.js\n *\n * To **extend** the list of default providers, use\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#extraProviders `config.mediaEmbed.extraProviders`}.\n *\n * To **remove** certain providers, use\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#removeProviders `config.mediaEmbed.removeProviders`}.\n *\n * @member {Array.<module:media-embed/mediaembed~MediaEmbedProvider>} module:media-embed/mediaembed~MediaEmbedConfig#providers\n */\n\n/**\n * The additional media providers supported by the editor. This configuration helps extend the default\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#providers}.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n *\t\t\t\tplugins: [ MediaEmbed, ... ],\n *\t\t\t\tmediaEmbed: {\n *\t\t\t\t\textraProviders: [\n *\t\t\t\t\t\t{\n *\t\t\t\t\t\t\t name: 'extraProvider',\n *\t\t\t\t\t\t\t url: /^example\\.com\\/media\\/(\\w+)/,\n *\t\t\t\t\t\t\t html: match => '...'\n *\t\t\t\t\t\t},\n *\t\t\t\t\t\t...\n * \t\t\t\t\t]\n *\t\t\t\t}\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See the {@link module:media-embed/mediaembed~MediaEmbedProvider provider syntax} to learn more.\n *\n * @member {Array.<module:media-embed/mediaembed~MediaEmbedProvider>} module:media-embed/mediaembed~MediaEmbedConfig#extraProviders\n */\n\n/**\n * The list of media providers that should not be used despite being available in\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#providers `config.mediaEmbed.providers`} and\n * {@link module:media-embed/mediaembed~MediaEmbedConfig#extraProviders `config.mediaEmbed.extraProviders`}\n *\n *\t\tmediaEmbed: {\n *\t\t\tremoveProviders: [ 'youtube', 'twitter' ]\n *\t\t}\n *\n * @member {Array.<String>} module:media-embed/mediaembed~MediaEmbedConfig#removeProviders\n */\n\n/**\n * Controls the data format produced by the feature.\n *\n * When `false` (default), the feature produces \"semantic\" data, i.e. it does not include the preview of\n * the media, just the `<oembed>` tag with the `url` attribute:\n *\n *\t\t<figure class=\"media\">\n *\t\t\t<oembed url=\"https://url\"></oembed>\n *\t\t</figure>\n *\n * When `true`, the media is represented in the output in the same way it looks in the editor,\n * i.e. the media preview is saved to the database:\n *\n *\t\t<figure class=\"media\">\n *\t\t\t<div data-oembed-url=\"https://url\">\n *\t\t\t\t<iframe src=\"https://preview\"></iframe>\n *\t\t\t</div>\n *\t\t</figure>\n *\n * **Note:** Media without preview are always represented in the data using the \"semantic\" markup\n * regardless of the value of the `previewsInData`. Learn more about different kinds of media\n * in the {@link module:media-embed/mediaembed~MediaEmbedConfig#providers `config.mediaEmbed.providers`}\n * configuration description.\n *\n * @member {Boolean} [module:media-embed/mediaembed~MediaEmbedConfig#previewsInData=false]\n */\n\n\nexport { MediaEmbed as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/mediaembedcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { findOptimalInsertionPosition } from '@ckeditor/ckeditor5-widget/src/utils';\nimport { getSelectedMediaModelWidget, insertMedia } from \"./utils\";\n/**\n * The insert media command.\n *\n * The command is registered by the {@link module:media-embed/mediaembedediting~MediaEmbedEditing} as `'mediaEmbed'`.\n *\n * To insert media at the current selection, execute the command and specify the URL:\n *\n *\t\teditor.execute( 'mediaEmbed', 'http://url.to.the/media' );\n *\n * @extends module:core/command~Command\n */\n\nvar MediaEmbedCommand = /*#__PURE__*/function (_Command) {\n  _inherits(MediaEmbedCommand, _Command);\n\n  var _super = _createSuper(MediaEmbedCommand);\n\n  function MediaEmbedCommand() {\n    _classCallCheck(this, MediaEmbedCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(MediaEmbedCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var model = this.editor.model;\n      var selection = model.document.selection;\n      var schema = model.schema;\n      var position = selection.getFirstPosition();\n      var selectedMedia = getSelectedMediaModelWidget(selection);\n      var parent = position.parent;\n\n      if (parent != parent.root) {\n        parent = parent.parent;\n      }\n\n      this.value = selectedMedia ? selectedMedia.getAttribute('url') : null;\n      this.isEnabled = schema.checkChild(parent, 'media');\n    }\n    /**\n     * Executes the command, which either:\n     *\n     * * updates the URL of the selected media,\n     * * inserts the new media into the editor and puts the selection around it.\n     *\n     * @fires execute\n     * @param {String} url The URL of the media.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(url) {\n      var model = this.editor.model;\n      var selection = model.document.selection;\n      var selectedMedia = getSelectedMediaModelWidget(selection);\n\n      if (selectedMedia) {\n        model.change(function (writer) {\n          writer.setAttribute('url', url, selectedMedia);\n        });\n      } else {\n        var insertPosition = findOptimalInsertionPosition(selection, model);\n        insertMedia(model, url, insertPosition);\n      }\n    }\n  }]);\n\n  return MediaEmbedCommand;\n}(Command);\n\nexport { MediaEmbedCommand as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module media-embed/mediaembedediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { modelToViewUrlAttributeConverter } from './converters';\nimport MediaEmbedCommand from './mediaembedcommand';\nimport MediaRegistry from './mediaregistry';\nimport {\n    toMediaWidget,\n    createMediaFigureElement\n} from './utils';\nimport '../theme/mediaembedediting.css';\n/**\n * The media embed editing feature.\n *\n * @extends module:core/plugin~Plugin\n */\nvar MediaEmbedEditing = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(MediaEmbedEditing, _Plugin);\n    var _super = _createSuper(MediaEmbedEditing);\n    _createClass(MediaEmbedEditing, null, [{\n            key: 'pluginName',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return 'MediaEmbedEditing';\n            }    /**\n     * @inheritDoc\n     */\n        }]);\n    function MediaEmbedEditing(editor) {\n        var _this;\n        _classCallCheck(this, MediaEmbedEditing);\n        _this = _super.call(this, editor);\n        editor.config.define('mediaEmbed', {\n            providers: [\n                {\n                    name: 'dailymotion',\n                    url: /^dailymotion\\.com\\/video\\/(\\w+)/,\n                    html: function html(match) {\n                        var id = match[1];\n                        return '<div style=\"position: relative; padding-bottom: 100%; height: 0; \">' + '<iframe src=\"https://www.dailymotion.com/embed/video/'.concat(id, '\" ') + 'style=\"position: absolute; width: 100%; height: 100%; top: 0; left: 0;\" ' + 'frameborder=\"0\" width=\"480\" height=\"270\" allowfullscreen allow=\"autoplay\">' + '</iframe>' + '</div>';\n                    }\n                },\n                {\n                    name: 'spotify',\n                    url: [\n                        /^open\\.spotify\\.com\\/(artist\\/\\w+)/,\n                        /^open\\.spotify\\.com\\/(album\\/\\w+)/,\n                        /^open\\.spotify\\.com\\/(track\\/\\w+)/\n                    ],\n                    html: function html(match) {\n                        var id = match[1];\n                        return '<div style=\"position: relative; padding-bottom: 100%; height: 0; padding-bottom: 126%;\">' + '<iframe src=\"https://open.spotify.com/embed/'.concat(id, '\" ') + 'style=\"position: absolute; width: 100%; height: 100%; top: 0; left: 0;\" ' + 'frameborder=\"0\" allowtransparency=\"true\" allow=\"encrypted-media\">' + '</iframe>' + '</div>';\n                    }\n                },\n                {\n                    name: 'youtube',\n                    url: [\n                        /^(?:m\\.)?youtube\\.com\\/watch\\?v=([\\w-]+)/,\n                        /^(?:m\\.)?youtube\\.com\\/v\\/([\\w-]+)/,\n                        /^youtube\\.com\\/embed\\/([\\w-]+)/,\n                        /^youtu\\.be\\/([\\w-]+)/\n                    ],\n                    html: function html(match) {\n                        var id = match[1];\n                        return '<div style=\"position: relative; padding-bottom: 100%; height: 0; padding-bottom: 56.2493%;\">' + '<iframe src=\"https://www.youtube.com/embed/'.concat(id, '\" ') + 'style=\"position: absolute; width: 100%; height: 100%; top: 0; left: 0;\" ' + 'frameborder=\"0\" allow=\"autoplay; encrypted-media\" allowfullscreen>' + '</iframe>' + '</div>';\n                    }\n                },\n                {\n                    name: 'vimeo',\n                    url: [\n                        /^vimeo\\.com\\/(\\d+)/,\n                        /^vimeo\\.com\\/[^/]+\\/[^/]+\\/video\\/(\\d+)/,\n                        /^vimeo\\.com\\/album\\/[^/]+\\/video\\/(\\d+)/,\n                        /^vimeo\\.com\\/channels\\/[^/]+\\/(\\d+)/,\n                        /^vimeo\\.com\\/groups\\/[^/]+\\/videos\\/(\\d+)/,\n                        /^vimeo\\.com\\/ondemand\\/[^/]+\\/(\\d+)/,\n                        /^player\\.vimeo\\.com\\/video\\/(\\d+)/\n                    ],\n                    html: function html(match) {\n                        var id = match[1];\n                        return '<div style=\"position: relative; padding-bottom: 100%; height: 0; padding-bottom: 56.2493%;\">' + '<iframe src=\"https://player.vimeo.com/video/'.concat(id, '\" ') + 'style=\"position: absolute; width: 100%; height: 100%; top: 0; left: 0;\" ' + 'frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen>' + '</iframe>' + '</div>';\n                    }\n                },\n                {\n                    name: 'instagram',\n                    url: /^instagram\\.com\\/p\\/(\\w+)/\n                },\n                {\n                    name: 'twitter',\n                    url: /^twitter\\.com/\n                },\n                {\n                    name: 'googleMaps',\n                    url: /^google\\.com\\/maps/\n                },\n                {\n                    name: 'flickr',\n                    url: /^flickr\\.com/\n                },\n                {\n                    name: 'facebook',\n                    url: /^facebook\\.com/\n                }\n            ]\n        });\n        /**\n     * The media registry managing the media providers in the editor.\n     *\n     * @member {module:media-embed/mediaregistry~MediaRegistry} #registry\n     */\n        _this.registry = new MediaRegistry(editor.locale, editor.config.get('mediaEmbed'));\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(MediaEmbedEditing, [{\n            key: 'init',\n            value: function init() {\n                var editor = this.editor;\n                var schema = editor.model.schema;\n                var t = editor.t;\n                var conversion = editor.conversion;\n                var renderMediaPreview = editor.config.get('mediaEmbed.previewsInData');\n                var registry = this.registry;\n                editor.commands.add('mediaEmbed', new MediaEmbedCommand(editor));\n                // Configure the schema.\n                schema.register('media', {\n                    isObject: true,\n                    isBlock: true,\n                    allowWhere: '$block',\n                    allowAttributes: ['url']\n                });\n                // Model -> Data\n                conversion.for('dataDowncast').elementToElement({\n                    model: 'media',\n                    view: function view(modelElement, viewWriter) {\n                        var url = modelElement.getAttribute('url');\n                        return createMediaFigureElement(viewWriter, registry, url, { renderMediaPreview: url && renderMediaPreview });\n                    }\n                });\n                // Model -> Data (url -> data-oembed-url)\n                conversion.for('dataDowncast').add(modelToViewUrlAttributeConverter(registry, { renderMediaPreview: renderMediaPreview }));\n                // Model -> View (element)\n                conversion.for('editingDowncast').elementToElement({\n                    model: 'media',\n                    view: function view(modelElement, viewWriter) {\n                        var url = modelElement.getAttribute('url');\n                        var figure = createMediaFigureElement(viewWriter, registry, url, { renderForEditingView: true });\n                        return toMediaWidget(figure, viewWriter, t('media widget'));\n                    }\n                });\n                // Model -> View (url -> data-oembed-url)\n                conversion.for('editingDowncast').add(modelToViewUrlAttributeConverter(registry, { renderForEditingView: true }));\n                // View -> Model (data-oembed-url -> url)\n                conversion.for('upcast')    // Upcast semantic media.\n.elementToElement({\n                    view: {\n                        name: 'oembed',\n                        attributes: { url: true }\n                    },\n                    model: function model(viewMedia, modelWriter) {\n                        var url = viewMedia.getAttribute('url');\n                        if (registry.hasMedia(url)) {\n                            return modelWriter.createElement('media', { url: url });\n                        }\n                    }\n                })    // Upcast non-semantic media.\n.elementToElement({\n                    view: {\n                        name: 'div',\n                        attributes: { 'data-oembed-url': true }\n                    },\n                    model: function model(viewMedia, modelWriter) {\n                        var url = viewMedia.getAttribute('data-oembed-url');\n                        if (registry.hasMedia(url)) {\n                            return modelWriter.createElement('media', { url: url });\n                        }\n                    }\n                });\n            }\n        }]);\n    return MediaEmbedEditing;\n}(Plugin);\nexport {\n    MediaEmbedEditing as default\n};","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module media-embed/mediaembedui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport { createDropdown } from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport MediaFormView from './ui/mediaformview';\nimport MediaEmbedEditing from './mediaembedediting';\nimport mediaIcon from '../theme/icons/media.svg';\n/**\n * The media embed UI plugin.\n *\n * @extends module:core/plugin~Plugin\n */\nvar MediaEmbedUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(MediaEmbedUI, _Plugin);\n    var _super = _createSuper(MediaEmbedUI);\n    function MediaEmbedUI() {\n        _classCallCheck(this, MediaEmbedUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(MediaEmbedUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var command = editor.commands.get('mediaEmbed');\n                var registry = editor.plugins.get(MediaEmbedEditing).registry;\n                /**\n       * The form view displayed inside the drop-down.\n       *\n       * @member {module:media-embed/ui/mediaformview~MediaFormView}\n       */\n                this.form = new MediaFormView(getFormValidators(editor.t, registry), editor.locale);\n                // Setup `imageUpload` button.\n                editor.ui.componentFactory.add('mediaEmbed', function (locale) {\n                    var dropdown = createDropdown(locale);\n                    _this._setUpDropdown(dropdown, _this.form, command, editor);\n                    _this._setUpForm(_this.form, dropdown, command);\n                    return dropdown;\n                });\n            }\n        },\n        {\n            key: '_setUpDropdown',\n            value: function _setUpDropdown(dropdown, form, command) {\n                var editor = this.editor;\n                var t = editor.t;\n                var button = dropdown.buttonView;\n                dropdown.bind('isEnabled').to(command);\n                dropdown.panelView.children.add(form);\n                button.set({\n                    label: t('Insert media'),\n                    icon: mediaIcon,\n                    tooltip: true\n                });\n                // Note: Use the low priority to make sure the following listener starts working after the\n                // default action of the drop-down is executed (i.e. the panel showed up). Otherwise, the\n                // invisible form/input cannot be focused/selected.\n                button.on('open', function () {\n                    // Make sure that each time the panel shows up, the URL field remains in sync with the value of\n                    // the command. If the user typed in the input, then canceled (`urlInputView#value` stays\n                    // unaltered) and re-opened it without changing the value of the media command (e.g. because they\n                    // didn't change the selection), they would see the old value instead of the actual value of the\n                    // command.\n                    form.url = command.value || '';\n                    form.urlInputView.select();\n                    form.focus();\n                }, { priority: 'low' });\n                dropdown.on('submit', function () {\n                    if (form.isValid()) {\n                        editor.execute('mediaEmbed', form.url);\n                        closeUI();\n                    }\n                });\n                dropdown.on('change:isOpen', function () {\n                    return form.resetFormStatus();\n                });\n                dropdown.on('cancel', function () {\n                    return closeUI();\n                });\n                function closeUI() {\n                    editor.editing.view.focus();\n                    dropdown.isOpen = false;\n                }\n            }\n        },\n        {\n            key: '_setUpForm',\n            value: function _setUpForm(form, dropdown, command) {\n                form.delegate('submit', 'cancel').to(dropdown);\n                form.urlInputView.bind('value').to(command, 'value');\n                // Form elements should be read-only when corresponding commands are disabled.\n                form.urlInputView.bind('isReadOnly').to(command, 'isEnabled', function (value) {\n                    return !value;\n                });\n                form.saveButtonView.bind('isEnabled').to(command);\n            }\n        }\n    ], [\n        {\n            key: 'requires',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return [MediaEmbedEditing];\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'pluginName',\n            get: function get() {\n                return 'MediaEmbedUI';\n            }\n        }\n    ]);\n    return MediaEmbedUI;\n}(Plugin);\nexport {\n    MediaEmbedUI as default\n};\nfunction getFormValidators(t, registry) {\n    return [\n        function (form) {\n            if (!form.url.length) {\n                return t('The URL must not be empty.');\n            }\n        },\n        function (form) {\n            if (!registry.hasMedia(form.url)) {\n                return t('This media URL is not supported.');\n            }\n        }\n    ];\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/mediaregistry\n */\n\n/* globals console */\nimport mediaPlaceholderIcon from \"../theme/icons/media-placeholder.svg\";\nimport TooltipView from '@ckeditor/ckeditor5-ui/src/tooltip/tooltipview';\nimport IconView from '@ckeditor/ckeditor5-ui/src/icon/iconview';\nimport Template from '@ckeditor/ckeditor5-ui/src/template';\nimport { attachLinkToDocumentation } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nvar mediaPlaceholderIconViewBox = '0 0 64 42';\n/**\n * A bridge between the raw media content provider definitions and the editor view content.\n *\n * It helps translating media URLs to corresponding {@link module:engine/view/element~Element view elements}.\n *\n * Mostly used by the {@link module:media-embed/mediaembedediting~MediaEmbedEditing} plugin.\n */\n\nvar MediaRegistry = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the {@link module:media-embed/mediaregistry~MediaRegistry} class.\n   *\n   * @param {module:utils/locale~Locale} locale The localization services instance.\n   * @param {module:media-embed/mediaembed~MediaEmbedConfig} config The configuration of the media embed feature.\n   */\n  function MediaRegistry(locale, config) {\n    _classCallCheck(this, MediaRegistry);\n\n    var providers = config.providers;\n    var extraProviders = config.extraProviders || [];\n    var removedProviders = new Set(config.removeProviders);\n    var providerDefinitions = providers.concat(extraProviders).filter(function (provider) {\n      var name = provider.name;\n\n      if (!name) {\n        /**\n         * One of the providers (or extra providers) specified in the media embed configuration\n         * has no name and will not be used by the editor. In order to get this media\n         * provider working, double check your editor configuration.\n         *\n         * @warning media-embed-no-provider-name\n         */\n        console.warn(attachLinkToDocumentation('media-embed-no-provider-name: The configured media provider has no name and cannot be used.'), {\n          provider: provider\n        });\n        return false;\n      }\n\n      return !removedProviders.has(name);\n    });\n    /**\n     * The locale {@link module:utils/locale~Locale} instance.\n     *\n     * @member {module:utils/locale~Locale}\n     */\n\n    this.locale = locale;\n    /**\n     * The media provider definitions available for the registry. Usually corresponding with the\n     * {@link module:media-embed/mediaembed~MediaEmbedConfig media configuration}.\n     *\n     * @member {Array}\n     */\n\n    this.providerDefinitions = providerDefinitions;\n  }\n  /**\n   * Checks whether the passed URL is representing a certain media type allowed in the editor.\n   *\n   * @param {String} url The URL to be checked\n   * @returns {Boolean}\n   */\n\n\n  _createClass(MediaRegistry, [{\n    key: \"hasMedia\",\n    value: function hasMedia(url) {\n      return !!this._getMedia(url);\n    }\n    /**\n     * For the given media URL string and options, it returns the {@link module:engine/view/element~Element view element}\n     * representing that media.\n     *\n     * **Note:** If no URL is specified, an empty view element is returned.\n     *\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer The view writer used to produce a view element.\n     * @param {String} url The URL to be translated into a view element.\n     * @param {Object} options\n     * @param {String} [options.renderMediaPreview]\n     * @param {String} [options.renderForEditingView]\n     * @returns {module:engine/view/element~Element}\n     */\n\n  }, {\n    key: \"getMediaViewElement\",\n    value: function getMediaViewElement(writer, url, options) {\n      return this._getMedia(url).getViewElement(writer, options);\n    }\n    /**\n     * Returns a `Media` instance for the given URL.\n     *\n     * @protected\n     * @param {String} url The URL of the media.\n     * @returns {module:media-embed/mediaregistry~Media|null} The `Media` instance or `null` when there is none.\n     */\n\n  }, {\n    key: \"_getMedia\",\n    value: function _getMedia(url) {\n      if (!url) {\n        return new Media(this.locale);\n      }\n\n      url = url.trim();\n\n      var _iterator = _createForOfIteratorHelper(this.providerDefinitions),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var definition = _step.value;\n          var previewRenderer = definition.html;\n          var pattern = definition.url;\n\n          if (!Array.isArray(pattern)) {\n            pattern = [pattern];\n          }\n\n          var _iterator2 = _createForOfIteratorHelper(pattern),\n              _step2;\n\n          try {\n            for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n              var subPattern = _step2.value;\n\n              var match = this._getUrlMatches(url, subPattern);\n\n              if (match) {\n                return new Media(this.locale, url, match, previewRenderer);\n              }\n            }\n          } catch (err) {\n            _iterator2.e(err);\n          } finally {\n            _iterator2.f();\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      return null;\n    }\n    /**\n     * Tries to match `url` to `pattern`.\n     *\n     * @private\n     * @param {String} url The URL of the media.\n     * @param {RegExp} pattern The pattern that should accept the media URL.\n     * @returns {Array|null}\n     */\n\n  }, {\n    key: \"_getUrlMatches\",\n    value: function _getUrlMatches(url, pattern) {\n      // 1. Try to match without stripping the protocol and \"www\" subdomain.\n      var match = url.match(pattern);\n\n      if (match) {\n        return match;\n      } // 2. Try to match after stripping the protocol.\n\n\n      var rawUrl = url.replace(/^https?:\\/\\//, '');\n      match = rawUrl.match(pattern);\n\n      if (match) {\n        return match;\n      } // 3. Try to match after stripping the \"www\" subdomain.\n\n\n      rawUrl = rawUrl.replace(/^www\\./, '');\n      match = rawUrl.match(pattern);\n\n      if (match) {\n        return match;\n      }\n\n      return null;\n    }\n  }]);\n\n  return MediaRegistry;\n}();\n/**\n * Represents media defined by the provider configuration.\n *\n * It can be rendered to the {@link module:engine/view/element~Element view element} and used in the editing or data pipeline.\n *\n * @private\n */\n\n\nexport { MediaRegistry as default };\n\nvar Media = /*#__PURE__*/function () {\n  function Media(locale, url, match, previewRenderer) {\n    _classCallCheck(this, Media);\n\n    /**\n     * The URL this Media instance represents.\n     *\n     * @member {String}\n     */\n    this.url = this._getValidUrl(url);\n    /**\n     * Shorthand for {@link module:utils/locale~Locale#t}.\n     *\n     * @see module:utils/locale~Locale#t\n     * @method\n     */\n\n    this._t = locale.t;\n    /**\n     * The output of the `RegExp.match` which validated the {@link #url} of this media.\n     *\n     * @member {Object}\n     */\n\n    this._match = match;\n    /**\n     * The function returning the HTML string preview of this media.\n     *\n     * @member {Function}\n     */\n\n    this._previewRenderer = previewRenderer;\n  }\n  /**\n   * Returns the view element representation of the media.\n   *\n   * @param {module:engine/view/downcastwriter~DowncastWriter} writer The view writer used to produce a view element.\n   * @param {Object} options\n   * @param {String} [options.renderMediaPreview]\n   * @param {String} [options.renderForEditingView]\n   * @returns {module:engine/view/element~Element}\n   */\n\n\n  _createClass(Media, [{\n    key: \"getViewElement\",\n    value: function getViewElement(writer, options) {\n      var attributes = {};\n\n      if (options.renderForEditingView || options.renderMediaPreview && this.url && this._previewRenderer) {\n        if (this.url) {\n          attributes['data-oembed-url'] = this.url;\n        }\n\n        if (options.renderForEditingView) {\n          attributes.class = 'ck-media__wrapper';\n        }\n\n        var mediaHtml = this._getPreviewHtml(options);\n\n        return writer.createUIElement('div', attributes, function (domDocument) {\n          var domElement = this.toDomElement(domDocument);\n          domElement.innerHTML = mediaHtml;\n          return domElement;\n        });\n      } else {\n        if (this.url) {\n          attributes.url = this.url;\n        }\n\n        return writer.createEmptyElement('oembed', attributes);\n      }\n    }\n    /**\n     * Returns the HTML string of the media content preview.\n     *\n     * @param {module:engine/view/downcastwriter~DowncastWriter} writer The view writer used to produce a view element.\n     * @param {Object} options\n     * @param {String} [options.renderForEditingView]\n     * @returns {String}\n     */\n\n  }, {\n    key: \"_getPreviewHtml\",\n    value: function _getPreviewHtml(options) {\n      if (this._previewRenderer) {\n        return this._previewRenderer(this._match);\n      } else {\n        // The placeholder only makes sense for editing view and media which have URLs.\n        // Placeholder is never displayed in data and URL-less media have no content.\n        if (this.url && options.renderForEditingView) {\n          return this._getPlaceholderHtml();\n        }\n\n        return '';\n      }\n    }\n    /**\n     * Returns the placeholder HTML when the media has no content preview.\n     *\n     * @returns {String}\n     */\n\n  }, {\n    key: \"_getPlaceholderHtml\",\n    value: function _getPlaceholderHtml() {\n      var tooltip = new TooltipView();\n      var icon = new IconView();\n      tooltip.text = this._t('Open media in new tab');\n      icon.content = mediaPlaceholderIcon;\n      icon.viewBox = mediaPlaceholderIconViewBox;\n      var placeholder = new Template({\n        tag: 'div',\n        attributes: {\n          class: 'ck ck-reset_all ck-media__placeholder'\n        },\n        children: [{\n          tag: 'div',\n          attributes: {\n            class: 'ck-media__placeholder__icon'\n          },\n          children: [icon]\n        }, {\n          tag: 'a',\n          attributes: {\n            class: 'ck-media__placeholder__url',\n            target: '_blank',\n            rel: 'noopener noreferrer',\n            href: this.url\n          },\n          children: [{\n            tag: 'span',\n            attributes: {\n              class: 'ck-media__placeholder__url__text'\n            },\n            children: [this.url]\n          }, tooltip]\n        }]\n      }).render();\n      return placeholder.outerHTML;\n    }\n    /**\n     * Returns the full URL to the specified media.\n     *\n     * @param {String} url The URL of the media.\n     * @returns {String|null}\n     */\n\n  }, {\n    key: \"_getValidUrl\",\n    value: function _getValidUrl(url) {\n      if (!url) {\n        return null;\n      }\n\n      if (url.match(/^https?/)) {\n        return url;\n      }\n\n      return 'https://' + url;\n    }\n  }]);\n\n  return Media;\n}();","import 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/web.dom.iterable';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module media-embed/ui/mediaformview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport ViewCollection from '@ckeditor/ckeditor5-ui/src/viewcollection';\nimport ButtonView from '@ckeditor/ckeditor5-ui/src/button/buttonview';\nimport LabeledInputView from '@ckeditor/ckeditor5-ui/src/labeledinput/labeledinputview';\nimport InputTextView from '@ckeditor/ckeditor5-ui/src/inputtext/inputtextview';\nimport submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '@ckeditor/ckeditor5-ui/src/focuscycler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport checkIcon from '@ckeditor/ckeditor5-core/theme/icons/check.svg';\nimport cancelIcon from '@ckeditor/ckeditor5-core/theme/icons/cancel.svg';\nimport '../../theme/mediaform.css';\n/**\n * The media form view controller class.\n *\n * See {@link module:media-embed/ui/mediaformview~MediaFormView}.\n *\n * @extends module:ui/view~View\n */\nvar MediaFormView = /*#__PURE__*/\nfunction (_View) {\n    _inherits(MediaFormView, _View);\n    var _super = _createSuper(MediaFormView);\n    /**\n   * @param {Array.<Function>} validators Form validators used by {@link #isValid}.\n   * @param {module:utils/locale~Locale} [locale] The localization services instance.\n   */\n    function MediaFormView(validators, locale) {\n        var _this;\n        _classCallCheck(this, MediaFormView);\n        _this = _super.call(this, locale);\n        var t = locale.t;\n        /**\n     * Tracks information about DOM focus in the form.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n        _this.focusTracker = new FocusTracker();\n        /**\n     * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n        _this.keystrokes = new KeystrokeHandler();\n        /**\n     * The URL input view.\n     *\n     * @member {module:ui/labeledinput/labeledinputview~LabeledInputView}\n     */\n        _this.urlInputView = _this._createUrlInput();\n        /**\n     * The Save button view.\n     *\n     * @member {module:ui/button/buttonview~ButtonView}\n     */\n        _this.saveButtonView = _this._createButton(t('Save'), checkIcon, 'ck-button-save');\n        _this.saveButtonView.type = 'submit';\n        /**\n     * The Cancel button view.\n     *\n     * @member {module:ui/button/buttonview~ButtonView}\n     */\n        _this.cancelButtonView = _this._createButton(t('Cancel'), cancelIcon, 'ck-button-cancel', 'cancel');\n        /**\n     * A collection of views that can be focused in the form.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this._focusables = new ViewCollection();\n        /**\n     * Helps cycling over {@link #_focusables} in the form.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\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        /**\n     * An array of form validators used by {@link #isValid}.\n     *\n     * @readonly\n     * @protected\n     * @member {Array.<Function>}\n     */\n        _this._validators = validators;\n        _this.setTemplate({\n            tag: 'form',\n            attributes: {\n                class: [\n                    'ck',\n                    'ck-media-form'\n                ],\n                tabindex: '-1'\n            },\n            children: [\n                _this.urlInputView,\n                _this.saveButtonView,\n                _this.cancelButtonView\n            ]\n        });\n        /**\n     * The default info text for the {@link #urlInputView}.\n     *\n     * @private\n     * @member {String} #_urlInputViewInfoDefault\n     */\n        /**\n     * The info text with an additional tip for the {@link #urlInputView},\n     * displayed when the input has some value.\n     *\n     * @private\n     * @member {String} #_urlInputViewInfoTip\n     */\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(MediaFormView, [\n        {\n            key: 'render',\n            value: function render() {\n                var _this2 = this;\n                _get(_getPrototypeOf(MediaFormView.prototype), 'render', this).call(this);\n                submitHandler({ view: this });\n                var childViews = [\n                    this.urlInputView,\n                    this.saveButtonView,\n                    this.cancelButtonView\n                ];\n                childViews.forEach(function (v) {\n                    // Register the view as focusable.\n                    _this2._focusables.add(v);\n                    // Register the view in the focus tracker.\n                    _this2.focusTracker.add(v.element);\n                });\n                // Start listening for the keystrokes coming from #element.\n                this.keystrokes.listenTo(this.element);\n                var stopPropagation = function stopPropagation(data) {\n                    return data.stopPropagation();\n                };\n                // Since the form is in the dropdown panel which is a child of the toolbar, the toolbar's\n                // keystroke handler would take over the key management in the URL input. We need to prevent\n                // this ASAP. Otherwise, the basic caret movement using the arrow keys will be impossible.\n                this.keystrokes.set('arrowright', stopPropagation);\n                this.keystrokes.set('arrowleft', stopPropagation);\n                this.keystrokes.set('arrowup', stopPropagation);\n                this.keystrokes.set('arrowdown', stopPropagation);\n                // Intercept the \"selectstart\" event, which is blocked by default because of the default behavior\n                // of the DropdownView#panelView.\n                // TODO: blocking \"selectstart\" in the #panelView should be configurable per–drop–down instance.\n                this.listenTo(this.urlInputView.element, 'selectstart', function (evt, domEvt) {\n                    domEvt.stopPropagation();\n                }, { priority: 'high' });\n            }    /**\n     * Focuses the fist {@link #_focusables} in the form.\n     */\n        },\n        {\n            key: 'focus',\n            value: function focus() {\n                this._focusCycler.focusFirst();\n            }    /**\n     * The native DOM `value` of the {@link #urlInputView} element.\n     *\n     * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n     * which works one way only and may not represent the actual state of the component in the DOM.\n     *\n     * @type {Number}\n     */\n        },\n        {\n            key: 'isValid',\n            /**\n     * Validates the form and returns `false` when some fields are invalid.\n     *\n     * @returns {Boolean}\n     */\n            value: function isValid() {\n                this.resetFormStatus();\n                var _iterator = _createForOfIteratorHelper(this._validators), _step;\n                try {\n                    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                        var validator = _step.value;\n                        var errorText = validator(this);\n                        // One error per field is enough.\n                        if (errorText) {\n                            // Apply updated error.\n                            this.urlInputView.errorText = errorText;\n                            return false;\n                        }\n                    }\n                } catch (err) {\n                    _iterator.e(err);\n                } finally {\n                    _iterator.f();\n                }\n                return true;\n            }    /**\n     * Cleans up the supplementary error and information text of the {@link #urlInputView}\n     * bringing them back to the state when the form has been displayed for the first time.\n     *\n     * See {@link #isValid}.\n     */\n        },\n        {\n            key: 'resetFormStatus',\n            value: function resetFormStatus() {\n                this.urlInputView.errorText = null;\n                this.urlInputView.infoText = this._urlInputViewInfoDefault;\n            }    /**\n     * Creates a labeled input view.\n     *\n     * @private\n     * @returns {module:ui/labeledinput/labeledinputview~LabeledInputView} Labeled input view instance.\n     */\n        },\n        {\n            key: '_createUrlInput',\n            value: function _createUrlInput() {\n                var _this3 = this;\n                var t = this.locale.t;\n                var labeledInput = new LabeledInputView(this.locale, InputTextView);\n                var inputView = labeledInput.inputView;\n                this._urlInputViewInfoDefault = t('Paste the media URL in the input.');\n                this._urlInputViewInfoTip = t('Tip: Paste the URL into the content to embed faster.');\n                labeledInput.label = t('Media URL');\n                labeledInput.infoText = this._urlInputViewInfoDefault;\n                inputView.placeholder = 'https://example.com';\n                inputView.on('input', function () {\n                    // Display the tip text only when there's some value. Otherwise fall back to the default info text.\n                    labeledInput.infoText = inputView.element.value ? _this3._urlInputViewInfoTip : _this3._urlInputViewInfoDefault;\n                });\n                return labeledInput;\n            }    /**\n     * Creates a button view.\n     *\n     * @private\n     * @param {String} label The button label.\n     * @param {String} icon The button icon.\n     * @param {String} className The additional button CSS class name.\n     * @param {String} [eventName] An event name that the `ButtonView#execute` event will be delegated to.\n     * @returns {module:ui/button/buttonview~ButtonView} The button view instance.\n     */\n        },\n        {\n            key: '_createButton',\n            value: function _createButton(label, icon, className, eventName) {\n                var button = new ButtonView(this.locale);\n                button.set({\n                    label: label,\n                    icon: icon,\n                    tooltip: true\n                });\n                button.extendTemplate({ attributes: { class: className } });\n                if (eventName) {\n                    button.delegate('execute').to(this, eventName);\n                }\n                return button;\n            }\n        },\n        {\n            key: 'url',\n            get: function get() {\n                return this.urlInputView.inputView.element.value.trim();\n            }    /**\n     * Sets the native DOM `value` of the {@link #urlInputView} element.\n     *\n     * **Note**: Do not confuse it with the {@link module:ui/inputtext/inputtextview~InputTextView#value}\n     * which works one way only and may not represent the actual state of the component in the DOM.\n     *\n     * @param {String} url\n     */,\n            set: function set(url) {\n                this.urlInputView.inputView.element.value = url.trim();\n            }\n        }\n    ]);\n    return MediaFormView;\n}(View);\n/**\n * Fired when the form view is submitted (when one of the children triggered the submit event),\n * e.g. click on {@link #saveButtonView}.\n *\n * @event submit\n */\n/**\n * Fired when the form view is canceled, e.g. click on {@link #cancelButtonView}.\n *\n * @event cancel\n */\nexport {\n    MediaFormView as default\n};","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module media-embed/utils\n */\nimport { isWidget, toWidget } from '@ckeditor/ckeditor5-widget/src/utils';\n/**\n * Converts a given {@link module:engine/view/element~Element} to a media embed widget:\n * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the media widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer An instance of the view writer.\n * @param {String} label The element's label.\n * @returns {module:engine/view/element~Element}\n */\n\nexport function toMediaWidget(viewElement, writer, label) {\n  writer.setCustomProperty('media', true, viewElement);\n  return toWidget(viewElement, writer, {\n    label: label\n  });\n}\n/**\n * Returns a media widget editing view element if one is selected.\n *\n * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} selection\n * @returns {module:engine/view/element~Element|null}\n */\n\nexport function getSelectedMediaViewWidget(selection) {\n  var viewElement = selection.getSelectedElement();\n\n  if (viewElement && isMediaWidget(viewElement)) {\n    return viewElement;\n  }\n\n  return null;\n}\n/**\n * Checks if a given view element is a media widget.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @returns {Boolean}\n */\n\nexport function isMediaWidget(viewElement) {\n  return !!viewElement.getCustomProperty('media') && isWidget(viewElement);\n}\n/**\n * Creates a view element representing the media. Either \"semantic\" one for the data pipeline:\n *\n *\t\t<figure class=\"media\">\n *\t\t\t<oembed url=\"foo\"></oembed>\n *\t\t</figure>\n *\n * or \"non-semantic\" (for the editing view pipeline):\n *\n *\t\t<figure class=\"media\">\n *\t\t\t<div data-oembed-url=\"foo\">[ non-semantic media preview for \"foo\" ]</div>\n *\t\t</figure>\n *\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer\n * @param {module:media-embed/mediaregistry~MediaRegistry} registry\n * @param {String} url\n * @param {Object} options\n * @param {String} [options.useSemanticWrapper]\n * @param {String} [options.renderForEditingView]\n * @returns {module:engine/view/containerelement~ContainerElement}\n */\n\nexport function createMediaFigureElement(writer, registry, url, options) {\n  var figure = writer.createContainerElement('figure', {\n    class: 'media'\n  }); // TODO: This is a hack. Without it, the figure in the data pipeline will contain &nbsp; because\n  // its only child is the UIElement (wrapper).\n  //\n  // Note: The hack is a copy&paste from widget utils; it makes the figure act like it's a widget.\n\n  figure.getFillerOffset = getFillerOffset;\n  writer.insert(writer.createPositionAt(figure, 0), registry.getMediaViewElement(writer, url, options));\n  return figure;\n}\n/**\n * Returns a selected media element in the model, if any.\n *\n * @param {module:engine/model/selection~Selection} selection\n * @returns {module:engine/model/element~Element|null}\n */\n\nexport function getSelectedMediaModelWidget(selection) {\n  var selectedElement = selection.getSelectedElement();\n\n  if (selectedElement && selectedElement.is('media')) {\n    return selectedElement;\n  }\n\n  return null;\n}\n/**\n * Creates a media element and inserts it into the model.\n *\n * **Note**: This method will use {@link module:engine/model/model~Model#insertContent `model.insertContent()`} logic of inserting content\n * if no `insertPosition` is passed.\n *\n * @param {module:engine/model/model~Model} model\n * @param {String} url An URL of an embeddable media.\n * @param {module:engine/model/position~Position} [insertPosition] Position to insert media. If not specified,\n * the default behavior of {@link module:engine/model/model~Model#insertContent `model.insertContent()`} will\n * be applied.\n */\n\nexport function insertMedia(model, url, insertPosition) {\n  model.change(function (writer) {\n    var mediaElement = writer.createElement('media', {\n      url: url\n    });\n    model.insertContent(mediaElement, insertPosition);\n    writer.setSelection(mediaElement, 'on');\n  });\n}\n\nfunction getFillerOffset() {\n  return null;\n}","export default \"<svg viewBox=\\\"0 0 64 42\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M47.426 17V3.713L63.102 0v19.389h-.001l.001.272c0 1.595-2.032 3.43-4.538 4.098-2.506.668-4.538-.083-4.538-1.678 0-1.594 2.032-3.43 4.538-4.098.914-.244 2.032-.565 2.888-.603V4.516L49.076 7.447v9.556A1.014 1.014 0 0 0 49 17h-1.574zM29.5 17h-8.343a7.073 7.073 0 1 0-4.657 4.06v3.781H3.3a2.803 2.803 0 0 1-2.8-2.804V8.63a2.803 2.803 0 0 1 2.8-2.805h4.082L8.58 2.768A1.994 1.994 0 0 1 10.435 1.5h8.985c.773 0 1.477.448 1.805 1.149l1.488 3.177H26.7c1.546 0 2.8 1.256 2.8 2.805V17zm-11.637 0H17.5a1 1 0 0 0-1 1v.05A4.244 4.244 0 1 1 17.863 17zm29.684 2c.97 0 .953-.048.953.889v20.743c0 .953.016.905-.953.905H19.453c-.97 0-.953.048-.953-.905V19.89c0-.937-.016-.889.97-.889h28.077zm-4.701 19.338V22.183H24.154v16.155h18.692zM20.6 21.375v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616v-1.616H20.6zm0 3.231v1.616h1.616V37.53H20.6zm24.233-16.155v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615v-1.616h-1.615zm0 3.231v1.616h1.615V37.53h-1.615zM29.485 25.283a.4.4 0 0 1 .593-.35l9.05 4.977a.4.4 0 0 1 0 .701l-9.05 4.978a.4.4 0 0 1-.593-.35v-9.956z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M18.68 2.53c.6 0 .59-.03.59.55v12.84c0 .59.01.56-.59.56H1.29c-.6 0-.59.03-.59-.56V3.08c0-.58-.01-.55.6-.55h17.38zM15.77 14.5v-10H4.2v10h11.57zM2 4v1h1V4H2zm0 2v1h1V6H2zm0 2v1h1V8H2zm0 2v1h1v-1H2zm0 2v1h1v-1H2zm0 2v1h1v-1H2zM17 4v1h1V4h-1zm0 2v1h1V6h-1zm0 2v1h1V8h-1zm0 2v1h1v-1h-1zm0 2v1h1v-1h-1zm0 2v1h1v-1h-1zM7.5 6.677a.4.4 0 0 1 .593-.351l5.133 2.824a.4.4 0 0 1 0 .7l-5.133 2.824a.4.4 0 0 1-.593-.35V6.676z\\\"/></svg>\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaembed.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7c641f6e\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaembed.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaembed.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaembedediting.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3ef68288\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaembedediting.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaembedediting.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaform.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"401b6492\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaform.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./mediaform.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import \"core-js/modules/es6.set\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paragraph/paragraph\n */\nimport ParagraphCommand from \"./paragraphcommand\";\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * The paragraph feature for the editor.\n *\n * It introduces the `<paragraph>` element in the model which renders as a `<p>` element in the DOM and data.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Paragraph = /*#__PURE__*/function (_Plugin) {\n  _inherits(Paragraph, _Plugin);\n\n  var _super = _createSuper(Paragraph);\n\n  function Paragraph() {\n    _classCallCheck(this, Paragraph);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Paragraph, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var _this = this;\n\n      var editor = this.editor;\n      var model = editor.model;\n      var data = editor.data;\n      editor.commands.add('paragraph', new ParagraphCommand(editor)); // Schema.\n\n      model.schema.register('paragraph', {\n        inheritAllFrom: '$block'\n      });\n      editor.conversion.elementToElement({\n        model: 'paragraph',\n        view: 'p'\n      }); // Content autoparagraphing. --------------------------------------------------\n      // Handles element which has not been converted by any plugin and checks if it would be converted if\n      // we wrap it in a paragraph or change it to a paragraph.\n\n      editor.conversion.for('upcast').elementToElement({\n        model: function model(viewElement, modelWriter) {\n          if (!Paragraph.paragraphLikeElements.has(viewElement.name)) {\n            return null;\n          } // Do not auto-paragraph empty elements.\n\n\n          if (viewElement.isEmpty) {\n            return null;\n          }\n\n          return modelWriter.createElement('paragraph');\n        },\n        converterPriority: 'low'\n      });\n      data.upcastDispatcher.on('element', function (evt, data, conversionApi) {\n        // Do not try auto-paragraphing if the element was already converted.\n        if (!conversionApi.consumable.test(data.viewItem, {\n          name: data.viewItem.name\n        })) {\n          return;\n        } // If the element is not paragraph-like try wrapping it in a paragraph.\n\n\n        if (isParagraphable(data.viewItem, data.modelCursor, conversionApi.schema)) {\n          Object.assign(data, wrapInParagraph(data.viewItem, data.modelCursor, conversionApi));\n        }\n      }, {\n        priority: 'low'\n      }); // Handles not converted text nodes and checks if would be converted if we wraps then by a paragraph.\n\n      data.upcastDispatcher.on('text', function (evt, data, conversionApi) {\n        // When node is already converted then do nothing.\n        if (data.modelRange) {\n          return;\n        }\n\n        if (isParagraphable(data.viewItem, data.modelCursor, conversionApi.schema)) {\n          Object.assign(data, wrapInParagraph(data.viewItem, data.modelCursor, conversionApi));\n        }\n      }, {\n        priority: 'lowest'\n      }); // Empty roots autoparagraphing. -----------------------------------------------\n      // Post-fixer which takes care of adding empty paragraph elements to empty roots.\n      // Besides fixing content on #changesDone we also need to handle editor.data#ready event because\n      // if initial data is empty or setData() wasn't even called there will be no #change fired.\n\n      model.document.registerPostFixer(function (writer) {\n        return _this._autoparagraphEmptyRoots(writer);\n      });\n      editor.data.on('ready', function () {\n        model.enqueueChange('transparent', function (writer) {\n          return _this._autoparagraphEmptyRoots(writer);\n        });\n      }, {\n        priority: 'lowest'\n      });\n    }\n    /**\n     * Fixes all empty roots.\n     *\n     * @private\n     * @returns {Boolean} `true` if any change has been applied, `false` otherwise.\n     */\n\n  }, {\n    key: \"_autoparagraphEmptyRoots\",\n    value: function _autoparagraphEmptyRoots(writer) {\n      var model = this.editor.model;\n\n      var _iterator = _createForOfIteratorHelper(model.document.getRootNames()),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var rootName = _step.value;\n          var root = model.document.getRoot(rootName);\n\n          if (root.isEmpty && root.rootName != '$graveyard') {\n            // If paragraph element is allowed in the root, create paragraph element.\n            if (model.schema.checkChild(root, 'paragraph')) {\n              writer.insertElement('paragraph', root);\n              return true;\n            }\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'Paragraph';\n    }\n  }]);\n\n  return Paragraph;\n}(Plugin);\n/**\n * A list of element names which should be treated by the autoparagraphing algorithms as\n * paragraph-like. This means that e.g. the following content:\n *\n *\t\t<h1>Foo</h1>\n *\t\t<table>\n *\t\t\t<tr>\n *\t\t\t\t<td>X</td>\n *\t\t\t\t<td>\n *\t\t\t\t\t<ul>\n *\t\t\t\t\t\t<li>Y</li>\n *\t\t\t\t\t\t<li>Z</li>\n *\t\t\t\t\t</ul>\n *\t\t\t\t</td>\n *\t\t\t</tr>\n *\t\t</table>\n *\n * contains five paragraph-like elements: `<h1>`, two `<td>`s and two `<li>`s.\n * Hence, if none of the features is going to convert those elements the above content will be automatically handled\n * by the paragraph feature and converted to:\n *\n *\t\t<p>Foo</p>\n *\t\t<p>X</p>\n *\t\t<p>Y</p>\n *\t\t<p>Z</p>\n *\n * Note: The `<td>` containing two `<li>` elements was ignored as the innermost paragraph-like elements\n * have a priority upon conversion.\n *\n * @member {Set.<String>} module:paragraph/paragraph~Paragraph.paragraphLikeElements\n */\n\n\nexport { Paragraph as default };\nParagraph.paragraphLikeElements = new Set(['blockquote', 'dd', 'div', 'dt', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'li', 'p', 'td']);\n\nfunction wrapInParagraph(input, position, conversionApi) {\n  var paragraph = conversionApi.writer.createElement('paragraph');\n  conversionApi.writer.insert(paragraph, position);\n  return conversionApi.convertItem(input, conversionApi.writer.createPositionAt(paragraph, 0));\n}\n\nfunction isParagraphable(node, position, schema) {\n  var context = schema.createContext(position); // When paragraph is allowed in this context...\n\n  if (!schema.checkChild(context, 'paragraph')) {\n    return false;\n  } // And a node would be allowed in this paragraph...\n\n\n  if (!schema.checkChild(context.push('paragraph'), node)) {\n    return false;\n  }\n\n  return true;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paragraph/paragraphcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport first from '@ckeditor/ckeditor5-utils/src/first';\n/**\n * The paragraph command.\n *\n * @extends module:core/command~Command\n */\n\nvar ParagraphCommand = /*#__PURE__*/function (_Command) {\n  _inherits(ParagraphCommand, _Command);\n\n  var _super = _createSuper(ParagraphCommand);\n\n  function ParagraphCommand() {\n    _classCallCheck(this, ParagraphCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(ParagraphCommand, [{\n    key: \"refresh\",\n\n    /**\n     * The value of the command. Indicates whether the selection start is placed in a paragraph.\n     *\n     * @readonly\n     * @observable\n     * @member {Boolean} #value\n     */\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var model = this.editor.model;\n      var document = model.document;\n      var block = first(document.selection.getSelectedBlocks());\n      this.value = !!block && block.is('paragraph');\n      this.isEnabled = !!block && checkCanBecomeParagraph(block, model.schema);\n    }\n    /**\n     * Executes the command. All the blocks (see {@link module:engine/model/schema~Schema}) in the selection\n     * will be turned to paragraphs.\n     *\n     * @fires execute\n     * @param {Object} [options] Options for the executed command.\n     * @param {module:engine/model/selection~Selection|module:engine/model/documentselection~DocumentSelection} [options.selection]\n     * The selection that the command should be applied to.\n     * By default, if not provided, the command is applied to the {@link module:engine/model/document~Document#selection}.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var document = model.document;\n      model.change(function (writer) {\n        var blocks = (options.selection || document.selection).getSelectedBlocks();\n\n        var _iterator = _createForOfIteratorHelper(blocks),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var block = _step.value;\n\n            if (!block.is('paragraph') && checkCanBecomeParagraph(block, model.schema)) {\n              writer.rename(block, 'paragraph');\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n  }]);\n\n  return ParagraphCommand;\n}(Command); // Checks whether the given block can be replaced by a paragraph.\n//\n// @private\n// @param {module:engine/model/element~Element} block A block to be tested.\n// @param {module:engine/model/schema~Schema} schema The schema of the document.\n// @returns {Boolean}\n\n\nexport { ParagraphCommand as default };\n\nfunction checkCanBecomeParagraph(block, schema) {\n  return schema.checkChild(block.parent, 'paragraph') && !schema.isObject(block);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.string.starts-with\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.match\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/image\n */\n\n/* globals btoa */\nimport ViewMatcher from '@ckeditor/ckeditor5-engine/src/view/matcher';\nimport UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';\n/**\n * Replaces source attribute of all `<img>` elements representing regular\n * images (not the Word shapes) with inlined base64 image representation extracted from RTF or Blob data.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment on which transform images.\n * @param {String} rtfData The RTF data from which images representation will be used.\n */\n\nexport function replaceImagesSourceWithBase64(documentFragment, rtfData) {\n  if (!documentFragment.childCount) {\n    return;\n  }\n\n  var upcastWriter = new UpcastWriter();\n  var shapesIds = findAllShapesIds(documentFragment, upcastWriter);\n  removeAllImgElementsRepresentingShapes(shapesIds, documentFragment, upcastWriter);\n  removeAllShapeElements(documentFragment, upcastWriter);\n  var images = findAllImageElementsWithLocalSource(documentFragment, upcastWriter);\n\n  if (images.length) {\n    replaceImagesFileSourceWithInlineRepresentation(images, extractImageDataFromRtf(rtfData), upcastWriter);\n  }\n}\n/**\n * Converts given HEX string to base64 representation.\n *\n * @protected\n * @param {String} hexString The HEX string to be converted.\n * @returns {String} Base64 representation of a given HEX string.\n */\n\nexport function _convertHexToBase64(hexString) {\n  return btoa(hexString.match(/\\w{2}/g).map(function (char) {\n    return String.fromCharCode(parseInt(char, 16));\n  }).join(''));\n} // Finds all shapes (`<v:*>...</v:*>`) ids. Shapes can represent images (canvas)\n// or Word shapes (which does not have RTF or Blob representation).\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment\n// from which to extract shape ids.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Array.<String>} Array of shape ids.\n\nfunction findAllShapesIds(documentFragment, writer) {\n  var range = writer.createRangeIn(documentFragment);\n  var shapeElementsMatcher = new ViewMatcher({\n    name: /v:(.+)/\n  });\n  var shapesIds = [];\n\n  var _iterator = _createForOfIteratorHelper(range),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var value = _step.value;\n      var el = value.item;\n      var prevSiblingName = el.previousSibling && el.previousSibling.name || null; // If shape element have 'o:gfxdata' attribute and is not directly before `<v:shapetype>` element it means it represent Word shape.\n\n      if (shapeElementsMatcher.match(el) && el.getAttribute('o:gfxdata') && prevSiblingName !== 'v:shapetype') {\n        shapesIds.push(value.item.getAttribute('id'));\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return shapesIds;\n} // Removes all `<img>` elements which represents Word shapes and not regular images.\n//\n// @param {Array.<String>} shapesIds Shape ids which will be checked against `<img>` elements.\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment from which to remove `<img>` elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n\n\nfunction removeAllImgElementsRepresentingShapes(shapesIds, documentFragment, writer) {\n  var range = writer.createRangeIn(documentFragment);\n  var imageElementsMatcher = new ViewMatcher({\n    name: 'img'\n  });\n  var imgs = [];\n\n  var _iterator2 = _createForOfIteratorHelper(range),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var value = _step2.value;\n\n      if (imageElementsMatcher.match(value.item)) {\n        var el = value.item;\n        var shapes = el.getAttribute('v:shapes') ? el.getAttribute('v:shapes').split(' ') : [];\n\n        if (shapes.length && shapes.every(function (shape) {\n          return shapesIds.indexOf(shape) > -1;\n        })) {\n          imgs.push(el); // Shapes may also have empty source while content is paste in some browsers (Safari).\n        } else if (!el.getAttribute('src')) {\n          imgs.push(el);\n        }\n      }\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n\n  for (var _i = 0, _imgs = imgs; _i < _imgs.length; _i++) {\n    var img = _imgs[_i];\n    writer.remove(img);\n  }\n} // Removes all shape elements (`<v:*>...</v:*>`) so they do not pollute the output structure.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment from which to remove shape elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n\n\nfunction removeAllShapeElements(documentFragment, writer) {\n  var range = writer.createRangeIn(documentFragment);\n  var shapeElementsMatcher = new ViewMatcher({\n    name: /v:(.+)/\n  });\n  var shapes = [];\n\n  var _iterator3 = _createForOfIteratorHelper(range),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var value = _step3.value;\n\n      if (shapeElementsMatcher.match(value.item)) {\n        shapes.push(value.item);\n      }\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  for (var _i2 = 0, _shapes = shapes; _i2 < _shapes.length; _i2++) {\n    var shape = _shapes[_i2];\n    writer.remove(shape);\n  }\n} // Finds all `<img>` elements in a given document fragment which have source pointing to local `file://` resource.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment in which to look for `<img>` elements.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Object} result All found images grouped by source type.\n// @returns {Array.<module:engine/view/element~Element>} result.file Array of found `<img>` elements with `file://` source.\n// @returns {Array.<module:engine/view/element~Element>} result.blob Array of found `<img>` elements with `blob:` source.\n\n\nfunction findAllImageElementsWithLocalSource(documentFragment, writer) {\n  var range = writer.createRangeIn(documentFragment);\n  var imageElementsMatcher = new ViewMatcher({\n    name: 'img'\n  });\n  var imgs = [];\n\n  var _iterator4 = _createForOfIteratorHelper(range),\n      _step4;\n\n  try {\n    for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n      var value = _step4.value;\n\n      if (imageElementsMatcher.match(value.item)) {\n        if (value.item.getAttribute('src').startsWith('file://')) {\n          imgs.push(value.item);\n        }\n      }\n    }\n  } catch (err) {\n    _iterator4.e(err);\n  } finally {\n    _iterator4.f();\n  }\n\n  return imgs;\n} // Extracts all images HEX representations from a given RTF data.\n//\n// @param {String} rtfData The RTF data from which to extract images HEX representation.\n// @returns {Array.<Object>} Array of found HEX representations. Each array item is an object containing:\n//\n// \t\t* {String} hex Image representation in HEX format.\n// \t\t* {string} type Type of image, `image/png` or `image/jpeg`.\n\n\nfunction extractImageDataFromRtf(rtfData) {\n  if (!rtfData) {\n    return [];\n  }\n\n  var regexPictureHeader = /{\\\\pict[\\s\\S]+?\\\\bliptag-?\\d+(\\\\blipupi-?\\d+)?({\\\\\\*\\\\blipuid\\s?[\\da-fA-F]+)?[\\s}]*?/;\n  var regexPicture = new RegExp('(?:(' + regexPictureHeader.source + '))([\\\\da-fA-F\\\\s]+)\\\\}', 'g');\n  var images = rtfData.match(regexPicture);\n  var result = [];\n\n  if (images) {\n    var _iterator5 = _createForOfIteratorHelper(images),\n        _step5;\n\n    try {\n      for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n        var image = _step5.value;\n        var imageType = false;\n\n        if (image.includes('\\\\pngblip')) {\n          imageType = 'image/png';\n        } else if (image.includes('\\\\jpegblip')) {\n          imageType = 'image/jpeg';\n        }\n\n        if (imageType) {\n          result.push({\n            hex: image.replace(regexPictureHeader, '').replace(/[^\\da-fA-F]/g, ''),\n            type: imageType\n          });\n        }\n      }\n    } catch (err) {\n      _iterator5.e(err);\n    } finally {\n      _iterator5.f();\n    }\n  }\n\n  return result;\n} // Replaces `src` attribute value of all given images with the corresponding base64 image representation.\n//\n// @param {Array.<module:engine/view/element~Element>} imageElements Array of image elements which will have its source replaced.\n// @param {Array.<Object>} imagesHexSources Array of images hex sources (usually the result of `extractImageDataFromRtf()` function).\n// The array should be the same length as `imageElements` parameter.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n\n\nfunction replaceImagesFileSourceWithInlineRepresentation(imageElements, imagesHexSources, writer) {\n  // Assume there is an equal amount of image elements and images HEX sources so they can be matched accordingly based on existing order.\n  if (imageElements.length === imagesHexSources.length) {\n    for (var i = 0; i < imageElements.length; i++) {\n      var newSrc = \"data:\".concat(imagesHexSources[i].type, \";base64,\").concat(_convertHexToBase64(imagesHexSources[i].hex));\n      writer.setAttribute('src', newSrc, imageElements[i]);\n    }\n  }\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.constructor\";\nimport \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/web.dom.iterable\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/list\n */\nimport Element from '@ckeditor/ckeditor5-engine/src/view/element';\nimport Matcher from '@ckeditor/ckeditor5-engine/src/view/matcher';\nimport UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';\n/**\n * Transforms Word specific list-like elements to the semantic HTML lists.\n *\n * Lists in Word are represented by block elements with special attributes like:\n *\n *\t\t<p class=MsoListParagraphCxSpFirst style='mso-list:l1 level1 lfo1'>...</p> // Paragraph based list.\n *\t\t<h1 style='mso-list:l0 level1 lfo1'>...</h1> // Heading 1 based list.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment The view structure which to transform.\n * @param {String} stylesString Styles from which list-like elements styling will be extracted.\n */\n\nexport function transformListItemLikeElementsIntoLists(documentFragment, stylesString) {\n  if (!documentFragment.childCount) {\n    return;\n  }\n\n  var writer = new UpcastWriter();\n  var itemLikeElements = findAllItemLikeElements(documentFragment, writer);\n\n  if (!itemLikeElements.length) {\n    return;\n  }\n\n  var currentList = null;\n  itemLikeElements.forEach(function (itemLikeElement, i) {\n    if (!currentList || isNewListNeeded(itemLikeElements[i - 1], itemLikeElement)) {\n      var listStyle = detectListStyle(itemLikeElement, stylesString);\n      currentList = insertNewEmptyList(listStyle, itemLikeElement.element, writer);\n    }\n\n    var listItem = transformElementIntoListItem(itemLikeElement.element, writer);\n    writer.appendChild(listItem, currentList);\n  });\n}\n/**\n * Removes paragraph wrapping content inside a list item.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\n\nexport function unwrapParagraphInListItem(documentFragment, writer) {\n  var _iterator = _createForOfIteratorHelper(writer.createRangeIn(documentFragment)),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var value = _step.value;\n      var element = value.item;\n\n      if (element.is('li')) {\n        // Google Docs allows on single paragraph inside LI.\n        var firstChild = element.getChild(0);\n\n        if (firstChild.is('p')) {\n          writer.unwrapElement(firstChild);\n        }\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n} // Finds all list-like elements in a given document fragment.\n//\n// @param {module:engine/view/documentfragment~DocumentFragment} documentFragment Document fragment\n// in which to look for list-like nodes.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {Array.<Object>} Array of found list-like items. Each item is an object containing:\n//\n//\t\t* {module:engine/src/view/element~Element} element List-like element.\n//\t\t* {Number} id List item id parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} order List item creation order parsed from `mso-list` style (see `getListItemData()` function).\n//\t\t* {Number} indent List item indentation level parsed from `mso-list` style (see `getListItemData()` function).\n\nfunction findAllItemLikeElements(documentFragment, writer) {\n  var range = writer.createRangeIn(documentFragment); // Matcher for finding list-like elements.\n\n  var itemLikeElementsMatcher = new Matcher({\n    name: /^p|h\\d+$/,\n    styles: {\n      'mso-list': /.*/\n    }\n  });\n  var itemLikeElements = [];\n\n  var _iterator2 = _createForOfIteratorHelper(range),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var value = _step2.value;\n\n      if (value.type === 'elementStart' && itemLikeElementsMatcher.match(value.item)) {\n        var itemData = getListItemData(value.item);\n        itemLikeElements.push({\n          element: value.item,\n          id: itemData.id,\n          order: itemData.order,\n          indent: itemData.indent\n        });\n      }\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n\n  return itemLikeElements;\n} // Extracts list item style from the provided CSS.\n//\n// List item style is extracted from CSS stylesheet. Each list with its specific style attribute\n// value (`mso-list:l1 level1 lfo1`) has its dedicated properties in a CSS stylesheet defined with a selector like:\n//\n// \t\t@list l1:level1 { ... }\n//\n// It contains `mso-level-number-format` property which defines list numbering/bullet style. If this property\n// is not defined it means default `decimal` numbering.\n//\n// Here CSS string representation is used as `mso-level-number-format` property is an invalid CSS property\n// and will be removed during CSS parsing.\n//\n// @param {Object} listLikeItem List-like item for which list style will be searched for. Usually\n// a result of `findAllItemLikeElements()` function.\n// @param {String} stylesString CSS stylesheet.\n// @returns {Object} result\n// @returns {String} result.type List type, could be `ul` or `ol`.\n// @returns {String} result.style List style, for example: `decimal`, `lower-roman`, etc. It is extracted\n// directly from Word stylesheet without further processing and may be not compatible\n// with CSS `list-style-type` property accepted values.\n\n\nfunction detectListStyle(listLikeItem, stylesString) {\n  var listStyleRegexp = new RegExp(\"@list l\".concat(listLikeItem.id, \":level\").concat(listLikeItem.indent, \"\\\\s*({[^}]*)\"), 'gi');\n  var listStyleTypeRegex = /mso-level-number-format:([^;]*);/gi;\n  var listStyleMatch = listStyleRegexp.exec(stylesString);\n  var listStyleType = 'decimal'; // Decimal is default one.\n\n  if (listStyleMatch && listStyleMatch[1]) {\n    var listStyleTypeMatch = listStyleTypeRegex.exec(listStyleMatch[1]);\n\n    if (listStyleTypeMatch && listStyleTypeMatch[1]) {\n      listStyleType = listStyleTypeMatch[1].trim();\n    }\n  }\n\n  return {\n    type: listStyleType !== 'bullet' && listStyleType !== 'image' ? 'ol' : 'ul',\n    style: listStyleType\n  };\n} // Creates empty list of a given type and inserts it after a specified element.\n//\n// @param {Object} listStyle List style object which determines the type of newly created list.\n// Usually a result of `detectListStyle()` function.\n// @param {module:engine/view/element~Element} element Element before which list is inserted.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} Newly created list element.\n\n\nfunction insertNewEmptyList(listStyle, element, writer) {\n  var list = new Element(listStyle.type);\n  var position = element.parent.getChildIndex(element);\n  writer.insertChild(position, list, element.parent);\n  return list;\n} // Transforms given element into a semantic list item. As the function operates on a provided\n// {module:engine/src/view/element~Element element} it will modify the view structure to which this element belongs.\n//\n// @param {module:engine/view/element~Element} element Element which will be transformed into list item.\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n// @returns {module:engine/view/element~Element} New element to which the given one was transformed. It is\n// inserted in place of the old element (the reference to the old element is lost due to renaming).\n\n\nfunction transformElementIntoListItem(element, writer) {\n  removeBulletElement(element, writer);\n  return writer.rename('li', element);\n} // Extracts list item information from Word specific list-like element style:\n//\n//\t\t`style=\"mso-list:l1 level1 lfo1\"`\n//\n// where:\n//\n//\t\t* `l1` is a list id (however it does not mean this is a continuous list - see #43),\n//\t\t* `level1` is a list item indentation level,\n//\t\t* `lfo1` is a list insertion order in a document.\n//\n// @param {module:engine/view/element~Element} element Element from which style data is extracted.\n// @returns {Object} result\n// @returns {Number} result.id Parent list id.\n// @returns {Number} result.order List item creation order.\n// @returns {Number} result.indent List item indentation level.\n\n\nfunction getListItemData(element) {\n  var data = {};\n  var listStyle = element.getStyle('mso-list');\n\n  if (listStyle) {\n    data.id = parseInt(listStyle.match(/(^|\\s+)l(\\d+)/i)[2]);\n    data.order = parseInt(listStyle.match(/\\s*lfo(\\d+)/i)[1]);\n    data.indent = parseInt(listStyle.match(/\\s*level(\\d+)/i)[1]);\n  }\n\n  return data;\n} // Removes span with a numbering/bullet from a given element.\n//\n// @param {module:engine/view/element~Element} element\n// @param {module:engine/view/upcastwriter~UpcastWriter} writer\n\n\nfunction removeBulletElement(element, writer) {\n  // Matcher for finding `span` elements holding lists numbering/bullets.\n  var bulletMatcher = new Matcher({\n    name: 'span',\n    styles: {\n      'mso-list': 'Ignore'\n    }\n  });\n  var range = writer.createRangeIn(element);\n\n  var _iterator3 = _createForOfIteratorHelper(range),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var value = _step3.value;\n\n      if (value.type === 'elementStart' && bulletMatcher.match(value.item)) {\n        writer.remove(value.item);\n      }\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n} // Whether previous and current item belongs to the same list. It is determined based on `item.id`\n// (extracted from `mso-list` style, see #getListItemData) and previous sibling of the current item.\n//\n// @param {Object} previousItem\n// @param {Object} currentItem\n// @returns {Boolean}\n\n\nfunction isNewListNeeded(previousItem, currentItem) {\n  if (previousItem.id !== currentItem.id) {\n    return true;\n  }\n\n  var previousSibling = currentItem.element.previousSibling;\n\n  if (!previousSibling) {\n    return true;\n  } // Even with the same id the list does not have to be continuous (#43).\n\n\n  return !isList(previousSibling);\n}\n\nfunction isList(element) {\n  return element.is('ol') || element.is('ul');\n}","import \"core-js/modules/es6.regexp.match\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.replace\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/parse\n */\n\n/* globals DOMParser */\nimport DomConverter from '@ckeditor/ckeditor5-engine/src/view/domconverter';\nimport { normalizeSpacing, normalizeSpacerunSpans } from \"./space\";\n/**\n * Parses provided HTML extracting contents of `<body>` and `<style>` tags.\n *\n * @param {String} htmlString HTML string to be parsed.\n * @returns {Object} result\n * @returns {module:engine/view/documentfragment~DocumentFragment} result.body Parsed body\n * content as a traversable structure.\n * @returns {String} result.bodyString Entire body content as a string.\n * @returns {Array.<CSSStyleSheet>} result.styles Array of native `CSSStyleSheet` objects, each representing\n * separate `style` tag from the source HTML.\n * @returns {String} result.stylesString All `style` tags contents combined in the order of occurrence into one string.\n */\n\nexport function parseHtml(htmlString) {\n  var domParser = new DOMParser(); // Remove Word specific \"if comments\" so content inside is not omitted by the parser.\n\n  htmlString = htmlString.replace(/<!--\\[if gte vml 1]>/g, '');\n  var normalizedHtml = normalizeSpacing(cleanContentAfterBody(htmlString)); // Parse htmlString as native Document object.\n\n  var htmlDocument = domParser.parseFromString(normalizedHtml, 'text/html');\n  normalizeSpacerunSpans(htmlDocument); // Get `innerHTML` first as transforming to View modifies the source document.\n\n  var bodyString = htmlDocument.body.innerHTML; // Transform document.body to View.\n\n  var bodyView = documentToView(htmlDocument); // Extract stylesheets.\n\n  var stylesObject = extractStyles(htmlDocument);\n  return {\n    body: bodyView,\n    bodyString: bodyString,\n    styles: stylesObject.styles,\n    stylesString: stylesObject.stylesString\n  };\n} // Transforms native `Document` object into {@link module:engine/view/documentfragment~DocumentFragment}.\n//\n// @param {Document} htmlDocument Native `Document` object to be transformed.\n// @returns {module:engine/view/documentfragment~DocumentFragment}\n\nfunction documentToView(htmlDocument) {\n  var domConverter = new DomConverter({\n    blockFillerMode: 'nbsp'\n  });\n  var fragment = htmlDocument.createDocumentFragment();\n  var nodes = htmlDocument.body.childNodes;\n\n  while (nodes.length > 0) {\n    fragment.appendChild(nodes[0]);\n  }\n\n  return domConverter.domToView(fragment);\n} // Extracts both `CSSStyleSheet` and string representation from all `style` elements available in a provided `htmlDocument`.\n//\n// @param {Document} htmlDocument Native `Document` object from which styles will be extracted.\n// @returns {Object} result\n// @returns {Array.<CSSStyleSheet>} result.styles Array of native `CSSStyleSheet` object, each representing\n// separate `style` tag from the source object.\n// @returns {String} result.stylesString All `style` tags contents combined in the order of occurrence as one string.\n\n\nfunction extractStyles(htmlDocument) {\n  var styles = [];\n  var stylesString = [];\n  var styleTags = Array.from(htmlDocument.getElementsByTagName('style'));\n\n  for (var _i = 0, _styleTags = styleTags; _i < _styleTags.length; _i++) {\n    var style = _styleTags[_i];\n\n    if (style.sheet && style.sheet.cssRules && style.sheet.cssRules.length) {\n      styles.push(style.sheet);\n      stylesString.push(style.innerHTML);\n    }\n  }\n\n  return {\n    styles: styles,\n    stylesString: stylesString.join(' ')\n  };\n} // Removes leftover content from between closing </body> and closing </html> tag:\n//\n// \t\t<html><body><p>Foo Bar</p></body><span>Fo</span></html> -> <html><body><p>Foo Bar</p></body></html>\n//\n// This function is used as specific browsers (Edge) add some random content after `body` tag when pasting from Word.\n// @param {String} htmlString The HTML string to be cleaned.\n// @returns {String} The HTML string with leftover content removed.\n\n\nfunction cleanContentAfterBody(htmlString) {\n  var regexp = /<\\/body>(.*?)(<\\/html>|$)/;\n  var match = htmlString.match(regexp);\n\n  if (match && match[1]) {\n    htmlString = htmlString.slice(0, match.index) + htmlString.slice(match.index).replace(match[1], '');\n  }\n\n  return htmlString;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/removeboldwrapper\n */\n\n/**\n * Removes `<b>` tag wrapper added by Google Docs to a copied content.\n *\n * @param {module:engine/view/documentfragment~DocumentFragment} documentFragment element `data.content` obtained from clipboard\n * @param {module:engine/view/upcastwriter~UpcastWriter} writer\n */\nexport default function removeBoldWrapper(documentFragment, writer) {\n  var _iterator = _createForOfIteratorHelper(documentFragment.getChildren()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var child = _step.value;\n\n      if (child.is('b') && child.getStyle('font-weight') === 'normal') {\n        var childIndex = documentFragment.getChildIndex(child);\n        writer.remove(child);\n        writer.insertChild(childIndex, child.getChildren(), documentFragment);\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.regexp.replace\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/filters/space\n */\n\n/**\n * Replaces last space preceding elements closing tag with `&nbsp;`. Such operation prevents spaces from being removed\n * during further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n * This method also takes into account Word specific `<o:p></o:p>` empty tags.\n * Additionally multiline sequences of spaces and new lines between tags are removed (see #39 and #40).\n *\n * @param {String} htmlString HTML string in which spacing should be normalized.\n * @returns {String} Input HTML with spaces normalized.\n */\nexport function normalizeSpacing(htmlString) {\n  // Run normalizeSafariSpaceSpans() two times to cover nested spans.\n  return normalizeSafariSpaceSpans(normalizeSafariSpaceSpans(htmlString)) // Remove all \\r\\n from \"spacerun spans\" so the last replace line doesn't strip all whitespaces.\n  .replace(/(<span style=['\"]mso-spacerun:yes['\"]>[\\s]*?)[\\r\\n]+(\\s*<\\/span>)/g, '$1$2').replace(/<span style=['\"]mso-spacerun:yes['\"]><\\/span>/g, '').replace(/ <\\//g, \"\\xA0</\").replace(/ <o:p><\\/o:p>/g, \"\\xA0<o:p></o:p>\") // Remove <o:p> block filler from empty paragraph. Safari uses \\u00A0 instead of &nbsp;.\n  .replace(/<o:p>(&nbsp;|\\u00A0)<\\/o:p>/g, '') // Remove all whitespaces when they contain any \\r or \\n.\n  .replace(/>(\\s*[\\r\\n]\\s*)</g, '><');\n}\n/**\n * Normalizes spacing in special Word `spacerun spans` (`<span style='mso-spacerun:yes'>\\s+</span>`) by replacing\n * all spaces with `&nbsp; ` pairs. This prevents spaces from being removed during further DOM/View processing\n * (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n *\n * @param {Document} htmlDocument Native `Document` object in which spacing should be normalized.\n */\n\nexport function normalizeSpacerunSpans(htmlDocument) {\n  htmlDocument.querySelectorAll('span[style*=spacerun]').forEach(function (el) {\n    // Use `el.childNodes[ 0 ].data.length` instead of `el.innerText.length`. For `el.innerText.length` which\n    // contains spaces mixed with `&nbsp;` Edge browser returns incorrect length.\n    var innerTextLength = el.childNodes[0].data.length;\n    el.innerHTML = Array(innerTextLength + 1).join(\"\\xA0 \").substr(0, innerTextLength);\n  });\n} // Normalizes specific spacing generated by Safari when content pasted from Word (`<span class=\"Apple-converted-space\"> </span>`)\n// by replacing all spaces sequences longer than 1 space with `&nbsp; ` pairs. This prevents spaces from being removed during\n// further DOM/View processing (see especially {@link module:engine/view/domconverter~DomConverter#_processDataFromDomText}).\n//\n// This function is similar to {@link module:clipboard/utils/normalizeclipboarddata normalizeClipboardData util} but uses\n// regular spaces / &nbsp; sequence for replacement.\n//\n// @param {String} htmlString HTML string in which spacing should be normalized\n// @returns {String} Input HTML with spaces normalized.\n\nfunction normalizeSafariSpaceSpans(htmlString) {\n  return htmlString.replace(/<span(?: class=\"Apple-converted-space\"|)>(\\s+)<\\/span>/g, function (fullMatch, spaces) {\n    return spaces.length === 1 ? ' ' : Array(spaces.length + 1).join(\"\\xA0 \").substr(0, spaces.length);\n  });\n}","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/normalizers/googledocsnormalizer\n */\nimport removeBoldWrapper from \"../filters/removeboldwrapper\";\nimport { unwrapParagraphInListItem } from \"../filters/list\";\nimport UpcastWriter from '@ckeditor/ckeditor5-engine/src/view/upcastwriter';\nvar googleDocsMatch = /id=(\"|')docs-internal-guid-[-0-9a-f]+(\"|')/i;\n/**\n * Normalizer for the content pasted from Google Docs.\n *\n * @implements module:paste-from-office/normalizer~Normalizer\n */\n\nvar GoogleDocsNormalizer = /*#__PURE__*/function () {\n  function GoogleDocsNormalizer() {\n    _classCallCheck(this, GoogleDocsNormalizer);\n  }\n\n  _createClass(GoogleDocsNormalizer, [{\n    key: \"isActive\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function isActive(htmlString) {\n      return googleDocsMatch.test(htmlString);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(data) {\n      var writer = new UpcastWriter();\n      removeBoldWrapper(data.content, writer);\n      unwrapParagraphInListItem(data.content, writer);\n    }\n  }]);\n\n  return GoogleDocsNormalizer;\n}();\n\nexport { GoogleDocsNormalizer as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/normalizers/mswordnormalizer\n */\nimport { parseHtml } from \"../filters/parse\";\nimport { transformListItemLikeElementsIntoLists } from \"../filters/list\";\nimport { replaceImagesSourceWithBase64 } from \"../filters/image\";\nvar msWordMatch1 = /<meta\\s*name=\"?generator\"?\\s*content=\"?microsoft\\s*word\\s*\\d+\"?\\/?>/i;\nvar msWordMatch2 = /xmlns:o=\"urn:schemas-microsoft-com/i;\n/**\n * Normalizer for the content pasted from Microsoft Word.\n *\n * @implements module:paste-from-office/normalizer~Normalizer\n */\n\nvar MSWordNormalizer = /*#__PURE__*/function () {\n  function MSWordNormalizer() {\n    _classCallCheck(this, MSWordNormalizer);\n  }\n\n  _createClass(MSWordNormalizer, [{\n    key: \"isActive\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function isActive(htmlString) {\n      return msWordMatch1.test(htmlString) || msWordMatch2.test(htmlString);\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute(data) {\n      var _parseHtml = parseHtml(data.dataTransfer.getData('text/html')),\n          body = _parseHtml.body,\n          stylesString = _parseHtml.stylesString;\n\n      transformListItemLikeElementsIntoLists(body, stylesString);\n      replaceImagesSourceWithBase64(body, data.dataTransfer.getData('text/rtf'));\n      data.content = body;\n    }\n  }]);\n\n  return MSWordNormalizer;\n}();\n\nexport { MSWordNormalizer as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.array.find\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module paste-from-office/pastefromoffice\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport GoogleDocsNormalizer from \"./normalizers/googledocsnormalizer\";\nimport MSWordNormalizer from \"./normalizers/mswordnormalizer\";\nimport Clipboard from '@ckeditor/ckeditor5-clipboard/src/clipboard';\n/**\n * The Paste from Office plugin.\n *\n * This plugin handles content pasted from Office apps and transforms it (if necessary)\n * to a valid structure which can then be understood by the editor features.\n *\n * Transformation is made by a set of predefined {@link module:paste-from-office/normalizer~Normalizer normalizers}.\n * This plugin includes following normalizers:\n *   * {@link module:paste-from-office/normalizers/mswordnormalizer~MSWordNormalizer Microsoft Word normalizer}\n *   * {@link module:paste-from-office/normalizers/googledocsnormalizer~GoogleDocsNormalizer Google Docs normalizer}\n *\n * For more information about this feature check the {@glink api/paste-from-office package page}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar PasteFromOffice = /*#__PURE__*/function (_Plugin) {\n  _inherits(PasteFromOffice, _Plugin);\n\n  var _super = _createSuper(PasteFromOffice);\n\n  function PasteFromOffice() {\n    _classCallCheck(this, PasteFromOffice);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(PasteFromOffice, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor;\n      var normalizers = [];\n      normalizers.push(new MSWordNormalizer());\n      normalizers.push(new GoogleDocsNormalizer());\n      editor.plugins.get('Clipboard').on('inputTransformation', function (evt, data) {\n        if (data.isTransformedWithPasteFromOffice) {\n          return;\n        }\n\n        var htmlString = data.dataTransfer.getData('text/html');\n        var activeNormalizer = normalizers.find(function (normalizer) {\n          return normalizer.isActive(htmlString);\n        });\n\n        if (activeNormalizer) {\n          activeNormalizer.execute(data);\n          data.isTransformedWithPasteFromOffice = true;\n        }\n      }, {\n        priority: 'high'\n      });\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'PasteFromOffice';\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"requires\",\n    get: function get() {\n      return [Clipboard];\n    }\n  }]);\n\n  return PasteFromOffice;\n}(Plugin);\n\nexport { PasteFromOffice as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/insertcolumncommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { findAncestor } from \"./utils\";\n/**\n * The insert column command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'insertTableColumnLeft'` and\n * `'insertTableColumnRight'` editor commands.\n *\n * To insert a column to the left of the selected cell, execute the following command:\n *\n *\t\teditor.execute( 'insertTableColumnLeft' );\n *\n * To insert a column to the right of the selected cell, execute the following command:\n *\n *\t\teditor.execute( 'insertTableColumnRight' );\n *\n * @extends module:core/command~Command\n */\n\nvar InsertColumnCommand = /*#__PURE__*/function (_Command) {\n  _inherits(InsertColumnCommand, _Command);\n\n  var _super = _createSuper(InsertColumnCommand);\n\n  /**\n   * Creates a new `InsertColumnCommand` instance.\n   *\n   * @param {module:core/editor/editor~Editor} editor An editor on which this command will be used.\n   * @param {Object} options\n   * @param {String} [options.order=\"right\"] The order of insertion relative to the column in which the caret is located.\n   * Possible values: `\"left\"` and `\"right\"`.\n   */\n  function InsertColumnCommand(editor) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, InsertColumnCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The order of insertion relative to the column in which the caret is located.\n     *\n     * @readonly\n     * @member {String} module:table/commands/insertcolumncommand~InsertColumnCommand#order\n     */\n\n    _this.order = options.order || 'right';\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(InsertColumnCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var selection = this.editor.model.document.selection;\n      var tableParent = findAncestor('table', selection.getFirstPosition());\n      this.isEnabled = !!tableParent;\n    }\n    /**\n     * Executes the command.\n     *\n     * Depending on the command's {@link #order} value, it inserts a column to the `'left'` or `'right'` of the column\n     * in which the selection is set.\n     *\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var editor = this.editor;\n      var selection = editor.model.document.selection;\n      var tableUtils = editor.plugins.get('TableUtils');\n      var firstPosition = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', firstPosition);\n      var table = tableCell.parent.parent;\n\n      var _tableUtils$getCellLo = tableUtils.getCellLocation(tableCell),\n          column = _tableUtils$getCellLo.column;\n\n      var insertAt = this.order === 'right' ? column + 1 : column;\n      tableUtils.insertColumns(table, {\n        columns: 1,\n        at: insertAt\n      });\n    }\n  }]);\n\n  return InsertColumnCommand;\n}(Command);\n\nexport { InsertColumnCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/insertrowcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { findAncestor } from \"./utils\";\n/**\n * The insert row command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'insertTableRowBelow'` and\n * `'insertTableRowAbove'` editor commands.\n *\n * To insert a row below the selected cell, execute the following command:\n *\n *\t\teditor.execute( 'insertTableRowBelow' );\n *\n * To insert a row above the selected cell, execute the following command:\n *\n *\t\teditor.execute( 'insertTableRowAbove' );\n *\n * @extends module:core/command~Command\n */\n\nvar InsertRowCommand = /*#__PURE__*/function (_Command) {\n  _inherits(InsertRowCommand, _Command);\n\n  var _super = _createSuper(InsertRowCommand);\n\n  /**\n   * Creates a new `InsertRowCommand` instance.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor on which this command will be used.\n   * @param {Object} options\n   * @param {String} [options.order=\"below\"] The order of insertion relative to the row in which the caret is located.\n   * Possible values: `\"above\"` and `\"below\"`.\n   */\n  function InsertRowCommand(editor) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, InsertRowCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The order of insertion relative to the row in which the caret is located.\n     *\n     * @readonly\n     * @member {String} module:table/commands/insertrowcommand~InsertRowCommand#order\n     */\n\n    _this.order = options.order || 'below';\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(InsertRowCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var selection = this.editor.model.document.selection;\n      var tableParent = findAncestor('table', selection.getFirstPosition());\n      this.isEnabled = !!tableParent;\n    }\n    /**\n     * Executes the command.\n     *\n     * Depending on the command's {@link #order} value, it inserts a row `'below'` or `'above'` the row in which selection is set.\n     *\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var editor = this.editor;\n      var selection = editor.model.document.selection;\n      var tableUtils = editor.plugins.get('TableUtils');\n      var tableCell = findAncestor('tableCell', selection.getFirstPosition());\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var row = table.getChildIndex(tableRow);\n      var insertAt = this.order === 'below' ? row + 1 : row;\n      tableUtils.insertRows(table, {\n        rows: 1,\n        at: insertAt\n      });\n    }\n  }]);\n\n  return InsertRowCommand;\n}(Command);\n\nexport { InsertRowCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/inserttablecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { findOptimalInsertionPosition } from '@ckeditor/ckeditor5-widget/src/utils';\n/**\n * The insert table command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'insertTable'` editor command.\n *\n * To insert a table at the current selection, execute the command and specify the dimensions:\n *\n *\t\teditor.execute( 'insertTable', { rows: 20, columns: 5 } );\n *\n * @extends module:core/command~Command\n */\n\nvar InsertTableCommand = /*#__PURE__*/function (_Command) {\n  _inherits(InsertTableCommand, _Command);\n\n  var _super = _createSuper(InsertTableCommand);\n\n  function InsertTableCommand() {\n    _classCallCheck(this, InsertTableCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(InsertTableCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var model = this.editor.model;\n      var selection = model.document.selection;\n      var schema = model.schema;\n      var validParent = getInsertTableParent(selection.getFirstPosition());\n      this.isEnabled = schema.checkChild(validParent, 'table');\n    }\n    /**\n     * Executes the command.\n     *\n     * Inserts a table with the given number of rows and columns into the editor.\n     *\n     * @param {Object} options\n     * @param {Number} [options.rows=2] The number of rows to create in the inserted table.\n     * @param {Number} [options.columns=2] The number of columns to create in the inserted table.\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var selection = model.document.selection;\n      var tableUtils = this.editor.plugins.get('TableUtils');\n      var rows = parseInt(options.rows) || 2;\n      var columns = parseInt(options.columns) || 2;\n      var insertPosition = findOptimalInsertionPosition(selection, model);\n      model.change(function (writer) {\n        var table = tableUtils.createTable(writer, rows, columns);\n        model.insertContent(table, insertPosition);\n        writer.setSelection(writer.createPositionAt(table.getNodeByPath([0, 0, 0]), 0));\n      });\n    }\n  }]);\n\n  return InsertTableCommand;\n}(Command); // Returns valid parent to insert table\n//\n// @param {module:engine/model/position} position\n\n\nexport { InsertTableCommand as default };\n\nfunction getInsertTableParent(position) {\n  var parent = position.parent;\n  return parent === parent.root ? parent : parent.parent;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.array.find\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/mergecellcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport TableWalker from \"../tablewalker\";\nimport { findAncestor, updateNumericAttribute } from \"./utils\";\n/**\n * The merge cell command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'mergeTableCellRight'`, `'mergeTableCellLeft'`,\n * `'mergeTableCellUp'` and `'mergeTableCellDown'` editor commands.\n *\n * To merge a table cell at the current selection with another cell, execute the command corresponding with the preferred direction.\n *\n * For example, to merge with a cell to the right:\n *\n *\t\teditor.execute( 'mergeTableCellRight' );\n *\n * **Note**: If a table cell has a different [`rowspan`](https://www.w3.org/TR/html50/tabular-data.html#attr-tdth-rowspan)\n * (for `'mergeTableCellRight'` and `'mergeTableCellLeft'`) or [`colspan`](https://www.w3.org/TR/html50/tabular-data.html#attr-tdth-colspan)\n * (for `'mergeTableCellUp'` and `'mergeTableCellDown'`), the command will be disabled.\n *\n * @extends module:core/command~Command\n */\n\nvar MergeCellCommand = /*#__PURE__*/function (_Command) {\n  _inherits(MergeCellCommand, _Command);\n\n  var _super = _createSuper(MergeCellCommand);\n\n  /**\n   * Creates a new `MergeCellCommand` instance.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor on which this command will be used.\n   * @param {Object} options\n   * @param {String} options.direction Indicates which cell to merge with the currently selected one.\n   * Possible values are: `'left'`, `'right'`, `'up'` and `'down'`.\n   */\n  function MergeCellCommand(editor, options) {\n    var _this;\n\n    _classCallCheck(this, MergeCellCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The direction that indicates which cell will be merged with the currently selected one.\n     *\n     * @readonly\n     * @member {String} #direction\n     */\n\n    _this.direction = options.direction;\n    /**\n     * Whether the merge is horizontal (left/right) or vertical (up/down).\n     *\n     * @readonly\n     * @member {Boolean} #isHorizontal\n     */\n\n    _this.isHorizontal = _this.direction == 'right' || _this.direction == 'left';\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(MergeCellCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var cellToMerge = this._getMergeableCell();\n\n      this.value = cellToMerge;\n      this.isEnabled = !!cellToMerge;\n    }\n    /**\n     * Executes the command.\n     *\n     * Depending on the command's {@link #direction} value, it will merge the cell that is to the `'left'`, `'right'`, `'up'` or `'down'`.\n     *\n     * @fires execute\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this2 = this;\n\n      var model = this.editor.model;\n      var doc = model.document;\n      var tableCell = findAncestor('tableCell', doc.selection.getFirstPosition());\n      var cellToMerge = this.value;\n      var direction = this.direction;\n      model.change(function (writer) {\n        var isMergeNext = direction == 'right' || direction == 'down'; // The merge mechanism is always the same so sort cells to be merged.\n\n        var cellToExpand = isMergeNext ? tableCell : cellToMerge;\n        var cellToRemove = isMergeNext ? cellToMerge : tableCell; // Cache the parent of cell to remove for later check.\n\n        var removedTableCellRow = cellToRemove.parent;\n        mergeTableCells(cellToRemove, cellToExpand, writer);\n        var spanAttribute = _this2.isHorizontal ? 'colspan' : 'rowspan';\n        var cellSpan = parseInt(tableCell.getAttribute(spanAttribute) || 1);\n        var cellToMergeSpan = parseInt(cellToMerge.getAttribute(spanAttribute) || 1); // Update table cell span attribute and merge set selection on merged contents.\n\n        writer.setAttribute(spanAttribute, cellSpan + cellToMergeSpan, cellToExpand);\n        writer.setSelection(writer.createRangeIn(cellToExpand)); // Remove empty row after merging.\n\n        if (!removedTableCellRow.childCount) {\n          removeEmptyRow(removedTableCellRow, writer);\n        }\n      });\n    }\n    /**\n     * Returns a cell that can be merged with the current cell depending on the command's direction.\n     *\n     * @returns {module:engine/model/element~Element|undefined}\n     * @private\n     */\n\n  }, {\n    key: \"_getMergeableCell\",\n    value: function _getMergeableCell() {\n      var model = this.editor.model;\n      var doc = model.document;\n      var tableCell = findAncestor('tableCell', doc.selection.getFirstPosition());\n\n      if (!tableCell) {\n        return;\n      }\n\n      var tableUtils = this.editor.plugins.get('TableUtils'); // First get the cell on proper direction.\n\n      var cellToMerge = this.isHorizontal ? getHorizontalCell(tableCell, this.direction, tableUtils) : getVerticalCell(tableCell, this.direction);\n\n      if (!cellToMerge) {\n        return;\n      } // If found check if the span perpendicular to merge direction is equal on both cells.\n\n\n      var spanAttribute = this.isHorizontal ? 'rowspan' : 'colspan';\n      var span = parseInt(tableCell.getAttribute(spanAttribute) || 1);\n      var cellToMergeSpan = parseInt(cellToMerge.getAttribute(spanAttribute) || 1);\n\n      if (cellToMergeSpan === span) {\n        return cellToMerge;\n      }\n    }\n  }]);\n\n  return MergeCellCommand;\n}(Command); // Returns the cell that can be merged horizontally.\n//\n// @param {module:engine/model/element~Element} tableCell\n// @param {String} direction\n// @returns {module:engine/model/node~Node|null}\n\n\nexport { MergeCellCommand as default };\n\nfunction getHorizontalCell(tableCell, direction, tableUtils) {\n  var horizontalCell = direction == 'right' ? tableCell.nextSibling : tableCell.previousSibling;\n\n  if (!horizontalCell) {\n    return;\n  } // Sort cells:\n\n\n  var cellOnLeft = direction == 'right' ? tableCell : horizontalCell;\n  var cellOnRight = direction == 'right' ? horizontalCell : tableCell; // Get their column indexes:\n\n  var _tableUtils$getCellLo = tableUtils.getCellLocation(cellOnLeft),\n      leftCellColumn = _tableUtils$getCellLo.column;\n\n  var _tableUtils$getCellLo2 = tableUtils.getCellLocation(cellOnRight),\n      rightCellColumn = _tableUtils$getCellLo2.column;\n\n  var leftCellSpan = parseInt(cellOnLeft.getAttribute('colspan') || 1); // The cell on the right must have index that is distant to the cell on the left by the left cell's width (colspan).\n\n  var cellsAreTouching = leftCellColumn + leftCellSpan === rightCellColumn; // If the right cell's column index is different it means that there are rowspanned cells between them.\n\n  return cellsAreTouching ? horizontalCell : undefined;\n} // Returns the cell that can be merged vertically.\n//\n// @param {module:engine/model/element~Element} tableCell\n// @param {String} direction\n// @returns {module:engine/model/node~Node|null}\n\n\nfunction getVerticalCell(tableCell, direction) {\n  var tableRow = tableCell.parent;\n  var table = tableRow.parent;\n  var rowIndex = table.getChildIndex(tableRow); // Don't search for mergeable cell if direction points out of the table.\n\n  if (direction == 'down' && rowIndex === table.childCount - 1 || direction == 'up' && rowIndex === 0) {\n    return;\n  }\n\n  var rowspan = parseInt(tableCell.getAttribute('rowspan') || 1);\n  var headingRows = table.getAttribute('headingRows') || 0;\n  var isMergeWithBodyCell = direction == 'down' && rowIndex + rowspan === headingRows;\n  var isMergeWithHeadCell = direction == 'up' && rowIndex === headingRows; // Don't search for mergeable cell if direction points out of the current table section.\n\n  if (headingRows && (isMergeWithBodyCell || isMergeWithHeadCell)) {\n    return;\n  }\n\n  var currentCellRowSpan = parseInt(tableCell.getAttribute('rowspan') || 1);\n  var rowOfCellToMerge = direction == 'down' ? rowIndex + currentCellRowSpan : rowIndex;\n\n  var tableMap = _toConsumableArray(new TableWalker(table, {\n    endRow: rowOfCellToMerge\n  }));\n\n  var currentCellData = tableMap.find(function (value) {\n    return value.cell === tableCell;\n  });\n  var mergeColumn = currentCellData.column;\n  var cellToMergeData = tableMap.find(function (_ref) {\n    var row = _ref.row,\n        rowspan = _ref.rowspan,\n        column = _ref.column;\n\n    if (column !== mergeColumn) {\n      return false;\n    }\n\n    if (direction == 'down') {\n      // If merging a cell below the mergeRow is already calculated.\n      return row === rowOfCellToMerge;\n    } else {\n      // If merging a cell above calculate if it spans to mergeRow.\n      return rowOfCellToMerge === row + rowspan;\n    }\n  });\n  return cellToMergeData && cellToMergeData.cell;\n} // Properly removes empty row from a table. Will update `rowspan` attribute of cells that overlaps removed row.\n//\n// @param {module:engine/model/element~Element} removedTableCellRow\n// @param {module:engine/model/writer~Writer} writer\n\n\nfunction removeEmptyRow(removedTableCellRow, writer) {\n  var table = removedTableCellRow.parent;\n  var removedRowIndex = table.getChildIndex(removedTableCellRow);\n\n  var _iterator = _createForOfIteratorHelper(new TableWalker(table, {\n    endRow: removedRowIndex\n  })),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var _step$value = _step.value,\n          cell = _step$value.cell,\n          row = _step$value.row,\n          rowspan = _step$value.rowspan;\n      var overlapsRemovedRow = row + rowspan - 1 >= removedRowIndex;\n\n      if (overlapsRemovedRow) {\n        updateNumericAttribute('rowspan', rowspan - 1, cell, writer);\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  writer.remove(removedTableCellRow);\n} // Merges two table cells - will ensure that after merging cells with empty paragraph the result table cell will only have one paragraph.\n// If one of the merged table cell is empty the merged table cell will have contents of the non-empty table cell.\n// If both are empty the merged table cell will have only one empty paragraph.\n//\n// @param {module:engine/model/element~Element} cellToRemove\n// @param {module:engine/model/element~Element} cellToExpand\n// @param {module:engine/model/writer~Writer} writer\n\n\nfunction mergeTableCells(cellToRemove, cellToExpand, writer) {\n  if (!isEmpty(cellToRemove)) {\n    if (isEmpty(cellToExpand)) {\n      writer.remove(writer.createRangeIn(cellToExpand));\n    }\n\n    writer.move(writer.createRangeIn(cellToRemove), writer.createPositionAt(cellToExpand, 'end'));\n  } // Remove merged table cell.\n\n\n  writer.remove(cellToRemove);\n} // Checks if passed table cell contains empty paragraph.\n//\n// @param {module:engine/model/element~Element} tableCell\n// @returns {Boolean}\n\n\nfunction isEmpty(tableCell) {\n  return tableCell.childCount == 1 && tableCell.getChild(0).is('paragraph') && tableCell.getChild(0).isEmpty;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.array.find\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/removecolumncommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport TableWalker from \"../tablewalker\";\nimport { findAncestor, updateNumericAttribute } from \"./utils\";\n/**\n * The remove column command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'removeTableColumn'` editor command.\n *\n * To remove the column containing the selected cell, execute the command:\n *\n *\t\teditor.execute( 'removeTableColumn' );\n *\n * @extends module:core/command~Command\n */\n\nvar RemoveColumnCommand = /*#__PURE__*/function (_Command) {\n  _inherits(RemoveColumnCommand, _Command);\n\n  var _super = _createSuper(RemoveColumnCommand);\n\n  function RemoveColumnCommand() {\n    _classCallCheck(this, RemoveColumnCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(RemoveColumnCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var editor = this.editor;\n      var selection = editor.model.document.selection;\n      var tableUtils = editor.plugins.get('TableUtils');\n      var tableCell = findAncestor('tableCell', selection.getFirstPosition());\n      this.isEnabled = !!tableCell && tableUtils.getColumns(tableCell.parent.parent) > 1;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var model = this.editor.model;\n      var selection = model.document.selection;\n      var firstPosition = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', firstPosition);\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var headingColumns = table.getAttribute('headingColumns') || 0;\n      var row = table.getChildIndex(tableRow); // Cache the table before removing or updating colspans.\n\n      var tableMap = _toConsumableArray(new TableWalker(table)); // Get column index of removed column.\n\n\n      var cellData = tableMap.find(function (value) {\n        return value.cell === tableCell;\n      });\n      var removedColumn = cellData.column;\n      model.change(function (writer) {\n        // Update heading columns attribute if removing a row from head section.\n        if (headingColumns && row <= headingColumns) {\n          writer.setAttribute('headingColumns', headingColumns - 1, table);\n        }\n\n        var _iterator = _createForOfIteratorHelper(tableMap),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var _step$value = _step.value,\n                cell = _step$value.cell,\n                column = _step$value.column,\n                colspan = _step$value.colspan;\n\n            // If colspaned cell overlaps removed column decrease it's span.\n            if (column <= removedColumn && colspan > 1 && column + colspan > removedColumn) {\n              updateNumericAttribute('colspan', colspan - 1, cell, writer);\n            } else if (column === removedColumn) {\n              // The cell in removed column has colspan of 1.\n              writer.remove(cell);\n            }\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      });\n    }\n  }]);\n\n  return RemoveColumnCommand;\n}(Command);\n\nexport { RemoveColumnCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/removerowcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport TableWalker from \"../tablewalker\";\nimport { findAncestor, updateNumericAttribute } from \"./utils\";\n/**\n * The remove row command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'removeTableRow'` editor command.\n *\n * To remove the row containing the selected cell, execute the command:\n *\n *\t\teditor.execute( 'removeTableRow' );\n *\n * @extends module:core/command~Command\n */\n\nvar RemoveRowCommand = /*#__PURE__*/function (_Command) {\n  _inherits(RemoveRowCommand, _Command);\n\n  var _super = _createSuper(RemoveRowCommand);\n\n  function RemoveRowCommand() {\n    _classCallCheck(this, RemoveRowCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(RemoveRowCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      var tableCell = findAncestor('tableCell', doc.selection.getFirstPosition());\n      this.isEnabled = !!tableCell && tableCell.parent.parent.childCount > 1;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var model = this.editor.model;\n      var selection = model.document.selection;\n      var firstPosition = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', firstPosition);\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var currentRow = table.getChildIndex(tableRow);\n      var headingRows = table.getAttribute('headingRows') || 0;\n      model.change(function (writer) {\n        if (headingRows && currentRow <= headingRows) {\n          updateNumericAttribute('headingRows', headingRows - 1, table, writer, 0);\n        }\n\n        var tableMap = _toConsumableArray(new TableWalker(table, {\n          endRow: currentRow\n        }));\n\n        var cellsToMove = new Map(); // Get cells from removed row that are spanned over multiple rows.\n\n        tableMap.filter(function (_ref) {\n          var row = _ref.row,\n              rowspan = _ref.rowspan;\n          return row === currentRow && rowspan > 1;\n        }).forEach(function (_ref2) {\n          var column = _ref2.column,\n              cell = _ref2.cell,\n              rowspan = _ref2.rowspan;\n          return cellsToMove.set(column, {\n            cell: cell,\n            rowspanToSet: rowspan - 1\n          });\n        }); // Reduce rowspan on cells that are above removed row and overlaps removed row.\n\n        tableMap.filter(function (_ref3) {\n          var row = _ref3.row,\n              rowspan = _ref3.rowspan;\n          return row <= currentRow - 1 && row + rowspan > currentRow;\n        }).forEach(function (_ref4) {\n          var cell = _ref4.cell,\n              rowspan = _ref4.rowspan;\n          return updateNumericAttribute('rowspan', rowspan - 1, cell, writer);\n        }); // Move cells to another row.\n\n        var targetRow = currentRow + 1;\n        var tableWalker = new TableWalker(table, {\n          includeSpanned: true,\n          startRow: targetRow,\n          endRow: targetRow\n        });\n        var previousCell;\n\n        for (var _i = 0, _arr = _toConsumableArray(tableWalker); _i < _arr.length; _i++) {\n          var _arr$_i = _arr[_i],\n              row = _arr$_i.row,\n              column = _arr$_i.column,\n              cell = _arr$_i.cell;\n\n          if (cellsToMove.has(column)) {\n            var _cellsToMove$get = cellsToMove.get(column),\n                cellToMove = _cellsToMove$get.cell,\n                rowspanToSet = _cellsToMove$get.rowspanToSet;\n\n            var targetPosition = previousCell ? writer.createPositionAfter(previousCell) : writer.createPositionAt(table.getChild(row), 0);\n            writer.move(writer.createRangeOn(cellToMove), targetPosition);\n            updateNumericAttribute('rowspan', rowspanToSet, cellToMove, writer);\n            previousCell = cellToMove;\n          } else {\n            previousCell = cell;\n          }\n        }\n\n        writer.remove(tableRow);\n      });\n    }\n  }]);\n\n  return RemoveRowCommand;\n}(Command);\n\nexport { RemoveRowCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/setheadercolumncommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { findAncestor, updateNumericAttribute } from \"./utils\";\n/**\n * The header column command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'setTableColumnHeader'` editor command.\n *\n * You can make the column containing the selected cell a [header](https://www.w3.org/TR/html50/tabular-data.html#the-th-element)\n * by executing:\n *\n *\t\teditor.execute( 'setTableColumnHeader' );\n *\n * **Note:** All preceding columns will also become headers. If the current column is already a header, executing this command\n * will make it a regular column back again (including the following columns).\n *\n * @extends module:core/command~Command\n */\n\nvar SetHeaderColumnCommand = /*#__PURE__*/function (_Command) {\n  _inherits(SetHeaderColumnCommand, _Command);\n\n  var _super = _createSuper(SetHeaderColumnCommand);\n\n  function SetHeaderColumnCommand() {\n    _classCallCheck(this, SetHeaderColumnCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(SetHeaderColumnCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      var selection = doc.selection;\n      var position = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', position);\n      var isInTable = !!tableCell;\n      this.isEnabled = isInTable;\n      /**\n       * Flag indicating whether the command is active. The command is active when the\n       * {@link module:engine/model/selection~Selection} is in a header column.\n       *\n       * @observable\n       * @readonly\n       * @member {Boolean} #value\n       */\n\n      this.value = isInTable && this._isInHeading(tableCell, tableCell.parent.parent);\n    }\n    /**\n     * Executes the command.\n     *\n     * When the selection is in a non-header column, the command will set the `headingColumns` table attribute to cover that column.\n     *\n     * When the selection is already in a header column, it will set `headingColumns` so the heading section will end before that column.\n     *\n     * @fires execute\n     * @param {Object} [options]\n     * @param {Boolean} [options.forceValue] If set, the command will set (`true`) or unset (`false`) header columns according to\n     * `forceValue` parameter instead of the current model state.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var doc = model.document;\n      var selection = doc.selection;\n      var tableUtils = this.editor.plugins.get('TableUtils');\n      var position = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', position);\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n\n      var _tableUtils$getCellLo = tableUtils.getCellLocation(tableCell),\n          selectionColumn = _tableUtils$getCellLo.column;\n\n      if (options.forceValue === this.value) {\n        return;\n      }\n\n      var headingColumnsToSet = this.value ? selectionColumn : selectionColumn + 1;\n      model.change(function (writer) {\n        updateNumericAttribute('headingColumns', headingColumnsToSet, table, writer, 0);\n      });\n    }\n    /**\n     * Checks if a table cell is in the heading section.\n     *\n     * @param {module:engine/model/element~Element} tableCell\n     * @param {module:engine/model/element~Element} table\n     * @returns {Boolean}\n     * @private\n     */\n\n  }, {\n    key: \"_isInHeading\",\n    value: function _isInHeading(tableCell, table) {\n      var headingColumns = parseInt(table.getAttribute('headingColumns') || 0);\n      var tableUtils = this.editor.plugins.get('TableUtils');\n\n      var _tableUtils$getCellLo2 = tableUtils.getCellLocation(tableCell),\n          column = _tableUtils$getCellLo2.column;\n\n      return !!headingColumns && column < headingColumns;\n    }\n  }]);\n\n  return SetHeaderColumnCommand;\n}(Command);\n\nexport { SetHeaderColumnCommand as default };","import _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/setheaderrowcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { createEmptyTableCell, findAncestor, updateNumericAttribute } from \"./utils\";\nimport TableWalker from \"../tablewalker\";\n/**\n * The header row command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'setTableColumnHeader'` editor command.\n *\n * You can make the row containing the selected cell a [header](https://www.w3.org/TR/html50/tabular-data.html#the-th-element) by executing:\n *\n *\t\teditor.execute( 'setTableRowHeader' );\n *\n * **Note:** All preceding rows will also become headers. If the current row is already a header, executing this command\n * will make it a regular row back again (including the following rows).\n *\n * @extends module:core/command~Command\n */\n\nvar SetHeaderRowCommand = /*#__PURE__*/function (_Command) {\n  _inherits(SetHeaderRowCommand, _Command);\n\n  var _super = _createSuper(SetHeaderRowCommand);\n\n  function SetHeaderRowCommand() {\n    _classCallCheck(this, SetHeaderRowCommand);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(SetHeaderRowCommand, [{\n    key: \"refresh\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      var selection = doc.selection;\n      var position = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', position);\n      var isInTable = !!tableCell;\n      this.isEnabled = isInTable;\n      /**\n       * Flag indicating whether the command is active. The command is active when the\n       * {@link module:engine/model/selection~Selection} is in a header row.\n       *\n       * @observable\n       * @readonly\n       * @member {Boolean} #value\n       */\n\n      this.value = isInTable && this._isInHeading(tableCell, tableCell.parent.parent);\n    }\n    /**\n     * Executes the command.\n     *\n     * When the selection is in a non-header row, the command will set the `headingRows` table attribute to cover that row.\n     *\n     * When the selection is already in a header row, it will set `headingRows` so the heading section will end before that row.\n     *\n     * @fires execute\n     * @param {Object} options\n     * @param {Boolean} [options.forceValue] If set, the command will set (`true`) or unset (`false`) header rows according to `forceValue`\n     * parameter instead of the current model state.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var doc = model.document;\n      var selection = doc.selection;\n      var position = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', position);\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var currentHeadingRows = table.getAttribute('headingRows') || 0;\n      var selectionRow = tableRow.index;\n\n      if (options.forceValue === this.value) {\n        return;\n      }\n\n      var headingRowsToSet = this.value ? selectionRow : selectionRow + 1;\n      model.change(function (writer) {\n        if (headingRowsToSet) {\n          // Changing heading rows requires to check if any of a heading cell is overlapping vertically the table head.\n          // Any table cell that has a rowspan attribute > 1 will not exceed the table head so we need to fix it in rows below.\n          var cellsToSplit = getOverlappingCells(table, headingRowsToSet, currentHeadingRows);\n\n          var _iterator = _createForOfIteratorHelper(cellsToSplit),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var cell = _step.value;\n              splitHorizontally(cell, headingRowsToSet, writer);\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n        }\n\n        updateNumericAttribute('headingRows', headingRowsToSet, table, writer, 0);\n      });\n    }\n    /**\n     * Checks if a table cell is in the heading section.\n     *\n     * @param {module:engine/model/element~Element} tableCell\n     * @param {module:engine/model/element~Element} table\n     * @returns {Boolean}\n     * @private\n     */\n\n  }, {\n    key: \"_isInHeading\",\n    value: function _isInHeading(tableCell, table) {\n      var headingRows = parseInt(table.getAttribute('headingRows') || 0);\n      return !!headingRows && tableCell.parent.index < headingRows;\n    }\n  }]);\n\n  return SetHeaderRowCommand;\n}(Command); // Returns cells that span beyond the new heading section.\n//\n// @param {module:engine/model/element~Element} table The table to check.\n// @param {Number} headingRowsToSet New heading rows attribute.\n// @param {Number} currentHeadingRows Current heading rows attribute.\n// @returns {Array.<module:engine/model/element~Element>}\n\n\nexport { SetHeaderRowCommand as default };\n\nfunction getOverlappingCells(table, headingRowsToSet, currentHeadingRows) {\n  var cellsToSplit = [];\n  var startAnalysisRow = headingRowsToSet > currentHeadingRows ? currentHeadingRows : 0; // We're analyzing only when headingRowsToSet > 0.\n\n  var endAnalysisRow = headingRowsToSet - 1;\n  var tableWalker = new TableWalker(table, {\n    startRow: startAnalysisRow,\n    endRow: endAnalysisRow\n  });\n\n  var _iterator2 = _createForOfIteratorHelper(tableWalker),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var _step2$value = _step2.value,\n          row = _step2$value.row,\n          rowspan = _step2$value.rowspan,\n          cell = _step2$value.cell;\n\n      if (rowspan > 1 && row + rowspan > headingRowsToSet) {\n        cellsToSplit.push(cell);\n      }\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n\n  return cellsToSplit;\n} // Splits the table cell horizontally.\n//\n// @param {module:engine/model/element~Element} tableCell\n// @param {Number} headingRows\n// @param {module:engine/model/writer~Writer} writer\n\n\nfunction splitHorizontally(tableCell, headingRows, writer) {\n  var tableRow = tableCell.parent;\n  var table = tableRow.parent;\n  var rowIndex = tableRow.index;\n  var rowspan = parseInt(tableCell.getAttribute('rowspan'));\n  var newRowspan = headingRows - rowIndex;\n  var attributes = {};\n  var spanToSet = rowspan - newRowspan;\n\n  if (spanToSet > 1) {\n    attributes.rowspan = spanToSet;\n  }\n\n  var colspan = parseInt(tableCell.getAttribute('colspan') || 1);\n\n  if (colspan > 1) {\n    attributes.colspan = colspan;\n  }\n\n  var startRow = table.getChildIndex(tableRow);\n  var endRow = startRow + newRowspan;\n\n  var tableMap = _toConsumableArray(new TableWalker(table, {\n    startRow: startRow,\n    endRow: endRow,\n    includeSpanned: true\n  }));\n\n  var columnIndex;\n\n  var _iterator3 = _createForOfIteratorHelper(tableMap),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var _step3$value = _step3.value,\n          row = _step3$value.row,\n          column = _step3$value.column,\n          cell = _step3$value.cell,\n          cellIndex = _step3$value.cellIndex;\n\n      if (cell === tableCell && columnIndex === undefined) {\n        columnIndex = column;\n      }\n\n      if (columnIndex !== undefined && columnIndex === column && row === endRow) {\n        var _tableRow = table.getChild(row);\n\n        var tableCellPosition = writer.createPositionAt(_tableRow, cellIndex);\n        createEmptyTableCell(writer, tableCellPosition, attributes);\n      }\n    } // Update the rowspan attribute after updating table.\n\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  updateNumericAttribute('rowspan', newRowspan, tableCell, writer);\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/splitcellcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport { findAncestor } from \"./utils\";\n/**\n * The split cell command.\n *\n * The command is registered by {@link module:table/tableediting~TableEditing} as `'splitTableCellVertically'`\n * and `'splitTableCellHorizontally'`  editor commands.\n *\n * You can split any cell vertically or horizontally by executing this command. For example, to split the selected table cell vertically:\n *\n *\t\teditor.execute( 'splitTableCellVertically' );\n *\n * @extends module:core/command~Command\n */\n\nvar SplitCellCommand = /*#__PURE__*/function (_Command) {\n  _inherits(SplitCellCommand, _Command);\n\n  var _super = _createSuper(SplitCellCommand);\n\n  /**\n   * Creates a new `SplitCellCommand` instance.\n   *\n   * @param {module:core/editor/editor~Editor} editor The editor on which this command will be used.\n   * @param {Object} options\n   * @param {String} options.direction Indicates whether the command should split cells `'horizontally'` or `'vertically'`.\n   */\n  function SplitCellCommand(editor) {\n    var _this;\n\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, SplitCellCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The direction that indicates which cell will be split.\n     *\n     * @readonly\n     * @member {String} #direction\n     */\n\n    _this.direction = options.direction || 'horizontally';\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(SplitCellCommand, [{\n    key: \"refresh\",\n    value: function refresh() {\n      var model = this.editor.model;\n      var doc = model.document;\n      var tableCell = findAncestor('tableCell', doc.selection.getFirstPosition());\n      this.isEnabled = !!tableCell;\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var model = this.editor.model;\n      var document = model.document;\n      var selection = document.selection;\n      var firstPosition = selection.getFirstPosition();\n      var tableCell = findAncestor('tableCell', firstPosition);\n      var isHorizontally = this.direction === 'horizontally';\n      var tableUtils = this.editor.plugins.get('TableUtils');\n\n      if (isHorizontally) {\n        tableUtils.splitCellHorizontally(tableCell, 2);\n      } else {\n        tableUtils.splitCellVertically(tableCell, 2);\n      }\n    }\n  }]);\n\n  return SplitCellCommand;\n}(Command);\n\nexport { SplitCellCommand as default };","import \"core-js/modules/es6.function.name\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/commands/utils\n */\n\n/**\n * Returns the parent element of given name. Returns undefined if position is not inside desired parent.\n *\n * @param {String} parentName Name of parent element to find.\n * @param {module:engine/model/position~Position|module:engine/model/position~Position} position Position to start searching.\n * @returns {module:engine/model/element~Element|module:engine/model/documentfragment~DocumentFragment}\n */\nexport function findAncestor(parentName, position) {\n  var parent = position.parent;\n\n  while (parent) {\n    if (parent.name === parentName) {\n      return parent;\n    }\n\n    parent = parent.parent;\n  }\n}\n/**\n * A common method to update the numeric value. If a value is the default one, it will be unset.\n *\n * @param {String} key Attribute key.\n * @param {*} value The new attribute value.\n * @param {module:engine/model/item~Item} item Model item on which the attribute will be set.\n * @param {module:engine/model/writer~Writer} writer\n * @param {*} defaultValue Default attribute value. If a value is lower or equal, it will be unset.\n */\n\nexport function updateNumericAttribute(key, value, item, writer) {\n  var defaultValue = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n\n  if (value > defaultValue) {\n    writer.setAttribute(key, value, item);\n  } else {\n    writer.removeAttribute(key, item);\n  }\n}\n/**\n * Common method to create empty table cell - it will create proper model structure as table cell must have at least one block inside.\n *\n * @param {module:engine/model/writer~Writer} writer Model writer.\n * @param {module:engine/model/position~Position} insertPosition Position at which table cell should be inserted.\n * @param {Object} attributes Element's attributes.\n */\n\nexport function createEmptyTableCell(writer, insertPosition) {\n  var attributes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var tableCell = writer.createElement('tableCell', attributes);\n  writer.insertElement('paragraph', tableCell);\n  writer.insert(tableCell, insertPosition);\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/converters/downcast\n */\nimport TableWalker from \"./../tablewalker\";\nimport { toWidgetEditable } from '@ckeditor/ckeditor5-widget/src/utils';\nimport { toTableWidget } from \"../utils\";\n/**\n * Model table element to view table element conversion helper.\n *\n * This conversion helper creates the whole table element with child elements.\n *\n * @param {Object} options\n * @param {Boolean} options.asWidget If set to `true`, the downcast conversion will produce a widget.\n * @returns {Function} Conversion helper.\n */\n\nexport function downcastInsertTable() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (dispatcher) {\n    return dispatcher.on('insert:table', function (evt, data, conversionApi) {\n      var table = data.item;\n\n      if (!conversionApi.consumable.consume(table, 'insert')) {\n        return;\n      } // Consume attributes if present to not fire attribute change downcast\n\n\n      conversionApi.consumable.consume(table, 'attribute:headingRows:table');\n      conversionApi.consumable.consume(table, 'attribute:headingColumns:table');\n      var asWidget = options && options.asWidget;\n      var figureElement = conversionApi.writer.createContainerElement('figure', {\n        class: 'table'\n      });\n      var tableElement = conversionApi.writer.createContainerElement('table');\n      conversionApi.writer.insert(conversionApi.writer.createPositionAt(figureElement, 0), tableElement);\n      var tableWidget;\n\n      if (asWidget) {\n        tableWidget = toTableWidget(figureElement, conversionApi.writer);\n      }\n\n      var tableWalker = new TableWalker(table);\n      var tableAttributes = {\n        headingRows: table.getAttribute('headingRows') || 0,\n        headingColumns: table.getAttribute('headingColumns') || 0\n      }; // Cache for created table rows.\n\n      var viewRows = new Map();\n\n      var _iterator = _createForOfIteratorHelper(tableWalker),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var tableWalkerValue = _step.value;\n          var row = tableWalkerValue.row,\n              cell = tableWalkerValue.cell;\n          var tableSection = getOrCreateTableSection(getSectionName(row, tableAttributes), tableElement, conversionApi);\n          var tableRow = table.getChild(row);\n          var trElement = viewRows.get(row) || createTr(tableRow, row, tableSection, conversionApi);\n          viewRows.set(row, trElement); // Consume table cell - it will be always consumed as we convert whole table at once.\n\n          conversionApi.consumable.consume(cell, 'insert');\n          var insertPosition = conversionApi.writer.createPositionAt(trElement, 'end');\n          createViewTableCellElement(tableWalkerValue, tableAttributes, insertPosition, conversionApi, options);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      var viewPosition = conversionApi.mapper.toViewPosition(data.range.start);\n      conversionApi.mapper.bindElements(table, asWidget ? tableWidget : figureElement);\n      conversionApi.writer.insert(viewPosition, asWidget ? tableWidget : figureElement);\n    });\n  };\n}\n/**\n * Model row element to view `<tr>` element conversion helper.\n *\n * This conversion helper creates the whole `<tr>` element with child elements.\n *\n * @returns {Function} Conversion helper.\n */\n\nexport function downcastInsertRow() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (dispatcher) {\n    return dispatcher.on('insert:tableRow', function (evt, data, conversionApi) {\n      var tableRow = data.item;\n\n      if (!conversionApi.consumable.consume(tableRow, 'insert')) {\n        return;\n      }\n\n      var table = tableRow.parent;\n      var figureElement = conversionApi.mapper.toViewElement(table);\n      var tableElement = getViewTable(figureElement);\n      var row = table.getChildIndex(tableRow);\n      var tableWalker = new TableWalker(table, {\n        startRow: row,\n        endRow: row\n      });\n      var tableAttributes = {\n        headingRows: table.getAttribute('headingRows') || 0,\n        headingColumns: table.getAttribute('headingColumns') || 0\n      }; // Cache for created table rows.\n\n      var viewRows = new Map();\n\n      var _iterator2 = _createForOfIteratorHelper(tableWalker),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var tableWalkerValue = _step2.value;\n          var tableSection = getOrCreateTableSection(getSectionName(row, tableAttributes), tableElement, conversionApi);\n          var trElement = viewRows.get(row) || createTr(tableRow, row, tableSection, conversionApi);\n          viewRows.set(row, trElement); // Consume table cell - it will be always consumed as we convert whole row at once.\n\n          conversionApi.consumable.consume(tableWalkerValue.cell, 'insert');\n          var insertPosition = conversionApi.writer.createPositionAt(trElement, 'end');\n          createViewTableCellElement(tableWalkerValue, tableAttributes, insertPosition, conversionApi, options);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    });\n  };\n}\n/**\n * Model table cell element to view `<td>` or `<th>` element conversion helper.\n *\n * This conversion helper will create proper `<th>` elements for table cells that are in the heading section (heading row or column)\n * and `<td>` otherwise.\n *\n * @returns {Function} Conversion helper.\n */\n\nexport function downcastInsertCell() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  return function (dispatcher) {\n    return dispatcher.on('insert:tableCell', function (evt, data, conversionApi) {\n      var tableCell = data.item;\n\n      if (!conversionApi.consumable.consume(tableCell, 'insert')) {\n        return;\n      }\n\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var rowIndex = table.getChildIndex(tableRow);\n      var tableWalker = new TableWalker(table, {\n        startRow: rowIndex,\n        endRow: rowIndex\n      });\n      var tableAttributes = {\n        headingRows: table.getAttribute('headingRows') || 0,\n        headingColumns: table.getAttribute('headingColumns') || 0\n      }; // We need to iterate over a table in order to get proper row & column values from a walker\n\n      var _iterator3 = _createForOfIteratorHelper(tableWalker),\n          _step3;\n\n      try {\n        for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n          var tableWalkerValue = _step3.value;\n\n          if (tableWalkerValue.cell === tableCell) {\n            var trElement = conversionApi.mapper.toViewElement(tableRow);\n            var insertPosition = conversionApi.writer.createPositionAt(trElement, tableRow.getChildIndex(tableCell));\n            createViewTableCellElement(tableWalkerValue, tableAttributes, insertPosition, conversionApi, options); // No need to iterate further.\n\n            return;\n          }\n        }\n      } catch (err) {\n        _iterator3.e(err);\n      } finally {\n        _iterator3.f();\n      }\n    });\n  };\n}\n/**\n * Conversion helper that acts on heading rows table attribute change.\n *\n * This converter will:\n *\n * * Rename `<td>` to `<th>` elements or vice versa depending on headings.\n * * Create `<thead>` or `<tbody>` elements if needed.\n * * Remove empty `<thead>` or `<tbody>` if needed.\n *\n * @returns {Function} Conversion helper.\n */\n\nexport function downcastTableHeadingRowsChange() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var asWidget = !!options.asWidget;\n  return function (dispatcher) {\n    return dispatcher.on('attribute:headingRows:table', function (evt, data, conversionApi) {\n      var table = data.item;\n\n      if (!conversionApi.consumable.consume(data.item, evt.name)) {\n        return;\n      }\n\n      var figureElement = conversionApi.mapper.toViewElement(table);\n      var viewTable = getViewTable(figureElement);\n      var oldRows = data.attributeOldValue;\n      var newRows = data.attributeNewValue; // The head section has grown so move rows from <tbody> to <thead>.\n\n      if (newRows > oldRows) {\n        // Filter out only those rows that are in wrong section.\n        var rowsToMove = Array.from(table.getChildren()).filter(function (_ref) {\n          var index = _ref.index;\n          return isBetween(index, oldRows - 1, newRows);\n        });\n        var viewTableHead = getOrCreateTableSection('thead', viewTable, conversionApi);\n        moveViewRowsToTableSection(rowsToMove, viewTableHead, conversionApi, 'end'); // Rename all table cells from moved rows to 'th' as they lands in <thead>.\n\n        var _iterator4 = _createForOfIteratorHelper(rowsToMove),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var tableRow = _step4.value;\n\n            var _iterator5 = _createForOfIteratorHelper(tableRow.getChildren()),\n                _step5;\n\n            try {\n              for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n                var tableCell = _step5.value;\n                renameViewTableCell(tableCell, 'th', conversionApi, asWidget);\n              }\n            } catch (err) {\n              _iterator5.e(err);\n            } finally {\n              _iterator5.f();\n            }\n          } // Cleanup: this will remove any empty section from the view which may happen when moving all rows from a table section.\n\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n\n        removeTableSectionIfEmpty('tbody', viewTable, conversionApi);\n      } // The head section has shrunk so move rows from <thead> to <tbody>.\n      else {\n          // Filter out only those rows that are in wrong section.\n          var _rowsToMove = Array.from(table.getChildren()).filter(function (_ref2) {\n            var index = _ref2.index;\n            return isBetween(index, newRows - 1, oldRows);\n          }).reverse(); // The rows will be moved from <thead> to <tbody> in reverse order at the beginning of a <tbody>.\n\n\n          var viewTableBody = getOrCreateTableSection('tbody', viewTable, conversionApi);\n          moveViewRowsToTableSection(_rowsToMove, viewTableBody, conversionApi, 0); // Check if cells moved from <thead> to <tbody> requires renaming to <td> as this depends on current heading columns attribute.\n\n          var tableWalker = new TableWalker(table, {\n            startRow: newRows ? newRows - 1 : newRows,\n            endRow: oldRows - 1\n          });\n          var tableAttributes = {\n            headingRows: table.getAttribute('headingRows') || 0,\n            headingColumns: table.getAttribute('headingColumns') || 0\n          };\n\n          var _iterator6 = _createForOfIteratorHelper(tableWalker),\n              _step6;\n\n          try {\n            for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n              var tableWalkerValue = _step6.value;\n              renameViewTableCellIfRequired(tableWalkerValue, tableAttributes, conversionApi, asWidget);\n            } // Cleanup: this will remove any empty section from the view which may happen when moving all rows from a table section.\n\n          } catch (err) {\n            _iterator6.e(err);\n          } finally {\n            _iterator6.f();\n          }\n\n          removeTableSectionIfEmpty('thead', viewTable, conversionApi);\n        }\n\n      function isBetween(index, lower, upper) {\n        return index > lower && index < upper;\n      }\n    });\n  };\n}\n/**\n * Conversion helper that acts on heading columns table attribute change.\n *\n * Depending on changed attributes this converter will rename `<td` to `<th>` elements or vice versa depending of the cell column index.\n *\n * @returns {Function} Conversion helper.\n */\n\nexport function downcastTableHeadingColumnsChange() {\n  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var asWidget = !!options.asWidget;\n  return function (dispatcher) {\n    return dispatcher.on('attribute:headingColumns:table', function (evt, data, conversionApi) {\n      var table = data.item;\n\n      if (!conversionApi.consumable.consume(data.item, evt.name)) {\n        return;\n      }\n\n      var tableAttributes = {\n        headingRows: table.getAttribute('headingRows') || 0,\n        headingColumns: table.getAttribute('headingColumns') || 0\n      };\n      var oldColumns = data.attributeOldValue;\n      var newColumns = data.attributeNewValue;\n      var lastColumnToCheck = (oldColumns > newColumns ? oldColumns : newColumns) - 1;\n\n      var _iterator7 = _createForOfIteratorHelper(new TableWalker(table)),\n          _step7;\n\n      try {\n        for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n          var tableWalkerValue = _step7.value;\n\n          // Skip cells that were not in heading section before and after the change.\n          if (tableWalkerValue.column > lastColumnToCheck) {\n            continue;\n          }\n\n          renameViewTableCellIfRequired(tableWalkerValue, tableAttributes, conversionApi, asWidget);\n        }\n      } catch (err) {\n        _iterator7.e(err);\n      } finally {\n        _iterator7.f();\n      }\n    });\n  };\n}\n/**\n * Conversion helper that acts on a removed row.\n *\n * @returns {Function} Conversion helper.\n */\n\nexport function downcastRemoveRow() {\n  return function (dispatcher) {\n    return dispatcher.on('remove:tableRow', function (evt, data, conversionApi) {\n      // Prevent default remove converter.\n      evt.stop();\n      var viewWriter = conversionApi.writer;\n      var mapper = conversionApi.mapper;\n      var viewStart = mapper.toViewPosition(data.position).getLastMatchingPosition(function (value) {\n        return !value.item.is('tr');\n      });\n      var viewItem = viewStart.nodeAfter;\n      var tableSection = viewItem.parent; // Remove associated <tr> from the view.\n\n      var removeRange = viewWriter.createRangeOn(viewItem);\n      var removed = viewWriter.remove(removeRange);\n\n      var _iterator8 = _createForOfIteratorHelper(viewWriter.createRangeIn(removed).getItems()),\n          _step8;\n\n      try {\n        for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n          var child = _step8.value;\n          mapper.unbindViewElement(child);\n        } // Check if table section has any children left - if not remove it from the view.\n\n      } catch (err) {\n        _iterator8.e(err);\n      } finally {\n        _iterator8.f();\n      }\n\n      if (!tableSection.childCount) {\n        // No need to unbind anything as table section is not represented in the model.\n        viewWriter.remove(viewWriter.createRangeOn(tableSection));\n      }\n    }, {\n      priority: 'higher'\n    });\n  };\n} // Renames an existing table cell in the view to a given element name.\n//\n// **Note** This method will not do anything if a view table cell was not yet converted.\n//\n// @param {module:engine/model/element~Element} tableCell\n// @param {String} desiredCellElementName\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n// @param {Boolean} asWidget\n\nfunction renameViewTableCell(tableCell, desiredCellElementName, conversionApi, asWidget) {\n  var viewWriter = conversionApi.writer;\n  var viewCell = conversionApi.mapper.toViewElement(tableCell); // View cell might be not yet converted - skip it as it will be properly created by cell converter later on.\n\n  if (!viewCell) {\n    return;\n  }\n\n  var renamedCell;\n\n  if (asWidget) {\n    var editable = viewWriter.createEditableElement(desiredCellElementName, viewCell.getAttributes());\n    renamedCell = toWidgetEditable(editable, viewWriter);\n    viewWriter.insert(viewWriter.createPositionAfter(viewCell), renamedCell);\n    viewWriter.move(viewWriter.createRangeIn(viewCell), viewWriter.createPositionAt(renamedCell, 0));\n    viewWriter.remove(viewWriter.createRangeOn(viewCell));\n  } else {\n    renamedCell = viewWriter.rename(desiredCellElementName, viewCell);\n  }\n\n  conversionApi.mapper.unbindViewElement(viewCell);\n  conversionApi.mapper.bindElements(tableCell, renamedCell);\n} // Renames a table cell element in the view according to its location in the table.\n//\n// @param {module:table/tablewalker~TableWalkerValue} tableWalkerValue\n// @param {{headingColumns, headingRows}} tableAttributes\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n// @param {Boolean} asWidget\n\n\nfunction renameViewTableCellIfRequired(tableWalkerValue, tableAttributes, conversionApi, asWidget) {\n  var cell = tableWalkerValue.cell; // Check whether current columnIndex is overlapped by table cells from previous rows.\n\n  var desiredCellElementName = getCellElementName(tableWalkerValue, tableAttributes);\n  var viewCell = conversionApi.mapper.toViewElement(cell); // If in single change we're converting attribute changes and inserting cell the table cell might not be inserted into view\n  // because of child conversion is done after parent.\n\n  if (viewCell && viewCell.name !== desiredCellElementName) {\n    renameViewTableCell(cell, desiredCellElementName, conversionApi, asWidget);\n  }\n} // Creates a table cell element in the view.\n//\n// @param {module:table/tablewalker~TableWalkerValue} tableWalkerValue\n// @param {module:engine/view/position~Position} insertPosition\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n\n\nfunction createViewTableCellElement(tableWalkerValue, tableAttributes, insertPosition, conversionApi, options) {\n  var asWidget = options && options.asWidget;\n  var cellElementName = getCellElementName(tableWalkerValue, tableAttributes);\n  var cellElement = asWidget ? toWidgetEditable(conversionApi.writer.createEditableElement(cellElementName), conversionApi.writer) : conversionApi.writer.createContainerElement(cellElementName);\n  var tableCell = tableWalkerValue.cell;\n  var firstChild = tableCell.getChild(0);\n  var isSingleParagraph = tableCell.childCount === 1 && firstChild.name === 'paragraph';\n  conversionApi.writer.insert(insertPosition, cellElement);\n\n  if (isSingleParagraph && !hasAnyAttribute(firstChild)) {\n    var innerParagraph = tableCell.getChild(0);\n    var paragraphInsertPosition = conversionApi.writer.createPositionAt(cellElement, 'end');\n    conversionApi.consumable.consume(innerParagraph, 'insert');\n\n    if (options.asWidget) {\n      var fakeParagraph = conversionApi.writer.createContainerElement('span');\n      conversionApi.mapper.bindElements(innerParagraph, fakeParagraph);\n      conversionApi.writer.insert(paragraphInsertPosition, fakeParagraph);\n      conversionApi.mapper.bindElements(tableCell, cellElement);\n    } else {\n      conversionApi.mapper.bindElements(tableCell, cellElement);\n      conversionApi.mapper.bindElements(innerParagraph, cellElement);\n    }\n  } else {\n    conversionApi.mapper.bindElements(tableCell, cellElement);\n  }\n} // Creates `<tr>` view element.\n//\n// @param {module:engine/view/element~Element} tableRow\n// @param {Number} rowIndex\n// @param {module:engine/view/element~Element} tableSection\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n// @returns {module:engine/view/element~Element}\n\n\nfunction createTr(tableRow, rowIndex, tableSection, conversionApi) {\n  // Will always consume since we're converting <tableRow> element from a parent <table>.\n  conversionApi.consumable.consume(tableRow, 'insert');\n  var trElement = conversionApi.writer.createContainerElement('tr');\n  conversionApi.mapper.bindElements(tableRow, trElement);\n  var headingRows = tableRow.parent.getAttribute('headingRows') || 0;\n  var offset = headingRows > 0 && rowIndex >= headingRows ? rowIndex - headingRows : rowIndex;\n  var position = conversionApi.writer.createPositionAt(tableSection, offset);\n  conversionApi.writer.insert(position, trElement);\n  return trElement;\n} // Returns `th` for heading cells and `td` for other cells for the current table walker value.\n//\n// @param {module:table/tablewalker~TableWalkerValue} tableWalkerValue\n// @param {{headingColumns, headingRows}} tableAttributes\n// @returns {String}\n\n\nfunction getCellElementName(tableWalkerValue, tableAttributes) {\n  var row = tableWalkerValue.row,\n      column = tableWalkerValue.column;\n  var headingColumns = tableAttributes.headingColumns,\n      headingRows = tableAttributes.headingRows; // Column heading are all tableCells in the first `columnHeading` rows.\n\n  var isColumnHeading = headingRows && headingRows > row; // So a whole row gets <th> element.\n\n  if (isColumnHeading) {\n    return 'th';\n  } // Row heading are tableCells which columnIndex is lower then headingColumns.\n\n\n  var isRowHeading = headingColumns && headingColumns > column;\n  return isRowHeading ? 'th' : 'td';\n} // Returns the table section name for the current table walker value.\n//\n// @param {Number} row\n// @param {{headingColumns, headingRows}} tableAttributes\n// @returns {String}\n\n\nfunction getSectionName(row, tableAttributes) {\n  return row < tableAttributes.headingRows ? 'thead' : 'tbody';\n} // Creates or returns an existing `<tbody>` or `<thead>` element witch caching.\n//\n// @param {String} sectionName\n// @param {module:engine/view/element~Element} viewTable\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n// @param {Object} cachedTableSection An object that stores cached elements.\n// @returns {module:engine/view/containerelement~ContainerElement}\n\n\nfunction getOrCreateTableSection(sectionName, viewTable, conversionApi) {\n  var viewTableSection = getExistingTableSectionElement(sectionName, viewTable);\n  return viewTableSection ? viewTableSection : createTableSection(sectionName, viewTable, conversionApi);\n} // Finds an existing `<tbody>` or `<thead>` element or returns undefined.\n//\n// @param {String} sectionName\n// @param {module:engine/view/element~Element} tableElement\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n\n\nfunction getExistingTableSectionElement(sectionName, tableElement) {\n  var _iterator9 = _createForOfIteratorHelper(tableElement.getChildren()),\n      _step9;\n\n  try {\n    for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {\n      var tableSection = _step9.value;\n\n      if (tableSection.name == sectionName) {\n        return tableSection;\n      }\n    }\n  } catch (err) {\n    _iterator9.e(err);\n  } finally {\n    _iterator9.f();\n  }\n} // Creates a table section at the end of the table.\n//\n// @param {String} sectionName\n// @param {module:engine/view/element~Element} tableElement\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n// @returns {module:engine/view/containerelement~ContainerElement}\n\n\nfunction createTableSection(sectionName, tableElement, conversionApi) {\n  var tableChildElement = conversionApi.writer.createContainerElement(sectionName);\n  var insertPosition = conversionApi.writer.createPositionAt(tableElement, sectionName == 'tbody' ? 'end' : 0);\n  conversionApi.writer.insert(insertPosition, tableChildElement);\n  return tableChildElement;\n} // Removes an existing `<tbody>` or `<thead>` element if it is empty.\n//\n// @param {String} sectionName\n// @param {module:engine/view/element~Element} tableElement\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n\n\nfunction removeTableSectionIfEmpty(sectionName, tableElement, conversionApi) {\n  var tableSection = getExistingTableSectionElement(sectionName, tableElement);\n\n  if (tableSection && tableSection.childCount === 0) {\n    conversionApi.writer.remove(conversionApi.writer.createRangeOn(tableSection));\n  }\n} // Moves view table rows associated with passed model rows to the provided table section element.\n//\n// **Note** This method will skip not converted table rows.\n//\n// @param {Array.<module:engine/model/element~Element>} rowsToMove\n// @param {module:engine/view/element~Element} viewTableSection\n// @param {module:engine/conversion/downcastdispatcher~DowncastConversionApi} conversionApi\n// @param {Number|'end'|'before'|'after'} offset Offset or one of the flags.\n\n\nfunction moveViewRowsToTableSection(rowsToMove, viewTableSection, conversionApi, offset) {\n  var _iterator10 = _createForOfIteratorHelper(rowsToMove),\n      _step10;\n\n  try {\n    for (_iterator10.s(); !(_step10 = _iterator10.n()).done;) {\n      var tableRow = _step10.value;\n      var viewTableRow = conversionApi.mapper.toViewElement(tableRow); // View table row might be not yet converted - skip it as it will be properly created by cell converter later on.\n\n      if (viewTableRow) {\n        conversionApi.writer.move(conversionApi.writer.createRangeOn(viewTableRow), conversionApi.writer.createPositionAt(viewTableSection, offset));\n      }\n    }\n  } catch (err) {\n    _iterator10.e(err);\n  } finally {\n    _iterator10.f();\n  }\n} // Properly finds '<table>' element inside `<figure>` widget.\n//\n// @param {module:engine/view/element~Element} viewFigure\n\n\nfunction getViewTable(viewFigure) {\n  var _iterator11 = _createForOfIteratorHelper(viewFigure.getChildren()),\n      _step11;\n\n  try {\n    for (_iterator11.s(); !(_step11 = _iterator11.n()).done;) {\n      var child = _step11.value;\n\n      if (child.name === 'table') {\n        return child;\n      }\n    }\n  } catch (err) {\n    _iterator11.e(err);\n  } finally {\n    _iterator11.f();\n  }\n} // Checks if element has any attribute set.\n//\n// @param {module:engine/model/element~Element element\n// @returns {Boolean}\n\n\nfunction hasAnyAttribute(element) {\n  return !!_toConsumableArray(element.getAttributeKeys()).length;\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/converters/table-cell-paragraph-post-fixer\n */\n\n/**\n * Injects a table cell post-fixer into the model which inserts `paragraph` element into empty table cells.\n *\n * A table cell must contain at least one block element as a child. An empty table cell will have empty `paragraph` as a child.\n *\n *\t\t<table>\n *\t\t\t<tableRow>\n *\t\t\t\t<tableCell></tableCell>\n *\t\t\t</tableRow>\n *\t\t</table>\n *\n * Will be fixed to:\n *\n *\t\t<table>\n *\t\t\t<tableRow>\n *\t\t\t\t<tableCell><paragraph></paragraph></tableCell>\n *\t\t\t</tableRow>\n *\t\t</table>\n *\n * @param {module:engine/model/model~Model} model\n */\nexport default function injectTableCellParagraphPostFixer(model) {\n  model.document.registerPostFixer(function (writer) {\n    return tableCellContentsPostFixer(writer, model);\n  });\n} // The table cell contents post-fixer.\n//\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/model~Model} model\n\nfunction tableCellContentsPostFixer(writer, model) {\n  var changes = model.document.differ.getChanges();\n  var wasFixed = false;\n\n  var _iterator = _createForOfIteratorHelper(changes),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var entry = _step.value;\n\n      if (entry.type == 'insert' && entry.name == 'table') {\n        wasFixed = fixTable(entry.position.nodeAfter, writer) || wasFixed;\n      }\n\n      if (entry.type == 'insert' && entry.name == 'tableRow') {\n        wasFixed = fixTableRow(entry.position.nodeAfter, writer) || wasFixed;\n      }\n\n      if (entry.type == 'insert' && entry.name == 'tableCell') {\n        wasFixed = fixTableCellContent(entry.position.nodeAfter, writer) || wasFixed;\n      }\n\n      if (checkTableCellChange(entry)) {\n        wasFixed = fixTableCellContent(entry.position.parent, writer) || wasFixed;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return wasFixed;\n} // Fixes all table cells in a table.\n//\n// @param {module:engine/model/element~Element} table\n// @param {module:engine/model/writer~Writer} writer\n\n\nfunction fixTable(table, writer) {\n  var wasFixed = false;\n\n  var _iterator2 = _createForOfIteratorHelper(table.getChildren()),\n      _step2;\n\n  try {\n    for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n      var row = _step2.value;\n      wasFixed = fixTableRow(row, writer) || wasFixed;\n    }\n  } catch (err) {\n    _iterator2.e(err);\n  } finally {\n    _iterator2.f();\n  }\n\n  return wasFixed;\n} // Fixes all table cells in a table row.\n//\n// @param {module:engine/model/element~Element} tableRow\n// @param {module:engine/model/writer~Writer} writer\n\n\nfunction fixTableRow(tableRow, writer) {\n  var wasFixed = false;\n\n  var _iterator3 = _createForOfIteratorHelper(tableRow.getChildren()),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var tableCell = _step3.value;\n      wasFixed = fixTableCellContent(tableCell, writer) || wasFixed;\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  return wasFixed;\n} // Fixes all table cell content by:\n// - adding paragraph to a table cell without any child.\n// - wrapping direct $text in <paragraph>.\n//\n// @param {module:engine/model/element~Element} table\n// @param {module:engine/model/writer~Writer} writer\n// @returns {Boolean}\n\n\nfunction fixTableCellContent(tableCell, writer) {\n  // Insert paragraph to an empty table cell.\n  if (tableCell.childCount == 0) {\n    writer.insertElement('paragraph', tableCell);\n    return true;\n  } // Check table cell children for directly placed text nodes.\n  // Temporary solution. See https://github.com/ckeditor/ckeditor5/issues/1464.\n\n\n  var textNodes = Array.from(tableCell.getChildren()).filter(function (child) {\n    return child.is('text');\n  });\n\n  var _iterator4 = _createForOfIteratorHelper(textNodes),\n      _step4;\n\n  try {\n    for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n      var child = _step4.value;\n      writer.wrap(writer.createRangeOn(child), 'paragraph');\n    } // Return true when there were text nodes to fix.\n\n  } catch (err) {\n    _iterator4.e(err);\n  } finally {\n    _iterator4.f();\n  }\n\n  return !!textNodes.length;\n} // Check if differ change should fix table cell. This happens on:\n// - removing content from table cell (ie tableCell can be left empty).\n// - adding text node directly into a table cell.\n//\n// @param {Object} differ change entry\n// @returns {Boolean}\n\n\nfunction checkTableCellChange(entry) {\n  if (!entry.position || !entry.position.parent.is('tableCell')) {\n    return false;\n  }\n\n  return entry.type == 'insert' && entry.name == '$text' || entry.type == 'remove';\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/converters/table-cell-refresh-post-fixer\n */\n\n/**\n * Injects a table cell post-fixer into the model which marks the table cell in the differ to have it re-rendered.\n *\n * Model `paragraph` inside a table cell can be rendered as `<span>` or `<p>`. It is rendered as `<span>` if this is the only block\n * element in that table cell and it doesn't have any attributes. It is rendered as `<p>` otherwise.\n *\n * When table cell content changes, for example a second `paragraph` element is added we need to ensure that the first `paragraph` is\n * re-rendered so it changes to `<p>` from `<span>`. The easiest way to do it is to re-render whole table cell.\n *\n * @param {module:engine/model/model~Model} model\n */\nexport default function injectTableCellRefreshPostFixer(model) {\n  model.document.registerPostFixer(function () {\n    return tableCellRefreshPostFixer(model);\n  });\n}\n\nfunction tableCellRefreshPostFixer(model) {\n  var differ = model.document.differ; // Stores cells to be refreshed so the table cell will be refreshed once for multiple changes.\n\n  var cellsToRefresh = new Set();\n\n  var _iterator = _createForOfIteratorHelper(differ.getChanges()),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var change = _step.value;\n      var parent = change.type == 'insert' || change.type == 'remove' ? change.position.parent : change.range.start.parent;\n\n      if (parent.is('tableCell') && checkRefresh(parent, change.type)) {\n        cellsToRefresh.add(parent);\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  if (cellsToRefresh.size) {\n    var _iterator2 = _createForOfIteratorHelper(cellsToRefresh.values()),\n        _step2;\n\n    try {\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var tableCell = _step2.value;\n        differ.refreshItem(tableCell);\n      }\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n\n    return true;\n  }\n\n  return false;\n} // Checks if the model table cell requires refreshing to be re-rendered to a proper state in the view.\n//\n// This methods detects changes that will require renaming <span> to <p> (or vice versa) in the view.\n//\n// This method is a simple heuristic that checks only a single change and will sometimes give a false positive result when multiple changes\n// will result in a state that does not require renaming in the view (but will be seen as requiring a refresh).\n//\n// For instance: a `<span>` should be renamed to `<p>` when adding an attribute to a `<paragraph>`.\n// But adding one attribute and removing another one will result in a false positive: the check for added attribute will see one attribute\n// on a paragraph and will falsy qualify such change as adding an attribute to a paragraph without any attribute.\n//\n// @param {module:engine/model/element~Element} tableCell Table cell to check.\n// @param {String} type Type of change.\n\n\nfunction checkRefresh(tableCell, type) {\n  var hasInnerParagraph = Array.from(tableCell.getChildren()).some(function (child) {\n    return child.is('paragraph');\n  }); // If there is no paragraph in table cell then the view doesn't require refreshing.\n  //\n  // Why? What we really want to achieve is to make all the old paragraphs (which weren't added in this batch) to be\n  // converted once again, so that the paragraph-in-table-cell converter can correctly create a `<p>` or a `<span>` element.\n  // If there are no paragraphs in the table cell, we don't care.\n\n  if (!hasInnerParagraph) {\n    return false;\n  } // For attribute change we only refresh if there is a single paragraph as in this case we may want to change existing `<span>` to `<p>`.\n\n\n  if (type == 'attribute') {\n    var attributesCount = Array.from(tableCell.getChild(0).getAttributeKeys()).length;\n    return tableCell.childCount === 1 && attributesCount < 2;\n  } // For other changes (insert, remove) the `<span>` to `<p>` change is needed when:\n  //\n  // - another element is added to a single paragraph (childCount becomes >= 2)\n  // - another element is removed and a single paragraph is left (childCount == 1)\n\n\n  return tableCell.childCount <= (type == 'insert' ? 2 : 1);\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/es7.object.entries\";\nimport \"core-js/modules/es7.object.values\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/converters/table-layout-post-fixer\n */\nimport { createEmptyTableCell, findAncestor, updateNumericAttribute } from \"./../commands/utils\";\nimport TableWalker from \"./../tablewalker\";\n/**\n * Injects a table layout post-fixer into the model.\n *\n * The role of the table layout post-fixer is to ensure that the table rows have the correct structure\n * after a {@link module:engine/model/model~Model#change `change()`} block was executed.\n *\n * The correct structure means that:\n *\n * * All table rows have the same size.\n * * None of a table cells that extend vertically beyond their section (either header or body).\n * * A table cell has always at least one element as child.\n *\n * If the table structure is not correct, the post-fixer will automatically correct it in two steps:\n *\n * 1. It will clip table cells that extends beyond it section.\n * 2. It will add empty table cells to those rows which are narrower then the widest table row.\n *\n * ## Clipping overlapping table cells\n *\n * Such situation may occur when pasting a table (or part of a table) to the editor from external sources.\n *\n * For example, see the following table which has the cell (FOO) with the rowspan attribute (2):\n *\n *\t\t<table headingRows=\"1\">\n *\t\t\t<tableRow>\n *\t\t\t\t<tableCell rowspan=\"2\"><paragraph>FOO</paragraph></tableCell>\n *\t\t\t\t<tableCell colspan=\"2\"><paragraph>BAR</paragraph></tableCell>\n *\t\t\t</tableRow>\n *\t\t\t<tableRow>\n *\t\t\t\t<tableCell><paragraph>BAZ</paragraph></tableCell>\n *\t\t\t\t<tableCell><paragraph>XYZ</paragraph></tableCell>\n *\t\t\t</tableRow>\n *\t\t</table>\n *\n * will be rendered in the view as:\n *\n *\t\t<table>\n *\t\t\t<thead>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td rowspan=\"2\">FOO</td>\n *\t\t\t\t\t<td colspan=\"2\">BAR</td>\n *\t\t\t\t</tr>\n *\t\t\t</thead>\n *\t\t\t<tbody>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>BAZ</td>\n *\t\t\t\t\t<td>XYZ</td>\n *\t\t\t\t</tr>\n *\t\t\t</tbody>\n *\t\t</table>\n *\n * In the above example the table will be rendered as a table with two rows - one in the header and second one in the body.\n * The table cell (FOO) cannot span over multiple rows as it would expand from the header to the body section.\n * The `rowspan` attribute must be changed to (1). The value (1) is a default value of the `rowspan` attribute\n * so the `rowspan` attribute will be removed from the model.\n *\n * The table cell with BAZ contents will be in the first column of the table.\n *\n * ## Adding missing table cells\n *\n * The table post-fixer will insert empty table cells to equalize table rows sizes (number of columns).\n * The size of a table row is calculated by counting column spans of table cells - both horizontal (from the same row) and\n * vertical (from rows above).\n *\n * In the above example, the table row in the body section of the table is narrower then the row from the header - it has two cells\n * with the default colspan (1). The header row has one cell with colspan (1) and second with colspan (2).\n * The table cell (FOO) does not expand beyond the head section (and as such will be fixed in the first step of this post-fixer).\n * The post-fixer will add a missing table cell to the row in the body section of the table.\n *\n * The table from the above example will be fixed and rendered to the view as below:\n *\n *\t\t<table>\n *\t\t\t<thead>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td rowspan=\"2\">FOO</td>\n *\t\t\t\t\t<td colspan=\"2\">BAR</td>\n *\t\t\t\t</tr>\n *\t\t\t</thead>\n *\t\t\t<tbody>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>BAZ</td>\n *\t\t\t\t\t<td>XYZ</td>\n *\t\t\t\t</tr>\n *\t\t\t</tbody>\n *\t\t</table>\n *\n * ## Collaboration & Undo - Expectations vs post-fixer results\n *\n * The table post-fixer only ensures proper structure without deeper analysis of the nature of a change. As such, it might lead\n * to a structure which was not intended by the user changes. In particular, it will also fix undo steps (in conjunction with collaboration)\n * in which editor content might not return to the original state.\n *\n * This will usually happen when one or more users changes size of the table.\n *\n * As en example see a table below:\n *\n *\t\t<table>\n *\t\t\t<tbody>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>11</td>\n *\t\t\t\t\t<td>12</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>21</td>\n *\t\t\t\t\t<td>22</td>\n *\t\t\t\t</tr>\n *\t\t\t</tbody>\n *\t\t</table>\n *\n * and user actions:\n *\n * 1. Both user have table with two rows and two columns.\n * 2. User A adds a column at the end of the table - this will insert empty table cells to two rows.\n * 3. User B adds a row at the end of the table- this will insert a row with two empty table cells.\n * 4. Both users will have a table as below:\n *\n *\n *\t\t<table>\n *\t\t\t<tbody>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>11</td>\n *\t\t\t\t\t<td>12</td>\n *\t\t\t\t\t<td>(empty, inserted by A)</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>21</td>\n *\t\t\t\t\t<td>22</td>\n *\t\t\t\t\t<td>(empty, inserted by A)</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t</tr>\n *\t\t\t</tbody>\n *\t\t</table>\n *\n * The last row is shorter then others so table post-fixer will add empty row to tha last row:\n *\n *\t\t<table>\n *\t\t\t<tbody>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>11</td>\n *\t\t\t\t\t<td>12</td>\n *\t\t\t\t\t<td>(empty, inserted by A)</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>21</td>\n *\t\t\t\t\t<td>22</td>\n *\t\t\t\t\t<td>(empty, inserted by A)</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t\t<td>(empty, inserted by a post-fixer)</td>\n *\t\t\t\t</tr>\n *\t\t\t</tbody>\n *\t\t</table>\n *\n * Unfortunately undo doesn't know the nature of changes and depending which user will apply post-fixer changes undoing them might lead to\n * broken table. If User B will undo inserting column to a table the undo engine will undo only operations of\n * inserting empty cells to rows from initial table state (row 1 & 2) but the cell in post-fixed row will remain:\n *\n *\t\t<table>\n *\t\t\t<tbody>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>11</td>\n *\t\t\t\t\t<td>12</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>21</td>\n *\t\t\t\t\t<td>22</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t\t<td>(empty, inserted by a post-fixer)</td>\n *\t\t\t\t</tr>\n *\t\t\t</tbody>\n *\t\t</table>\n *\n * After undo the table post-fixer will detect that two rows are shorter then other and will fix table to:\n *\n *\t\t<table>\n *\t\t\t<tbody>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>11</td>\n *\t\t\t\t\t<td>12</td>\n *\t\t\t\t\t<td>(empty, inserted by a post-fixer after undo)</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>21</td>\n *\t\t\t\t\t<td>22</td>\n *\t\t\t\t\t<td>(empty, inserted by a post-fixer after undo)</td>\n *\t\t\t\t</tr>\n *\t\t\t\t<tr>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t\t<td>(empty, inserted by B)</td>\n *\t\t\t\t\t<td>(empty, inserted by a post-fixer)</td>\n *\t\t\t\t</tr>\n *\t\t\t</tbody>\n *\t\t</table>\n * @param {module:engine/model/model~Model} model\n */\n\nexport default function injectTableLayoutPostFixer(model) {\n  model.document.registerPostFixer(function (writer) {\n    return tableLayoutPostFixer(writer, model);\n  });\n} // The table layout post-fixer.\n//\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/model~Model} model\n\nfunction tableLayoutPostFixer(writer, model) {\n  var changes = model.document.differ.getChanges();\n  var wasFixed = false; // Do not analyze the same table more then once - may happen for multiple changes in the same table.\n\n  var analyzedTables = new Set();\n\n  var _iterator = _createForOfIteratorHelper(changes),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var entry = _step.value;\n      var table = void 0;\n\n      if (entry.name == 'table' && entry.type == 'insert') {\n        table = entry.position.nodeAfter;\n      } // Fix table on adding/removing table cells and rows.\n\n\n      if (entry.name == 'tableRow' || entry.name == 'tableCell') {\n        table = findAncestor('table', entry.position);\n      } // Fix table on any table's attribute change - including attributes of table cells.\n\n\n      if (isTableAttributeEntry(entry)) {\n        table = findAncestor('table', entry.range.start);\n      }\n\n      if (table && !analyzedTables.has(table)) {\n        // Step 1: correct rowspans of table cells if necessary.\n        // The wasFixed flag should be true if any of tables in batch was fixed - might be more then one.\n        wasFixed = fixTableCellsRowspan(table, writer) || wasFixed; // Step 2: fix table rows sizes.\n\n        wasFixed = fixTableRowsSizes(table, writer) || wasFixed;\n        analyzedTables.add(table);\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return wasFixed;\n} // Fixes the invalid value of the rowspan attribute because a table cell cannot vertically extend beyond the table section it belongs to.\n//\n// @param {module:engine/model/element~Element} table\n// @param {module:engine/model/writer~Writer} writer\n// @returns {Boolean} Returns true if table was fixed.\n\n\nfunction fixTableCellsRowspan(table, writer) {\n  var wasFixed = false;\n  var cellsToTrim = findCellsToTrim(table);\n\n  if (cellsToTrim.length) {\n    wasFixed = true;\n\n    var _iterator2 = _createForOfIteratorHelper(cellsToTrim),\n        _step2;\n\n    try {\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var data = _step2.value;\n        updateNumericAttribute('rowspan', data.rowspan, data.cell, writer, 1);\n      }\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n  }\n\n  return wasFixed;\n} // Makes all table rows in a table the same size.\n//\n// @param {module:engine/model/element~Element} table\n// @param {module:engine/model/writer~Writer} writer\n// @returns {Boolean} Returns true if table was fixed.\n\n\nfunction fixTableRowsSizes(table, writer) {\n  var wasFixed = false;\n  var rowsLengths = getRowsLengths(table);\n  var tableSize = rowsLengths[0];\n  var isValid = Object.values(rowsLengths).every(function (length) {\n    return length === tableSize;\n  });\n\n  if (!isValid) {\n    var maxColumns = Object.values(rowsLengths).reduce(function (prev, current) {\n      return current > prev ? current : prev;\n    }, 0);\n\n    for (var _i = 0, _Object$entries = Object.entries(rowsLengths); _i < _Object$entries.length; _i++) {\n      var _Object$entries$_i = _slicedToArray(_Object$entries[_i], 2),\n          rowIndex = _Object$entries$_i[0],\n          size = _Object$entries$_i[1];\n\n      var columnsToInsert = maxColumns - size;\n\n      if (columnsToInsert) {\n        for (var i = 0; i < columnsToInsert; i++) {\n          createEmptyTableCell(writer, writer.createPositionAt(table.getChild(rowIndex), 'end'));\n        }\n\n        wasFixed = true;\n      }\n    }\n  }\n\n  return wasFixed;\n} // Searches for the table cells that extends beyond the table section to which they belong to. It will return an array of objects\n// that holds table cells to be trimmed and correct value of a rowspan attribute to set.\n//\n// @param {module:engine/model/element~Element} table\n// @returns {Array.<{{cell, rowspan}}>}\n\n\nfunction findCellsToTrim(table) {\n  var headingRows = parseInt(table.getAttribute('headingRows') || 0);\n  var maxRows = table.childCount;\n  var cellsToTrim = [];\n\n  var _iterator3 = _createForOfIteratorHelper(new TableWalker(table)),\n      _step3;\n\n  try {\n    for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n      var _step3$value = _step3.value,\n          row = _step3$value.row,\n          rowspan = _step3$value.rowspan,\n          cell = _step3$value.cell;\n\n      // Skip cells that do not expand over its row.\n      if (rowspan < 2) {\n        continue;\n      }\n\n      var isInHeader = row < headingRows; // Row limit is either end of header section or whole table as table body is after the header.\n\n      var rowLimit = isInHeader ? headingRows : maxRows; // If table cell expands over its limit reduce it height to proper value.\n\n      if (row + rowspan > rowLimit) {\n        var newRowspan = rowLimit - row;\n        cellsToTrim.push({\n          cell: cell,\n          rowspan: newRowspan\n        });\n      }\n    }\n  } catch (err) {\n    _iterator3.e(err);\n  } finally {\n    _iterator3.f();\n  }\n\n  return cellsToTrim;\n} // Returns an object with lengths of rows assigned to the corresponding row index.\n//\n// @param {module:engine/model/element~Element} table\n// @returns {Object}\n\n\nfunction getRowsLengths(table) {\n  var lengths = {};\n\n  var _iterator4 = _createForOfIteratorHelper(new TableWalker(table, {\n    includeSpanned: true\n  })),\n      _step4;\n\n  try {\n    for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n      var row = _step4.value.row;\n\n      if (!lengths[row]) {\n        lengths[row] = 0;\n      }\n\n      lengths[row] += 1;\n    }\n  } catch (err) {\n    _iterator4.e(err);\n  } finally {\n    _iterator4.f();\n  }\n\n  return lengths;\n} // Checks if the differ entry for an attribute change is one of table's attributes.\n//\n// @param entry\n// @returns {Boolean}\n\n\nfunction isTableAttributeEntry(entry) {\n  var isAttributeType = entry.type === 'attribute';\n  var key = entry.attributeKey;\n  return isAttributeType && (key === 'headingRows' || key === 'colspan' || key === 'rowspan');\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/web.dom.iterable\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/converters/upcasttable\n */\nimport { createEmptyTableCell } from \"../commands/utils\";\n/**\n * View table element to model table element conversion helper.\n *\n * This conversion helper converts the table element as well as table rows.\n *\n * @returns {Function} Conversion helper.\n */\n\nexport default function upcastTable() {\n  return function (dispatcher) {\n    dispatcher.on('element:table', function (evt, data, conversionApi) {\n      var viewTable = data.viewItem; // When element was already consumed then skip it.\n\n      if (!conversionApi.consumable.test(viewTable, {\n        name: true\n      })) {\n        return;\n      }\n\n      var _scanTable = scanTable(viewTable),\n          rows = _scanTable.rows,\n          headingRows = _scanTable.headingRows,\n          headingColumns = _scanTable.headingColumns; // Only set attributes if values is greater then 0.\n\n\n      var attributes = {};\n\n      if (headingColumns) {\n        attributes.headingColumns = headingColumns;\n      }\n\n      if (headingRows) {\n        attributes.headingRows = headingRows;\n      }\n\n      var table = conversionApi.writer.createElement('table', attributes); // Insert element on allowed position.\n\n      var splitResult = conversionApi.splitToAllowedParent(table, data.modelCursor); // When there is no split result it means that we can't insert element to model tree, so let's skip it.\n\n      if (!splitResult) {\n        return;\n      }\n\n      conversionApi.writer.insert(table, splitResult.position);\n      conversionApi.consumable.consume(viewTable, {\n        name: true\n      });\n\n      if (rows.length) {\n        // Upcast table rows in proper order (heading rows first).\n        rows.forEach(function (row) {\n          return conversionApi.convertItem(row, conversionApi.writer.createPositionAt(table, 'end'));\n        });\n      } else {\n        // Create one row and one table cell for empty table.\n        var row = conversionApi.writer.createElement('tableRow');\n        conversionApi.writer.insert(row, conversionApi.writer.createPositionAt(table, 'end'));\n        createEmptyTableCell(conversionApi.writer, conversionApi.writer.createPositionAt(row, 'end'));\n      } // Set conversion result range.\n\n\n      data.modelRange = conversionApi.writer.createRange( // Range should start before inserted element\n      conversionApi.writer.createPositionBefore(table), // Should end after but we need to take into consideration that children could split our\n      // element, so we need to move range after parent of the last converted child.\n      // before: <allowed>[]</allowed>\n      // after: <allowed>[<converted><child></child></converted><child></child><converted>]</converted></allowed>\n      conversionApi.writer.createPositionAfter(table)); // Now we need to check where the modelCursor should be.\n      // If we had to split parent to insert our element then we want to continue conversion inside split parent.\n      //\n      // before: <allowed><notAllowed>[]</notAllowed></allowed>\n      // after:  <allowed><notAllowed></notAllowed><converted></converted><notAllowed>[]</notAllowed></allowed>\n\n      if (splitResult.cursorParent) {\n        data.modelCursor = conversionApi.writer.createPositionAt(splitResult.cursorParent, 0); // Otherwise just continue after inserted element.\n      } else {\n        data.modelCursor = data.modelRange.end;\n      }\n    });\n  };\n}\nexport function upcastTableCell(elementName) {\n  return function (dispatcher) {\n    dispatcher.on(\"element:\".concat(elementName), function (evt, data, conversionApi) {\n      var viewTableCell = data.viewItem; // When element was already consumed then skip it.\n\n      if (!conversionApi.consumable.test(viewTableCell, {\n        name: true\n      })) {\n        return;\n      }\n\n      var tableCell = conversionApi.writer.createElement('tableCell'); // Insert element on allowed position.\n\n      var splitResult = conversionApi.splitToAllowedParent(tableCell, data.modelCursor); // When there is no split result it means that we can't insert element to model tree, so let's skip it.\n\n      if (!splitResult) {\n        return;\n      }\n\n      conversionApi.writer.insert(tableCell, splitResult.position);\n      conversionApi.consumable.consume(viewTableCell, {\n        name: true\n      });\n      var modelCursor = conversionApi.writer.createPositionAt(tableCell, 0);\n      conversionApi.convertChildren(viewTableCell, modelCursor); // Ensure a paragraph in the model for empty table cells.\n\n      if (!tableCell.childCount) {\n        conversionApi.writer.insertElement('paragraph', modelCursor);\n      } // Set conversion result range.\n\n\n      data.modelRange = conversionApi.writer.createRange( // Range should start before inserted element\n      conversionApi.writer.createPositionBefore(tableCell), // Should end after but we need to take into consideration that children could split our\n      // element, so we need to move range after parent of the last converted child.\n      // before: <allowed>[]</allowed>\n      // after: <allowed>[<converted><child></child></converted><child></child><converted>]</converted></allowed>\n      conversionApi.writer.createPositionAfter(tableCell)); // Continue after inserted element.\n\n      data.modelCursor = data.modelRange.end;\n    });\n  };\n} // Scans table rows and extracts required metadata from the table:\n//\n// headingRows    - the number of rows that goes as table header.\n// headingColumns - max number of row headings.\n// rows           - sorted `<tr>`s as they should go into the model - ie. if `<thead>` is inserted after `<tbody>` in the view.\n//\n// @param {module:engine/view/element~Element} viewTable\n// @returns {{headingRows, headingColumns, rows}}\n\nfunction scanTable(viewTable) {\n  var tableMeta = {\n    headingRows: 0,\n    headingColumns: 0\n  }; // The `<tbody>` and <thead> sections in the DOM do not have to be in order `<thead>` -> `<tbody>` and there might be more then one of\n  // them.\n  // As the model does not have those sections, rows from different sections must be sorted.\n  // For example, below is a valid HTML table:\n  //\n  //\t\t<table>\n  //\t\t\t<tbody><tr><td>2</td></tr></tbody>\n  //\t\t\t<thead><tr><td>1</td></tr></thead>\n  //\t\t\t<tbody><tr><td>3</td></tr></tbody>\n  //\t\t</table>\n  //\n  // But browsers will render rows in order as: 1 as heading and 2 and 3 as (body).\n\n  var headRows = [];\n  var bodyRows = []; // Currently the editor does not support more then one <thead> section.\n  // Only the first <thead> from the view will be used as heading rows and others will be converted to body rows.\n\n  var firstTheadElement;\n\n  for (var _i = 0, _Array$from = Array.from(viewTable.getChildren()); _i < _Array$from.length; _i++) {\n    var tableChild = _Array$from[_i];\n\n    // Only <thead>, <tbody> & <tfoot> from allowed table children can have <tr>s.\n    // The else is for future purposes (mainly <caption>).\n    if (tableChild.name === 'tbody' || tableChild.name === 'thead' || tableChild.name === 'tfoot') {\n      // Save the first <thead> in the table as table header - all other ones will be converted to table body rows.\n      if (tableChild.name === 'thead' && !firstTheadElement) {\n        firstTheadElement = tableChild;\n      } // There might be some extra empty text nodes between the `tr`s.\n      // Make sure further code operates on `tr`s only. (#145)\n\n\n      var trs = Array.from(tableChild.getChildren()).filter(function (el) {\n        return el.is('element', 'tr');\n      });\n\n      var _iterator = _createForOfIteratorHelper(trs),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var tr = _step.value;\n\n          // This <tr> is a child of a first <thead> element.\n          if (tr.parent.name === 'thead' && tr.parent === firstTheadElement) {\n            tableMeta.headingRows++;\n            headRows.push(tr);\n          } else {\n            bodyRows.push(tr); // For other rows check how many column headings this row has.\n\n            var headingCols = scanRowForHeadingColumns(tr, tableMeta, firstTheadElement);\n\n            if (headingCols > tableMeta.headingColumns) {\n              tableMeta.headingColumns = headingCols;\n            }\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n  }\n\n  tableMeta.rows = [].concat(headRows, bodyRows);\n  return tableMeta;\n} // Scans `<tr>` and its children for metadata:\n// - For heading row:\n//     - either adds this row to heading or body rows.\n//     - updates number of heading rows.\n// - For body rows:\n//     - calculates the number of column headings.\n//\n// @param {module:engine/view/element~Element} tr\n// @returns {Number}\n\n\nfunction scanRowForHeadingColumns(tr) {\n  var headingColumns = 0;\n  var index = 0; // Filter out empty text nodes from tr children.\n\n  var children = Array.from(tr.getChildren()).filter(function (child) {\n    return child.name === 'th' || child.name === 'td';\n  }); // Count starting adjacent <th> elements of a <tr>.\n\n  while (index < children.length && children[index].name === 'th') {\n    var th = children[index]; // Adjust columns calculation by the number of spanned columns.\n\n    var colspan = parseInt(th.getAttribute('colspan') || 1);\n    headingColumns = headingColumns + colspan;\n    index++;\n  }\n\n  return headingColumns;\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/table\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport TableEditing from \"./tableediting\";\nimport TableUI from \"./tableui\";\nimport Widget from '@ckeditor/ckeditor5-widget/src/widget';\nimport \"../theme/table.css\";\n/**\n * The table plugin.\n *\n * For a detailed overview, check the {@glink features/table Table feature documentation}.\n *\n * This is a \"glue\" plugin which loads the {@link module:table/tableediting~TableEditing table editing feature}\n * and {@link module:table/tableui~TableUI table UI feature}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Table = /*#__PURE__*/function (_Plugin) {\n  _inherits(Table, _Plugin);\n\n  var _super = _createSuper(Table);\n\n  function Table() {\n    _classCallCheck(this, Table);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Table, null, [{\n    key: \"requires\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return [TableEditing, TableUI, Widget];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Table';\n    }\n  }]);\n\n  return Table;\n}(Plugin);\n/**\n * The configuration of the table features. Used by the table features in the `@ckeditor/ckeditor5-table` package.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\ttable: ... // Table feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface TableConfig\n */\n\n/**\n * The configuration of the {@link module:table/table~Table} feature.\n *\n * Read more in {@link module:table/table~TableConfig}.\n *\n * @member {module:table/table~TableConfig} module:core/editor/editorconfig~EditorConfig#table\n */\n\n\nexport { Table as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/tableediting\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport upcastTable, { upcastTableCell } from \"./converters/upcasttable\";\nimport { downcastInsertCell, downcastInsertRow, downcastInsertTable, downcastRemoveRow, downcastTableHeadingColumnsChange, downcastTableHeadingRowsChange } from \"./converters/downcast\";\nimport InsertTableCommand from \"./commands/inserttablecommand\";\nimport InsertRowCommand from \"./commands/insertrowcommand\";\nimport InsertColumnCommand from \"./commands/insertcolumncommand\";\nimport SplitCellCommand from \"./commands/splitcellcommand\";\nimport MergeCellCommand from \"./commands/mergecellcommand\";\nimport RemoveRowCommand from \"./commands/removerowcommand\";\nimport RemoveColumnCommand from \"./commands/removecolumncommand\";\nimport SetHeaderRowCommand from \"./commands/setheaderrowcommand\";\nimport SetHeaderColumnCommand from \"./commands/setheadercolumncommand\";\nimport { findAncestor } from \"./commands/utils\";\nimport TableUtils from \"../src/tableutils\";\nimport injectTableLayoutPostFixer from \"./converters/table-layout-post-fixer\";\nimport injectTableCellParagraphPostFixer from \"./converters/table-cell-paragraph-post-fixer\";\nimport injectTableCellRefreshPostFixer from \"./converters/table-cell-refresh-post-fixer\";\nimport \"../theme/tableediting.css\";\n/**\n * The table editing feature.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar TableEditing = /*#__PURE__*/function (_Plugin) {\n  _inherits(TableEditing, _Plugin);\n\n  var _super = _createSuper(TableEditing);\n\n  function TableEditing() {\n    _classCallCheck(this, TableEditing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(TableEditing, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var _this = this;\n\n      var editor = this.editor;\n      var model = editor.model;\n      var schema = model.schema;\n      var conversion = editor.conversion;\n      schema.register('table', {\n        allowWhere: '$block',\n        allowAttributes: ['headingRows', 'headingColumns'],\n        isLimit: true,\n        isObject: true,\n        isBlock: true\n      });\n      schema.register('tableRow', {\n        allowIn: 'table',\n        isLimit: true\n      });\n      schema.register('tableCell', {\n        allowIn: 'tableRow',\n        allowAttributes: ['colspan', 'rowspan'],\n        isLimit: true\n      }); // Allow all $block content inside table cell.\n\n      schema.extend('$block', {\n        allowIn: 'tableCell'\n      }); // Disallow table in table.\n\n      schema.addChildCheck(function (context, childDefinition) {\n        if (childDefinition.name == 'table' && Array.from(context.getNames()).includes('table')) {\n          return false;\n        }\n      }); // Table conversion.\n\n      conversion.for('upcast').add(upcastTable());\n      conversion.for('editingDowncast').add(downcastInsertTable({\n        asWidget: true\n      }));\n      conversion.for('dataDowncast').add(downcastInsertTable()); // Table row conversion.\n\n      conversion.for('upcast').elementToElement({\n        model: 'tableRow',\n        view: 'tr'\n      });\n      conversion.for('editingDowncast').add(downcastInsertRow({\n        asWidget: true\n      }));\n      conversion.for('dataDowncast').add(downcastInsertRow());\n      conversion.for('downcast').add(downcastRemoveRow()); // Table cell conversion.\n\n      conversion.for('upcast').add(upcastTableCell('td'));\n      conversion.for('upcast').add(upcastTableCell('th'));\n      conversion.for('editingDowncast').add(downcastInsertCell({\n        asWidget: true\n      }));\n      conversion.for('dataDowncast').add(downcastInsertCell()); // Table attributes conversion.\n\n      conversion.attributeToAttribute({\n        model: 'colspan',\n        view: 'colspan'\n      });\n      conversion.attributeToAttribute({\n        model: 'rowspan',\n        view: 'rowspan'\n      }); // Table heading rows and cols conversion.\n\n      conversion.for('editingDowncast').add(downcastTableHeadingColumnsChange({\n        asWidget: true\n      }));\n      conversion.for('dataDowncast').add(downcastTableHeadingColumnsChange());\n      conversion.for('editingDowncast').add(downcastTableHeadingRowsChange({\n        asWidget: true\n      }));\n      conversion.for('dataDowncast').add(downcastTableHeadingRowsChange()); // Define all the commands.\n\n      editor.commands.add('insertTable', new InsertTableCommand(editor));\n      editor.commands.add('insertTableRowAbove', new InsertRowCommand(editor, {\n        order: 'above'\n      }));\n      editor.commands.add('insertTableRowBelow', new InsertRowCommand(editor, {\n        order: 'below'\n      }));\n      editor.commands.add('insertTableColumnLeft', new InsertColumnCommand(editor, {\n        order: 'left'\n      }));\n      editor.commands.add('insertTableColumnRight', new InsertColumnCommand(editor, {\n        order: 'right'\n      }));\n      editor.commands.add('removeTableRow', new RemoveRowCommand(editor));\n      editor.commands.add('removeTableColumn', new RemoveColumnCommand(editor));\n      editor.commands.add('splitTableCellVertically', new SplitCellCommand(editor, {\n        direction: 'vertically'\n      }));\n      editor.commands.add('splitTableCellHorizontally', new SplitCellCommand(editor, {\n        direction: 'horizontally'\n      }));\n      editor.commands.add('mergeTableCellRight', new MergeCellCommand(editor, {\n        direction: 'right'\n      }));\n      editor.commands.add('mergeTableCellLeft', new MergeCellCommand(editor, {\n        direction: 'left'\n      }));\n      editor.commands.add('mergeTableCellDown', new MergeCellCommand(editor, {\n        direction: 'down'\n      }));\n      editor.commands.add('mergeTableCellUp', new MergeCellCommand(editor, {\n        direction: 'up'\n      }));\n      editor.commands.add('setTableColumnHeader', new SetHeaderColumnCommand(editor));\n      editor.commands.add('setTableRowHeader', new SetHeaderRowCommand(editor));\n      injectTableLayoutPostFixer(model);\n      injectTableCellRefreshPostFixer(model);\n      injectTableCellParagraphPostFixer(model); // Handle tab key navigation.\n\n      this.editor.keystrokes.set('Tab', function () {\n        return _this._handleTabOnSelectedTable.apply(_this, arguments);\n      }, {\n        priority: 'low'\n      });\n      this.editor.keystrokes.set('Tab', this._getTabHandler(true), {\n        priority: 'low'\n      });\n      this.editor.keystrokes.set('Shift+Tab', this._getTabHandler(false), {\n        priority: 'low'\n      });\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"_handleTabOnSelectedTable\",\n\n    /**\n     * Handles {@link module:engine/view/document~Document#event:keydown keydown} events for the <kbd>Tab</kbd> key executed\n     * when the table widget is selected.\n     *\n     * @private\n     * @param {module:utils/eventinfo~EventInfo} eventInfo\n     * @param {module:engine/view/observer/domeventdata~DomEventData} domEventData\n     */\n    value: function _handleTabOnSelectedTable(domEventData, cancel) {\n      var editor = this.editor;\n      var selection = editor.model.document.selection;\n\n      if (!selection.isCollapsed && selection.rangeCount === 1 && selection.getFirstRange().isFlat) {\n        var selectedElement = selection.getSelectedElement();\n\n        if (!selectedElement || !selectedElement.is('table')) {\n          return;\n        }\n\n        cancel();\n        editor.model.change(function (writer) {\n          writer.setSelection(writer.createRangeIn(selectedElement.getChild(0).getChild(0)));\n        });\n      }\n    }\n    /**\n     * Returns a handler for {@link module:engine/view/document~Document#event:keydown keydown} events for the <kbd>Tab</kbd> key executed\n     * inside table cell.\n     *\n     * @private\n     * @param {Boolean} isForward Whether this handler will move selection to the next cell or previous.\n     */\n\n  }, {\n    key: \"_getTabHandler\",\n    value: function _getTabHandler(isForward) {\n      var editor = this.editor;\n      return function (domEventData, cancel) {\n        var selection = editor.model.document.selection;\n        var firstPosition = selection.getFirstPosition();\n        var tableCell = findAncestor('tableCell', firstPosition);\n\n        if (!tableCell) {\n          return;\n        }\n\n        cancel();\n        var tableRow = tableCell.parent;\n        var table = tableRow.parent;\n        var currentRowIndex = table.getChildIndex(tableRow);\n        var currentCellIndex = tableRow.getChildIndex(tableCell);\n        var isFirstCellInRow = currentCellIndex === 0;\n\n        if (!isForward && isFirstCellInRow && currentRowIndex === 0) {\n          // It's the first cell of a table - don't do anything (stay in current position).\n          return;\n        }\n\n        var isLastCellInRow = currentCellIndex === tableRow.childCount - 1;\n        var isLastRow = currentRowIndex === table.childCount - 1;\n\n        if (isForward && isLastRow && isLastCellInRow) {\n          editor.execute('insertTableRowBelow'); // Check if the command actually added a row. If `insertTableRowBelow` execution didn't add a row (because it was disabled\n          // or it got overwritten) do not change the selection.\n\n          if (currentRowIndex === table.childCount - 1) {\n            return;\n          }\n        }\n\n        var cellToFocus; // Move to first cell in next row.\n\n        if (isForward && isLastCellInRow) {\n          var nextRow = table.getChild(currentRowIndex + 1);\n          cellToFocus = nextRow.getChild(0);\n        } // Move to last cell in a previous row.\n        else if (!isForward && isFirstCellInRow) {\n            var previousRow = table.getChild(currentRowIndex - 1);\n            cellToFocus = previousRow.getChild(previousRow.childCount - 1);\n          } // Move to next/previous cell.\n          else {\n              cellToFocus = tableRow.getChild(currentCellIndex + (isForward ? 1 : -1));\n            }\n\n        editor.model.change(function (writer) {\n          writer.setSelection(writer.createRangeIn(cellToFocus));\n        });\n      };\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'TableEditing';\n    }\n  }, {\n    key: \"requires\",\n    get: function get() {\n      return [TableUtils];\n    }\n  }]);\n\n  return TableEditing;\n}(Plugin);\n\nexport { TableEditing as default };","import 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module table/tableui\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport {\n    addListToDropdown,\n    createDropdown\n} from '@ckeditor/ckeditor5-ui/src/dropdown/utils';\nimport Model from '@ckeditor/ckeditor5-ui/src/model';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport InsertTableView from './ui/inserttableview';\nimport tableIcon from './../theme/icons/table.svg';\nimport tableColumnIcon from './../theme/icons/table-column.svg';\nimport tableRowIcon from './../theme/icons/table-row.svg';\nimport tableMergeCellIcon from './../theme/icons/table-merge-cell.svg';\n/**\n * The table UI plugin. It introduces:\n *\n * * The `'insertTable'` dropdown,\n * * The `'tableColumn'` dropdown,\n * * The `'tableRow'` dropdown,\n * * The `'mergeTableCells'` dropdown.\n *\n * The `'tableColumn'`, `'tableRow'`, `'mergeTableCells'` dropdowns work best with {@link module:table/tabletoolbar~TableToolbar}.\n *\n * @extends module:core/plugin~Plugin\n */\nvar TableUI = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(TableUI, _Plugin);\n    var _super = _createSuper(TableUI);\n    function TableUI() {\n        _classCallCheck(this, TableUI);\n        return _super.apply(this, arguments);\n    }\n    _createClass(TableUI, [\n        {\n            key: 'init',\n            /**\n     * @inheritDoc\n     */\n            value: function init() {\n                var _this = this;\n                var editor = this.editor;\n                var t = this.editor.t;\n                var contentLanguageDirection = editor.locale.contentLanguageDirection;\n                var isContentLtr = contentLanguageDirection === 'ltr';\n                editor.ui.componentFactory.add('insertTable', function (locale) {\n                    var command = editor.commands.get('insertTable');\n                    var dropdownView = createDropdown(locale);\n                    dropdownView.bind('isEnabled').to(command);\n                    // Decorate dropdown's button.\n                    dropdownView.buttonView.set({\n                        icon: tableIcon,\n                        label: t('Insert table'),\n                        tooltip: true\n                    });\n                    // Prepare custom view for dropdown's panel.\n                    var insertTableView = new InsertTableView(locale);\n                    dropdownView.panelView.children.add(insertTableView);\n                    insertTableView.delegate('execute').to(dropdownView);\n                    dropdownView.buttonView.on('open', function () {\n                        // Reset the chooser before showing it to the user.\n                        insertTableView.rows = 0;\n                        insertTableView.columns = 0;\n                    });\n                    dropdownView.on('execute', function () {\n                        editor.execute('insertTable', {\n                            rows: insertTableView.rows,\n                            columns: insertTableView.columns\n                        });\n                        editor.editing.view.focus();\n                    });\n                    return dropdownView;\n                });\n                editor.ui.componentFactory.add('tableColumn', function (locale) {\n                    var options = [\n                        {\n                            type: 'switchbutton',\n                            model: {\n                                commandName: 'setTableColumnHeader',\n                                label: t('Header column'),\n                                bindIsOn: true\n                            }\n                        },\n                        { type: 'separator' },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: isContentLtr ? 'insertTableColumnLeft' : 'insertTableColumnRight',\n                                label: t('Insert column left')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: isContentLtr ? 'insertTableColumnRight' : 'insertTableColumnLeft',\n                                label: t('Insert column right')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'removeTableColumn',\n                                label: t('Delete column')\n                            }\n                        }\n                    ];\n                    return _this._prepareDropdown(t('Column'), tableColumnIcon, options, locale);\n                });\n                editor.ui.componentFactory.add('tableRow', function (locale) {\n                    var options = [\n                        {\n                            type: 'switchbutton',\n                            model: {\n                                commandName: 'setTableRowHeader',\n                                label: t('Header row'),\n                                bindIsOn: true\n                            }\n                        },\n                        { type: 'separator' },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'insertTableRowBelow',\n                                label: t('Insert row below')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'insertTableRowAbove',\n                                label: t('Insert row above')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'removeTableRow',\n                                label: t('Delete row')\n                            }\n                        }\n                    ];\n                    return _this._prepareDropdown(t('Row'), tableRowIcon, options, locale);\n                });\n                editor.ui.componentFactory.add('mergeTableCells', function (locale) {\n                    var options = [\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'mergeTableCellUp',\n                                label: t('Merge cell up')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: isContentLtr ? 'mergeTableCellRight' : 'mergeTableCellLeft',\n                                label: t('Merge cell right')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'mergeTableCellDown',\n                                label: t('Merge cell down')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: isContentLtr ? 'mergeTableCellLeft' : 'mergeTableCellRight',\n                                label: t('Merge cell left')\n                            }\n                        },\n                        { type: 'separator' },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'splitTableCellVertically',\n                                label: t('Split cell vertically')\n                            }\n                        },\n                        {\n                            type: 'button',\n                            model: {\n                                commandName: 'splitTableCellHorizontally',\n                                label: t('Split cell horizontally')\n                            }\n                        }\n                    ];\n                    return _this._prepareDropdown(t('Merge cells'), tableMergeCellIcon, options, locale);\n                });\n            }    /**\n     * Creates a dropdown view from the set of options.\n     *\n     * @private\n     * @param {String} label The dropdown button label.\n     * @param {String} icon An icon for the dropdown button.\n     * @param {Array.<module:ui/dropdown/utils~ListDropdownItemDefinition>} options The list of options for the dropdown.\n     * @param {module:utils/locale~Locale} locale\n     * @returns {module:ui/dropdown/dropdownview~DropdownView}\n     */\n        },\n        {\n            key: '_prepareDropdown',\n            value: function _prepareDropdown(label, icon, options, locale) {\n                var editor = this.editor;\n                var dropdownView = createDropdown(locale);\n                var commands = [];\n                // Prepare dropdown list items for list dropdown.\n                var itemDefinitions = new Collection();\n                var _iterator = _createForOfIteratorHelper(options), _step;\n                try {\n                    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                        var option = _step.value;\n                        addListOption(option, editor, commands, itemDefinitions);\n                    }\n                } catch (err) {\n                    _iterator.e(err);\n                } finally {\n                    _iterator.f();\n                }\n                addListToDropdown(dropdownView, itemDefinitions);\n                // Decorate dropdown's button.\n                dropdownView.buttonView.set({\n                    label: label,\n                    icon: icon,\n                    tooltip: true\n                });\n                // Make dropdown button disabled when all options are disabled.\n                dropdownView.bind('isEnabled').toMany(commands, 'isEnabled', function () {\n                    for (var _len = arguments.length, areEnabled = new Array(_len), _key = 0; _key < _len; _key++) {\n                        areEnabled[_key] = arguments[_key];\n                    }\n                    return areEnabled.some(function (isEnabled) {\n                        return isEnabled;\n                    });\n                });\n                this.listenTo(dropdownView, 'execute', function (evt) {\n                    editor.execute(evt.source.commandName);\n                    editor.editing.view.focus();\n                });\n                return dropdownView;\n            }\n        }\n    ]);\n    return TableUI;\n}(Plugin);\n// Adds an option to a list view.\n//\n// @param {module:table/tableui~DropdownOption} option Configuration option.\n// @param {module:core/editor/editor~Editor} editor\n// @param {Array.<module:core/command~Command>} commands List of commands to update.\n// @param {Iterable.<module:ui/dropdown/utils~ListDropdownItemDefinition>} itemDefinitions\n// Collection of dropdown items to update with given option.\nexport {\n    TableUI as default\n};\nfunction addListOption(option, editor, commands, itemDefinitions) {\n    var model = option.model = new Model(option.model);\n    var _option$model = option.model, commandName = _option$model.commandName, bindIsOn = _option$model.bindIsOn;\n    if (option.type !== 'separator') {\n        var command = editor.commands.get(commandName);\n        commands.push(command);\n        model.set({ commandName: commandName });\n        model.bind('isEnabled').to(command);\n        if (bindIsOn) {\n            model.bind('isOn').to(command, 'value');\n        }\n    }\n    model.set({ withText: true });\n    itemDefinitions.add(option);\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.array.find\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/tableutils\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport TableWalker from \"./tablewalker\";\nimport { createEmptyTableCell, updateNumericAttribute } from \"./commands/utils\";\n/**\n * The table utilities plugin.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar TableUtils = /*#__PURE__*/function (_Plugin) {\n  _inherits(TableUtils, _Plugin);\n\n  var _super = _createSuper(TableUtils);\n\n  function TableUtils() {\n    _classCallCheck(this, TableUtils);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(TableUtils, [{\n    key: \"getCellLocation\",\n\n    /**\n     * Returns the table cell location as an object with table row and table column indexes.\n     *\n     * For instance in the table below:\n     *\n     *\t\t    0   1   2   3\n     *\t\t  +---+---+---+---+\n     *\t\t0 | a     | b | c |\n     *\t\t  +       +   +---+\n     *\t\t1 |       |   | d |\n     *\t\t  +---+---+   +---+\n     *\t\t2 | e     |   | f |\n     *\t\t  +---+---+---+---+\n     *\n     * the method will return:\n     *\n     *\t\tconst cellA = table.getNodeByPath( [ 0, 0 ] );\n     *\t\teditor.plugins.get( 'TableUtils' ).getCellLocation( cellA );\n     *\t\t// will return { row: 0, column: 0 }\n     *\n     *\t\tconst cellD = table.getNodeByPath( [ 1, 0 ] );\n     *\t\teditor.plugins.get( 'TableUtils' ).getCellLocation( cellD );\n     *\t\t// will return { row: 1, column: 3 }\n     *\n     * @param {module:engine/model/element~Element} tableCell\n     * @returns {Object} Returns a `{row, column}` object.\n     */\n    value: function getCellLocation(tableCell) {\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var rowIndex = table.getChildIndex(tableRow);\n      var tableWalker = new TableWalker(table, {\n        startRow: rowIndex,\n        endRow: rowIndex\n      });\n\n      var _iterator = _createForOfIteratorHelper(tableWalker),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var _step$value = _step.value,\n              cell = _step$value.cell,\n              row = _step$value.row,\n              column = _step$value.column;\n\n          if (cell === tableCell) {\n            return {\n              row: row,\n              column: column\n            };\n          }\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * Creates an empty table with proper structure. The table needs to be inserted into the model,\n     * ie. using {@link module:engine/model/model~Model#insertContent} function.\n     *\n     *\t\tmodel.change( ( writer ) => {\n     *\t\t\t// Create a table of 2 rows and 7 columns:\n     *\t\t\tconst table = tableUtils.createTable( writer, 2, 7);\n     *\n     *\t\t\t// Insert table to the model at the best position taking current selection:\n     *\t\t\tmodel.insertContent( table );\n     *\t\t}\n     *\n     * @param {module:engine/model/writer~Writer} writer The model writer.\n     * @param {Number} rows The number of rows to create.\n     * @param {Number} columns The number of columns to create.\n     * @returns {module:engine/model/element~Element} The created table element.\n     */\n\n  }, {\n    key: \"createTable\",\n    value: function createTable(writer, rows, columns) {\n      var table = writer.createElement('table');\n      createEmptyRows(writer, table, 0, rows, columns);\n      return table;\n    }\n    /**\n     * Inserts rows into a table.\n     *\n     *\t\teditor.plugins.get( 'TableUtils' ).insertRows( table, { at: 1, rows: 2 } );\n     *\n     * Assuming the table on the left, the above code will transform it to the table on the right:\n     *\n     *\t\trow index\n     *\t\t  0 +---+---+---+       `at` = 1,      +---+---+---+ 0\n     *\t\t    | a | b | c |       `rows` = 2,    | a | b | c |\n     *\t\t  1 +   +---+---+   <-- insert here    +   +---+---+ 1\n     *\t\t    |   | d | e |                      |   |   |   |\n     *\t\t  2 +   +---+---+       will give:     +   +---+---+ 2\n     *\t\t    |   | f | g |                      |   |   |   |\n     *\t\t  3 +---+---+---+                      +   +---+---+ 3\n     *\t\t                                       |   | d | e |\n     *\t\t                                       +---+---+---+ 4\n     *\t\t                                       +   + f | g |\n     *\t\t                                       +---+---+---+ 5\n     *\n     * @param {module:engine/model/element~Element} table The table model element where the rows will be inserted.\n     * @param {Object} options\n     * @param {Number} [options.at=0] Row index at which the rows will be inserted.\n     * @param {Number} [options.rows=1] The number of rows to insert.\n     */\n\n  }, {\n    key: \"insertRows\",\n    value: function insertRows(table) {\n      var _this = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var model = this.editor.model;\n      var insertAt = options.at || 0;\n      var rowsToInsert = options.rows || 1;\n      model.change(function (writer) {\n        var headingRows = table.getAttribute('headingRows') || 0; // Inserting rows inside heading section requires to update `headingRows` attribute as the heading section will grow.\n\n        if (headingRows > insertAt) {\n          writer.setAttribute('headingRows', headingRows + rowsToInsert, table);\n        } // Inserting at the end and at the beginning of a table doesn't require to calculate anything special.\n\n\n        if (insertAt === 0 || insertAt === table.childCount) {\n          createEmptyRows(writer, table, insertAt, rowsToInsert, _this.getColumns(table));\n          return;\n        } // Iterate over all rows above inserted rows in order to check for rowspanned cells.\n\n\n        var tableIterator = new TableWalker(table, {\n          endRow: insertAt\n        }); // Will hold number of cells needed to insert in created rows.\n        // The number might be different then table cell width when there are rowspanned cells.\n\n        var cellsToInsert = 0;\n\n        var _iterator2 = _createForOfIteratorHelper(tableIterator),\n            _step2;\n\n        try {\n          for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n            var _step2$value = _step2.value,\n                row = _step2$value.row,\n                rowspan = _step2$value.rowspan,\n                colspan = _step2$value.colspan,\n                cell = _step2$value.cell;\n            var isBeforeInsertedRow = row < insertAt;\n            var overlapsInsertedRow = row + rowspan > insertAt;\n\n            if (isBeforeInsertedRow && overlapsInsertedRow) {\n              // This cell overlaps inserted rows so we need to expand it further.\n              writer.setAttribute('rowspan', rowspan + rowsToInsert, cell);\n            } // Calculate how many cells to insert based on the width of cells in a row at insert position.\n            // It might be lower then table width as some cells might overlaps inserted row.\n            // In the table above the cell 'a' overlaps inserted row so only two empty cells are need to be created.\n\n\n            if (row === insertAt) {\n              cellsToInsert += colspan;\n            }\n          }\n        } catch (err) {\n          _iterator2.e(err);\n        } finally {\n          _iterator2.f();\n        }\n\n        createEmptyRows(writer, table, insertAt, rowsToInsert, cellsToInsert);\n      });\n    }\n    /**\n     * Inserts columns into a table.\n     *\n     *\t\teditor.plugins.get( 'TableUtils' ).insertColumns( table, { at: 1, columns: 2 } );\n     *\n     * Assuming the table on the left, the above code will transform it to the table on the right:\n     *\n     *\t\t0   1   2   3                   0   1   2   3   4   5\n     *\t\t+---+---+---+                   +---+---+---+---+---+\n     *\t\t| a     | b |                   | a             | b |\n     *\t\t+       +---+                   +               +---+\n     *\t\t|       | c |                   |               | c |\n     *\t\t+---+---+---+     will give:    +---+---+---+---+---+\n     *\t\t| d | e | f |                   | d |   |   | e | f |\n     *\t\t+---+   +---+                   +---+---+---+   +---+\n     *\t\t| g |   | h |                   | g |   |   |   | h |\n     *\t\t+---+---+---+                   +---+---+---+---+---+\n     *\t\t| i         |                   | i                 |\n     *\t\t+---+---+---+                   +---+---+---+---+---+\n     *\t\t    ^---- insert here, `at` = 1, `columns` = 2\n     *\n     * @param {module:engine/model/element~Element} table The table model element where the columns will be inserted.\n     * @param {Object} options\n     * @param {Number} [options.at=0] Column index at which the columns will be inserted.\n     * @param {Number} [options.columns=1] The number of columns to insert.\n     */\n\n  }, {\n    key: \"insertColumns\",\n    value: function insertColumns(table) {\n      var _this2 = this;\n\n      var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n      var model = this.editor.model;\n      var insertAt = options.at || 0;\n      var columnsToInsert = options.columns || 1;\n      model.change(function (writer) {\n        var headingColumns = table.getAttribute('headingColumns'); // Inserting columns inside heading section requires to update `headingColumns` attribute as the heading section will grow.\n\n        if (insertAt < headingColumns) {\n          writer.setAttribute('headingColumns', headingColumns + columnsToInsert, table);\n        }\n\n        var tableColumns = _this2.getColumns(table); // Inserting at the end and at the beginning of a table doesn't require to calculate anything special.\n\n\n        if (insertAt === 0 || tableColumns === insertAt) {\n          var _iterator3 = _createForOfIteratorHelper(table.getChildren()),\n              _step3;\n\n          try {\n            for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n              var tableRow = _step3.value;\n              createCells(columnsToInsert, writer, writer.createPositionAt(tableRow, insertAt ? 'end' : 0));\n            }\n          } catch (err) {\n            _iterator3.e(err);\n          } finally {\n            _iterator3.f();\n          }\n\n          return;\n        }\n\n        var tableWalker = new TableWalker(table, {\n          column: insertAt,\n          includeSpanned: true\n        });\n\n        var _iterator4 = _createForOfIteratorHelper(tableWalker),\n            _step4;\n\n        try {\n          for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n            var _step4$value = _step4.value,\n                row = _step4$value.row,\n                cell = _step4$value.cell,\n                cellIndex = _step4$value.cellIndex;\n            // When iterating over column the table walker outputs either:\n            // - cells at given column index (cell \"e\" from method docs),\n            // - spanned columns (spanned cell from row between cells \"g\" and \"h\" - spanned by \"e\", only if `includeSpanned: true`),\n            // - or a cell from the same row which spans over this column (cell \"a\").\n            var rowspan = parseInt(cell.getAttribute('rowspan') || 1);\n            var colspan = parseInt(cell.getAttribute('colspan') || 1);\n\n            if (cell.index !== insertAt && colspan > 1) {\n              // If column is different than `insertAt`, it is a cell that spans over an inserted column (cell \"a\" & \"i\").\n              // For such cells expand them by a number of columns inserted.\n              writer.setAttribute('colspan', colspan + columnsToInsert, cell); // The `includeSpanned` option will output the \"empty\"/spanned column so skip this row already.\n\n              tableWalker.skipRow(row); // This cell will overlap cells in rows below so skip them also (because of `includeSpanned` option) - (cell \"a\")\n\n              if (rowspan > 1) {\n                for (var i = row + 1; i < row + rowspan; i++) {\n                  tableWalker.skipRow(i);\n                }\n              }\n            } else {\n              // It's either cell at this column index or spanned cell by a rowspanned cell from row above.\n              // In table above it's cell \"e\" and a spanned position from row below (empty cell between cells \"g\" and \"h\")\n              var insertPosition = writer.createPositionAt(table.getChild(row), cellIndex);\n              createCells(columnsToInsert, writer, insertPosition);\n            }\n          }\n        } catch (err) {\n          _iterator4.e(err);\n        } finally {\n          _iterator4.f();\n        }\n      });\n    }\n    /**\n     * Divides a table cell vertically into several ones.\n     *\n     * The cell will be visually split into more cells by updating colspans of other cells in a column\n     * and inserting cells (columns) after that cell.\n     *\n     * In the table below, if cell \"a\" is split to 3 cells:\n     *\n     *\t\t+---+---+---+\n     *\t\t| a | b | c |\n     *\t\t+---+---+---+\n     *\t\t| d | e | f |\n     *\t\t+---+---+---+\n     *\n     * it will result in the table below:\n     *\n     *\t\t+---+---+---+---+---+\n     *\t\t| a |   |   | b | c |\n     *\t\t+---+---+---+---+---+\n     *\t\t| d         | e | f |\n     *\t\t+---+---+---+---+---+\n     *\n     * So cell \"d\" will get its `colspan` updated to `3` and 2 cells will be added (2 columns will be created).\n     *\n     * Splitting a cell that already has a `colspan` attribute set will distribute the cell `colspan` evenly and the remainder\n     * will be left to the original cell:\n     *\n     *\t\t+---+---+---+\n     *\t\t| a         |\n     *\t\t+---+---+---+\n     *\t\t| b | c | d |\n     *\t\t+---+---+---+\n     *\n     * Splitting cell \"a\" with `colspan=3` to 2 cells will create 1 cell with a `colspan=a` and cell \"a\" that will have `colspan=2`:\n     *\n     *\t\t+---+---+---+\n     *\t\t| a     |   |\n     *\t\t+---+---+---+\n     *\t\t| b | c | d |\n     *\t\t+---+---+---+\n     *\n     * @param {module:engine/model/element~Element} tableCell\n     * @param {Number} numberOfCells\n     */\n\n  }, {\n    key: \"splitCellVertically\",\n    value: function splitCellVertically(tableCell) {\n      var numberOfCells = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n      var model = this.editor.model;\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var rowspan = parseInt(tableCell.getAttribute('rowspan') || 1);\n      var colspan = parseInt(tableCell.getAttribute('colspan') || 1);\n      model.change(function (writer) {\n        // First check - the cell spans over multiple rows so before doing anything else just split this cell.\n        if (colspan > 1) {\n          // Get spans of new (inserted) cells and span to update of split cell.\n          var _breakSpanEvenly = breakSpanEvenly(colspan, numberOfCells),\n              newCellsSpan = _breakSpanEvenly.newCellsSpan,\n              updatedSpan = _breakSpanEvenly.updatedSpan;\n\n          updateNumericAttribute('colspan', updatedSpan, tableCell, writer); // Each inserted cell will have the same attributes:\n\n          var newCellsAttributes = {}; // Do not store default value in the model.\n\n          if (newCellsSpan > 1) {\n            newCellsAttributes.colspan = newCellsSpan;\n          } // Copy rowspan of split cell.\n\n\n          if (rowspan > 1) {\n            newCellsAttributes.rowspan = rowspan;\n          }\n\n          var cellsToInsert = colspan > numberOfCells ? numberOfCells - 1 : colspan - 1;\n          createCells(cellsToInsert, writer, writer.createPositionAfter(tableCell), newCellsAttributes);\n        } // Second check - the cell has colspan of 1 or we need to create more cells then the currently one spans over.\n\n\n        if (colspan < numberOfCells) {\n          var _cellsToInsert = numberOfCells - colspan; // First step: expand cells on the same column as split cell.\n\n\n          var tableMap = _toConsumableArray(new TableWalker(table)); // Get the column index of split cell.\n\n\n          var _tableMap$find = tableMap.find(function (_ref) {\n            var cell = _ref.cell;\n            return cell === tableCell;\n          }),\n              splitCellColumn = _tableMap$find.column; // Find cells which needs to be expanded vertically - those on the same column or those that spans over split cell's column.\n\n\n          var cellsToUpdate = tableMap.filter(function (_ref2) {\n            var cell = _ref2.cell,\n                colspan = _ref2.colspan,\n                column = _ref2.column;\n            var isOnSameColumn = cell !== tableCell && column === splitCellColumn;\n            var spansOverColumn = column < splitCellColumn && column + colspan > splitCellColumn;\n            return isOnSameColumn || spansOverColumn;\n          }); // Expand cells vertically.\n\n          var _iterator5 = _createForOfIteratorHelper(cellsToUpdate),\n              _step5;\n\n          try {\n            for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n              var _step5$value = _step5.value,\n                  cell = _step5$value.cell,\n                  _colspan = _step5$value.colspan;\n              writer.setAttribute('colspan', _colspan + _cellsToInsert, cell);\n            } // Second step: create columns after split cell.\n            // Each inserted cell will have the same attributes:\n\n          } catch (err) {\n            _iterator5.e(err);\n          } finally {\n            _iterator5.f();\n          }\n\n          var _newCellsAttributes = {}; // Do not store default value in the model.\n          // Copy rowspan of split cell.\n\n          if (rowspan > 1) {\n            _newCellsAttributes.rowspan = rowspan;\n          }\n\n          createCells(_cellsToInsert, writer, writer.createPositionAfter(tableCell), _newCellsAttributes);\n          var headingColumns = table.getAttribute('headingColumns') || 0; // Update heading section if split cell is in heading section.\n\n          if (headingColumns > splitCellColumn) {\n            updateNumericAttribute('headingColumns', headingColumns + _cellsToInsert, table, writer);\n          }\n        }\n      });\n    }\n    /**\n     * Divides a table cell horizontally into several ones.\n     *\n     * The cell will be visually split into more cells by updating rowspans of other cells in the row and inserting rows with a single cell\n     * below.\n     *\n     * If in the table below cell \"b\" is split to 3 cells:\n     *\n     *\t\t+---+---+---+\n     *\t\t| a | b | c |\n     *\t\t+---+---+---+\n     *\t\t| d | e | f |\n     *\t\t+---+---+---+\n     *\n     * It will result in the table below:\n     *\n     *\t\t+---+---+---+\n     *\t\t| a | b | c |\n     *\t\t+   +---+   +\n     *\t\t|   |   |   |\n     *\t\t+   +---+   +\n     *\t\t|   |   |   |\n     *\t\t+---+---+---+\n     *\t\t| d | e | f |\n     *\t\t+---+---+---+\n     *\n     * So cells \"a\" and \"b\" will get their `rowspan` updated to `3` and 2 rows with a single cell will be added.\n     *\n     * Splitting a cell that already has a `rowspan` attribute set will distribute the cell `rowspan` evenly and the remainder\n     * will be left to the original cell:\n     *\n     *\t\t+---+---+---+\n     *\t\t| a | b | c |\n     *\t\t+   +---+---+\n     *\t\t|   | d | e |\n     *\t\t+   +---+---+\n     *\t\t|   | f | g |\n     *\t\t+   +---+---+\n     *\t\t|   | h | i |\n     *\t\t+---+---+---+\n     *\n     * Splitting cell \"a\" with `rowspan=4` to 3 cells will create 2 cells with a `rowspan=1` and cell \"a\" will have `rowspan=2`:\n     *\n     *\t\t+---+---+---+\n     *\t\t| a | b | c |\n     *\t\t+   +---+---+\n     *\t\t|   | d | e |\n     *\t\t+---+---+---+\n     *\t\t|   | f | g |\n     *\t\t+---+---+---+\n     *\t\t|   | h | i |\n     *\t\t+---+---+---+\n     *\n     * @param {module:engine/model/element~Element} tableCell\n     * @param {Number} numberOfCells\n     */\n\n  }, {\n    key: \"splitCellHorizontally\",\n    value: function splitCellHorizontally(tableCell) {\n      var numberOfCells = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n      var model = this.editor.model;\n      var tableRow = tableCell.parent;\n      var table = tableRow.parent;\n      var splitCellRow = table.getChildIndex(tableRow);\n      var rowspan = parseInt(tableCell.getAttribute('rowspan') || 1);\n      var colspan = parseInt(tableCell.getAttribute('colspan') || 1);\n      model.change(function (writer) {\n        // First check - the cell spans over multiple rows so before doing anything else just split this cell.\n        if (rowspan > 1) {\n          // Cache table map before updating table.\n          var tableMap = _toConsumableArray(new TableWalker(table, {\n            startRow: splitCellRow,\n            endRow: splitCellRow + rowspan - 1,\n            includeSpanned: true\n          })); // Get spans of new (inserted) cells and span to update of split cell.\n\n\n          var _breakSpanEvenly2 = breakSpanEvenly(rowspan, numberOfCells),\n              newCellsSpan = _breakSpanEvenly2.newCellsSpan,\n              updatedSpan = _breakSpanEvenly2.updatedSpan;\n\n          updateNumericAttribute('rowspan', updatedSpan, tableCell, writer);\n\n          var _tableMap$find2 = tableMap.find(function (_ref3) {\n            var cell = _ref3.cell;\n            return cell === tableCell;\n          }),\n              cellColumn = _tableMap$find2.column; // Each inserted cell will have the same attributes:\n\n\n          var newCellsAttributes = {}; // Do not store default value in the model.\n\n          if (newCellsSpan > 1) {\n            newCellsAttributes.rowspan = newCellsSpan;\n          } // Copy colspan of split cell.\n\n\n          if (colspan > 1) {\n            newCellsAttributes.colspan = colspan;\n          }\n\n          var _iterator6 = _createForOfIteratorHelper(tableMap),\n              _step6;\n\n          try {\n            for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n              var _step6$value = _step6.value,\n                  column = _step6$value.column,\n                  row = _step6$value.row,\n                  cellIndex = _step6$value.cellIndex;\n              // As both newly created cells and the split cell might have rowspan,\n              // the insertion of new cells must go to appropriate rows:\n              //\n              // 1. It's a row after split cell + it's height.\n              var isAfterSplitCell = row >= splitCellRow + updatedSpan; // 2. Is on the same column.\n\n              var isOnSameColumn = column === cellColumn; // 3. And it's row index is after previous cell height.\n\n              var isInEvenlySplitRow = (row + splitCellRow + updatedSpan) % newCellsSpan === 0;\n\n              if (isAfterSplitCell && isOnSameColumn && isInEvenlySplitRow) {\n                var position = writer.createPositionAt(table.getChild(row), cellIndex);\n                createCells(1, writer, position, newCellsAttributes);\n              }\n            }\n          } catch (err) {\n            _iterator6.e(err);\n          } finally {\n            _iterator6.f();\n          }\n        } // Second check - the cell has rowspan of 1 or we need to create more cells than the current cell spans over.\n\n\n        if (rowspan < numberOfCells) {\n          // We already split the cell in check one so here we split to the remaining number of cells only.\n          var cellsToInsert = numberOfCells - rowspan; // This check is needed since we need to check if there are any cells from previous rows than spans over this cell's row.\n\n          var _tableMap = _toConsumableArray(new TableWalker(table, {\n            startRow: 0,\n            endRow: splitCellRow\n          })); // First step: expand cells.\n\n\n          var _iterator7 = _createForOfIteratorHelper(_tableMap),\n              _step7;\n\n          try {\n            for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n              var _step7$value = _step7.value,\n                  cell = _step7$value.cell,\n                  _rowspan = _step7$value.rowspan,\n                  _row = _step7$value.row;\n\n              // Expand rowspan of cells that are either:\n              // - on the same row as current cell,\n              // - or are below split cell row and overlaps that row.\n              if (cell !== tableCell && _row + _rowspan > splitCellRow) {\n                var rowspanToSet = _rowspan + cellsToInsert;\n                writer.setAttribute('rowspan', rowspanToSet, cell);\n              }\n            } // Second step: create rows with single cell below split cell.\n\n          } catch (err) {\n            _iterator7.e(err);\n          } finally {\n            _iterator7.f();\n          }\n\n          var _newCellsAttributes2 = {}; // Copy colspan of split cell.\n\n          if (colspan > 1) {\n            _newCellsAttributes2.colspan = colspan;\n          }\n\n          createEmptyRows(writer, table, splitCellRow + 1, cellsToInsert, 1, _newCellsAttributes2); // Update heading section if split cell is in heading section.\n\n          var headingRows = table.getAttribute('headingRows') || 0;\n\n          if (headingRows > splitCellRow) {\n            updateNumericAttribute('headingRows', headingRows + cellsToInsert, table, writer);\n          }\n        }\n      });\n    }\n    /**\n     * Returns the number of columns for a given table.\n     *\n     *\t\teditor.plugins.get( 'TableUtils' ).getColumns( table );\n     *\n     * @param {module:engine/model/element~Element} table The table to analyze.\n     * @returns {Number}\n     */\n\n  }, {\n    key: \"getColumns\",\n    value: function getColumns(table) {\n      // Analyze first row only as all the rows should have the same width.\n      var row = table.getChild(0);\n      return _toConsumableArray(row.getChildren()).reduce(function (columns, row) {\n        var columnWidth = parseInt(row.getAttribute('colspan') || 1);\n        return columns + columnWidth;\n      }, 0);\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'TableUtils';\n    }\n  }]);\n\n  return TableUtils;\n}(Plugin); // Creates empty rows at the given index in an existing table.\n//\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/element~Element} table\n// @param {Number} insertAt Row index of row insertion.\n// @param {Number} rows Number of rows to create.\n// @param {Number} tableCellToInsert Number of cells to insert in each row.\n\n\nexport { TableUtils as default };\n\nfunction createEmptyRows(writer, table, insertAt, rows, tableCellToInsert) {\n  var attributes = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : {};\n\n  for (var i = 0; i < rows; i++) {\n    var tableRow = writer.createElement('tableRow');\n    writer.insert(tableRow, table, insertAt);\n    createCells(tableCellToInsert, writer, writer.createPositionAt(tableRow, 'end'), attributes);\n  }\n} // Creates cells at a given position.\n//\n// @param {Number} columns Number of columns to create\n// @param {module:engine/model/writer~Writer} writer\n// @param {module:engine/model/position~Position} insertPosition\n\n\nfunction createCells(cells, writer, insertPosition) {\n  var attributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n  for (var i = 0; i < cells; i++) {\n    createEmptyTableCell(writer, insertPosition, attributes);\n  }\n} // Evenly distributes the span of a cell to a number of provided cells.\n// The resulting spans will always be integer values.\n//\n// For instance breaking a span of 7 into 3 cells will return:\n//\n//\t\t{ newCellsSpan: 2, updatedSpan: 3 }\n//\n// as two cells will have a span of 2 and the remainder will go the first cell so its span will change to 3.\n//\n// @param {Number} span Span value do break.\n// @param {Number} numberOfCells Number of resulting spans.\n// @returns {{newCellsSpan: Number, updatedSpan: Number}}\n\n\nfunction breakSpanEvenly(span, numberOfCells) {\n  if (span < numberOfCells) {\n    return {\n      newCellsSpan: 1,\n      updatedSpan: 1\n    };\n  }\n\n  var newCellsSpan = Math.floor(span / numberOfCells);\n  var updatedSpan = span - newCellsSpan * numberOfCells + newCellsSpan;\n  return {\n    newCellsSpan: newCellsSpan,\n    updatedSpan: updatedSpan\n  };\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.map\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/tablewalker\n */\n\n/**\n * Table iterator class. It allows to iterate over table cells. For each cell the iterator yields\n * {@link module:table/tablewalker~TableWalkerValue} with proper table cell attributes.\n */\nvar TableWalker = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the table walker.\n   *\n   * The table walker iterates internally by traversing the table from row index = 0 and column index = 0.\n   * It walks row by row and column by column in order to output values defined in the constructor.\n   * By default it will output only those locations that are occupied by a cell. To include also spanned rows and columns,\n   * pass the `includeSpanned` option to the constructor.\n   *\n   * The most important values of the iterator are column and row indexes of a cell.\n   *\n   * See {@link module:table/tablewalker~TableWalkerValue} what values are returned by the table walker.\n   *\n   * To iterate over a given row:\n   *\n   *\t\tconst tableWalker = new TableWalker( table, { startRow: 1, endRow: 2 } );\n   *\n   *\t\tfor ( const cellInfo of tableWalker ) {\n   *\t\t\tconsole.log( 'A cell at row ' + cellInfo.row + ' and column ' + cellInfo.column );\n   *\t\t}\n   *\n   * For instance the code above for the following table:\n   *\n   *\t\t+----+----+----+----+----+----+\n   *\t\t| 00      | 02 | 03 | 04 | 05 |\n   *\t\t|         +----+----+----+----+\n   *\t\t|         | 12      | 14 | 15 |\n   *\t\t|         +----+----+----+    +\n   *\t\t|         | 22           |    |\n   *\t\t|----+----+----+----+----+    +\n   *\t\t| 30 | 31 | 32 | 33 | 34 |    |\n   *\t\t+----+----+----+----+----+----+\n   *\n   * will log in the console:\n   *\n   *\t\t'A cell at row 1 and column 2'\n   *\t\t'A cell at row 1 and column 4'\n   *\t\t'A cell at row 1 and column 5'\n   *\t\t'A cell at row 2 and column 2'\n   *\n   * To also iterate over spanned cells:\n   *\n   *\t\tconst tableWalker = new TableWalker( table, { startRow: 1, endRow: 1, includeSpanned: true } );\n   *\n   *\t\tfor ( const value of tableWalker ) {\n   *\t\t\tconsole.log( 'Cell at ' + value.row + ' x ' + value.column + ' : ' + ( value.isSpanned ? 'is spanned' : 'has data' ) );\n   *\t\t}\n   *\n   * will log in the console for the table from previous example:\n   *\n   *\t\t'Cell at 1 x 0 : is spanned'\n   *\t\t'Cell at 1 x 1 : is spanned'\n   *\t\t'Cell at 1 x 2 : has data'\n   *\t\t'Cell at 1 x 3 : is spanned'\n   *\t\t'Cell at 1 x 4 : has data'\n   *\t\t'Cell at 1 x 5 : has data'\n   *\n   * @constructor\n   * @param {module:engine/model/element~Element} table A table over which the walker iterates.\n   * @param {Object} [options={}] An object with configuration.\n   * @param {Number} [options.column] A column index for which this iterator will output cells.\n   * @param {Number} [options.startRow=0] A row index for which this iterator should start.\n   * @param {Number} [options.endRow] A row index for which this iterator should end.\n   * @param {Boolean} [options.includeSpanned=false] Also return values for spanned cells.\n   */\n  function TableWalker(table) {\n    var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n    _classCallCheck(this, TableWalker);\n\n    /**\n     * The walker's table element.\n     *\n     * @readonly\n     * @member {module:engine/model/element~Element}\n     */\n    this.table = table;\n    /**\n     * A row index on which this iterator will start.\n     *\n     * @readonly\n     * @member {Number}\n     */\n\n    this.startRow = options.startRow || 0;\n    /**\n     * A row index on which this iterator will end.\n     *\n     * @readonly\n     * @member {Number}\n     */\n\n    this.endRow = typeof options.endRow == 'number' ? options.endRow : undefined;\n    /**\n     * Enables output of spanned cells that are normally not yielded.\n     *\n     * @readonly\n     * @member {Boolean}\n     */\n\n    this.includeSpanned = !!options.includeSpanned;\n    /**\n     * If set, the table walker will only output cells of a given column or cells that overlap it.\n     *\n     * @readonly\n     * @member {Number}\n     */\n\n    this.column = typeof options.column == 'number' ? options.column : undefined;\n    /**\n     * Row indexes to skip from the iteration.\n     *\n     * @readonly\n     * @member {Set<Number>}\n     * @private\n     */\n\n    this._skipRows = new Set();\n    /**\n     * The current row index.\n     *\n     * @readonly\n     * @member {Number}\n     * @private\n     */\n\n    this._row = 0;\n    /**\n     * The current column index.\n     *\n     * @readonly\n     * @member {Number}\n     * @private\n     */\n\n    this._column = 0;\n    /**\n     * The cell index in a parent row. For spanned cells when {@link #includeSpanned} is set to `true`,\n     * this represents the index of the next table cell.\n     *\n     * @readonly\n     * @member {Number}\n     * @private\n     */\n\n    this._cellIndex = 0;\n    /**\n     * Holds a map of spanned cells in a table.\n     *\n     * @readonly\n     * @member {Map<Number, Map.<Number, module:engine/model/element~Element>>}\n     * @private\n     */\n\n    this._spannedCells = new Map();\n    this._nextCellAtColumn = -1;\n  }\n  /**\n   * Iterable interface.\n   *\n   * @returns {Iterable.<module:table/tablewalker~TableWalkerValue>}\n   */\n\n\n  _createClass(TableWalker, [{\n    key: Symbol.iterator,\n    value: function value() {\n      return this;\n    }\n    /**\n     * Gets the next table walker's value.\n     *\n     * @returns {module:table/tablewalker~TableWalkerValue} The next table walker's value.\n     */\n\n  }, {\n    key: \"next\",\n    value: function next() {\n      var row = this.table.getChild(this._row); // Iterator is done when there's no row (table ended) or the row is after `endRow` limit.\n\n      if (!row || this._isOverEndRow()) {\n        return {\n          done: true\n        };\n      }\n\n      var cell, skipCurrentValue, outValue;\n\n      if (this._isSpanned(this._row, this._column)) {\n        cell = this._getSpanned(this._row, this._column);\n        skipCurrentValue = !this.includeSpanned || this._shouldSkipRow() || this._shouldSkipColumn();\n        outValue = this._formatOutValue(cell, this._column, true);\n      } else {\n        cell = row.getChild(this._cellIndex);\n\n        if (!cell) {\n          // If there are no more cells left in row advance to the next row.\n          this._row++;\n          this._column = 0;\n          this._cellIndex = 0;\n          this._nextCellAtColumn = -1;\n          return this.next();\n        }\n\n        var colspan = parseInt(cell.getAttribute('colspan') || 1);\n        var rowspan = parseInt(cell.getAttribute('rowspan') || 1); // Record this cell spans if it's not 1x1 cell.\n\n        if (colspan > 1 || rowspan > 1) {\n          this._recordSpans(this._row, this._column, rowspan, colspan, cell);\n        }\n\n        this._nextCellAtColumn = this._column + colspan;\n        skipCurrentValue = this._shouldSkipRow() || this._shouldSkipColumn();\n        outValue = this._formatOutValue(cell, this._column, false, rowspan, colspan);\n      } // Advance to the next column before returning value.\n\n\n      this._column++;\n\n      if (this._column == this._nextCellAtColumn) {\n        this._cellIndex++;\n      } // The current value will be returned only if current row and column are not skipped.\n\n\n      return skipCurrentValue ? this.next() : outValue;\n    }\n    /**\n     * Marks a row to skip in the next iteration. It will also skip cells from the current row if there are any cells from the current row\n     * to output.\n     *\n     * @param {Number} row Row index to skip.\n     */\n\n  }, {\n    key: \"skipRow\",\n    value: function skipRow(row) {\n      this._skipRows.add(row);\n    }\n    /**\n     * Checks if the current row is over {@link #endRow}.\n     *\n     * @private\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_isOverEndRow\",\n    value: function _isOverEndRow() {\n      // If {@link #endRow) is defined skip all rows above it.\n      return this.endRow !== undefined && this._row > this.endRow;\n    }\n    /**\n     * A common method for formatting the iterator's output value.\n     *\n     * @private\n     * @param {module:engine/model/element~Element} cell The table cell to output.\n     * @param {Number} column Column index (use the cached value).\n     * @param {Boolean} isSpanned Whether the value is returned for a spanned cell location or actual cell.\n     * @param {Number} rowspan Rowspan of the current cell.\n     * @param {Number} colspan Colspan of the current cell.\n     * @returns {{done: boolean, value: {cell: *, row: Number, column: *, rowspan: *, colspan: *, cellIndex: Number}}}\n     */\n\n  }, {\n    key: \"_formatOutValue\",\n    value: function _formatOutValue(cell, column, isSpanned) {\n      var rowspan = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1;\n      var colspan = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 1;\n      return {\n        done: false,\n        value: {\n          cell: cell,\n          row: this._row,\n          column: column,\n          isSpanned: isSpanned,\n          rowspan: rowspan,\n          colspan: colspan,\n          cellIndex: this._cellIndex\n        }\n      };\n    }\n    /**\n     * Checks if the current row should be skipped.\n     *\n     * @private\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_shouldSkipRow\",\n    value: function _shouldSkipRow() {\n      var rowIsBelowStartRow = this._row < this.startRow;\n\n      var rowIsMarkedAsSkipped = this._skipRows.has(this._row);\n\n      return rowIsBelowStartRow || rowIsMarkedAsSkipped;\n    }\n    /**\n     * Checks if the current column should be skipped.\n     *\n     * @private\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_shouldSkipColumn\",\n    value: function _shouldSkipColumn() {\n      if (this.column === undefined) {\n        // The {@link #column} is not defined so output all columns.\n        return false;\n      }\n\n      return this.column != this._column;\n    }\n    /**\n     * Checks if the current cell location (row x column) is spanned by another cell.\n     *\n     * @private\n     * @param {Number} row Row index of a cell location to check.\n     * @param {Number} column Column index of a cell location to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_isSpanned\",\n    value: function _isSpanned(row, column) {\n      if (!this._spannedCells.has(row)) {\n        // No spans for given row.\n        return false;\n      }\n\n      var rowSpans = this._spannedCells.get(row); // If spans for given rows has entry for column it means that this location if spanned by other cell.\n\n\n      return rowSpans.has(column);\n    }\n    /**\n     * Returns the cell element that is spanned over `row` x `column` location.\n     *\n     * @private\n     * @param {Number} row Row index of the cell location.\n     * @param {Number} column Column index of the cell location.\n     * @returns {module:engine/model/element~Element}\n     */\n\n  }, {\n    key: \"_getSpanned\",\n    value: function _getSpanned(row, column) {\n      return this._spannedCells.get(row).get(column);\n    }\n    /**\n     * Updates spanned cells map relative to the current cell location and its span dimensions.\n     *\n     * @private\n     * @param {Number} row Row index of a cell.\n     * @param {Number} column Column index of a cell.\n     * @param {Number} rowspan Cell height.\n     * @param {Number} colspan Cell width.\n     * @param {module:engine/model/element~Element} cell Cell that is spanned.\n     */\n\n  }, {\n    key: \"_recordSpans\",\n    value: function _recordSpans(row, column, rowspan, colspan, cell) {\n      // This will update all cell locations after current column - ie a cell has colspan set.\n      for (var columnToUpdate = column + 1; columnToUpdate <= column + colspan - 1; columnToUpdate++) {\n        this._markSpannedCell(row, columnToUpdate, cell);\n      } // This will update all rows below current up to row's height.\n\n\n      for (var rowToUpdate = row + 1; rowToUpdate < row + rowspan; rowToUpdate++) {\n        for (var _columnToUpdate = column; _columnToUpdate <= column + colspan - 1; _columnToUpdate++) {\n          this._markSpannedCell(rowToUpdate, _columnToUpdate, cell);\n        }\n      }\n    }\n    /**\n     * Marks the cell location as spanned by another cell.\n     *\n     * @private\n     * @param {Number} row Row index of the cell location.\n     * @param {Number} column Column index of the cell location.\n     * @param {module:engine/model/element~Element} cell Cell that is spanned.\n     */\n\n  }, {\n    key: \"_markSpannedCell\",\n    value: function _markSpannedCell(row, column, cell) {\n      if (!this._spannedCells.has(row)) {\n        this._spannedCells.set(row, new Map());\n      }\n\n      var rowSpans = this._spannedCells.get(row);\n\n      rowSpans.set(column, cell);\n    }\n  }]);\n\n  return TableWalker;\n}();\n/**\n * An object returned by {@link module:table/tablewalker~TableWalker} when traversing table cells.\n *\n * @typedef {Object} module:table/tablewalker~TableWalkerValue\n * @property {module:engine/model/element~Element} cell The current table cell.\n * @property {Number} row The row index of a cell.\n * @property {Number} column The column index of a cell. Column index is adjusted to widths and heights of previous cells.\n * @param {Boolean} isSpanned Whether the value is returned for a spanned cell location or actual cell.\n * @property {Number} colspan The `colspan` attribute of a cell. It the model attribute is not present, it is set to `1`. For spanned\n * table locations, it is set to `1`.\n * @property {Number} rowspan The `rowspan` attribute of a cell. It the model attribute is not present, it is set to `1`. For spanned\n * table locations, it is set to `1`.\n * @property {Number} cellIndex The index of the current cell in a parent row.\n */\n\n\nexport { TableWalker as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/ui/inserttableview\n */\nimport View from '@ckeditor/ckeditor5-ui/src/view';\nimport \"./../../theme/inserttable.css\";\n/**\n * The table size view.\n *\n * It renders a 10x10 grid to choose the inserted table size.\n *\n * @extends module:ui/view~View\n * @implements module:ui/dropdown/dropdownpanelfocusable~DropdownPanelFocusable\n */\n\nvar InsertTableView = /*#__PURE__*/function (_View) {\n  _inherits(InsertTableView, _View);\n\n  var _super = _createSuper(InsertTableView);\n\n  /**\n   * @inheritDoc\n   */\n  function InsertTableView(locale) {\n    var _this;\n\n    _classCallCheck(this, InsertTableView);\n\n    _this = _super.call(this, locale);\n    var bind = _this.bindTemplate;\n    /**\n     * A collection of table size box items.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n    _this.items = _this.createCollection();\n    /**\n     * The currently selected number of rows of the new table.\n     *\n     * @observable\n     * @member {Number} #rows\n     */\n\n    _this.set('rows', 0);\n    /**\n     * The currently selected number of columns of the new table.\n     *\n     * @observable\n     * @member {Number} #columns\n     */\n\n\n    _this.set('columns', 0);\n    /**\n     * The label text displayed under the boxes.\n     *\n     * @observable\n     * @member {String} #label\n     */\n\n\n    _this.bind('label').to(_assertThisInitialized(_this), 'columns', _assertThisInitialized(_this), 'rows', function (columns, rows) {\n      return \"\".concat(rows, \" \\xD7 \").concat(columns);\n    });\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck']\n      },\n      children: [{\n        tag: 'div',\n        attributes: {\n          class: ['ck-insert-table-dropdown__grid']\n        },\n        children: _this.items\n      }, {\n        tag: 'div',\n        attributes: {\n          class: ['ck-insert-table-dropdown__label']\n        },\n        children: [{\n          text: bind.to('label')\n        }]\n      }],\n      on: {\n        mousedown: bind.to(function (evt) {\n          evt.preventDefault();\n        }),\n        click: bind.to(function () {\n          _this.fire('execute');\n        })\n      }\n    }); // Add grid boxes to table selection view.\n\n\n    var _loop = function _loop(index) {\n      var boxView = new TableSizeGridBoxView(); // Listen to box view 'over' event which indicates that mouse is over this box.\n\n      boxView.on('over', function () {\n        // Translate box index to the row & column index.\n        var row = Math.floor(index / 10);\n        var column = index % 10; // As row & column indexes are zero-based transform it to number of selected rows & columns.\n\n        _this.set('rows', row + 1);\n\n        _this.set('columns', column + 1);\n      });\n\n      _this.items.add(boxView);\n    };\n\n    for (var index = 0; index < 100; index++) {\n      _loop(index);\n    }\n\n    _this.on('change:columns', function () {\n      _this._highlightGridBoxes();\n    });\n\n    _this.on('change:rows', function () {\n      _this._highlightGridBoxes();\n    });\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(InsertTableView, [{\n    key: \"focus\",\n    value: function focus() {// The dropdown panel expects DropdownPanelFocusable interface on views passed to dropdown panel. See #30.\n      // The method should be implemented while working on keyboard support for this view. See #22.\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"focusLast\",\n    value: function focusLast() {// The dropdown panel expects DropdownPanelFocusable interface on views passed to dropdown panel. See #30.\n      // The method should be implemented while working on keyboard support for this view. See #22.\n    }\n    /**\n     * Highlights grid boxes depending on rows and columns selected.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_highlightGridBoxes\",\n    value: function _highlightGridBoxes() {\n      var rows = this.rows;\n      var columns = this.columns;\n      this.items.map(function (boxView, index) {\n        // Translate box index to the row & column index.\n        var itemRow = Math.floor(index / 10);\n        var itemColumn = index % 10; // Grid box is highlighted when its row & column index belongs to selected number of rows & columns.\n\n        var isOn = itemRow < rows && itemColumn < columns;\n        boxView.set('isOn', isOn);\n      });\n    }\n  }]);\n\n  return InsertTableView;\n}(View);\n/**\n * A single grid box view element.\n *\n * This class is used to render the table size selection grid in {@link module:table/ui/inserttableview~InsertTableView}.\n *\n * @private\n */\n\n\nexport { InsertTableView as default };\n\nvar TableSizeGridBoxView = /*#__PURE__*/function (_View2) {\n  _inherits(TableSizeGridBoxView, _View2);\n\n  var _super2 = _createSuper(TableSizeGridBoxView);\n\n  /**\n   * @inheritDoc\n   */\n  function TableSizeGridBoxView(locale) {\n    var _this2;\n\n    _classCallCheck(this, TableSizeGridBoxView);\n\n    _this2 = _super2.call(this, locale);\n    var bind = _this2.bindTemplate;\n    /**\n     * Controls whether the grid box view is \"on\".\n     *\n     * @observable\n     * @member {Boolean} #isOn\n     */\n\n    _this2.set('isOn', false);\n\n    _this2.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck-insert-table-dropdown-grid-box', bind.if('isOn', 'ck-on')]\n      },\n      on: {\n        mouseover: bind.to('over')\n      }\n    });\n\n    return _this2;\n  }\n\n  return TableSizeGridBoxView;\n}(View);","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module table/utils\n */\nimport { isWidget, toWidget } from '@ckeditor/ckeditor5-widget/src/utils';\nimport { findAncestor } from \"./commands/utils\";\n/**\n * Converts a given {@link module:engine/view/element~Element} to a table widget:\n * * Adds a {@link module:engine/view/element~Element#_setCustomProperty custom property} allowing to recognize the table widget element.\n * * Calls the {@link module:widget/utils~toWidget} function with the proper element's label creator.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @param {module:engine/view/downcastwriter~DowncastWriter} writer An instance of the view writer.\n * @param {String} label The element's label. It will be concatenated with the table `alt` attribute if one is present.\n * @returns {module:engine/view/element~Element}\n */\n\nexport function toTableWidget(viewElement, writer) {\n  writer.setCustomProperty('table', true, viewElement);\n  return toWidget(viewElement, writer, {\n    hasSelectionHandle: true\n  });\n}\n/**\n * Checks if a given view element is a table widget.\n *\n * @param {module:engine/view/element~Element} viewElement\n * @returns {Boolean}\n */\n\nexport function isTableWidget(viewElement) {\n  return !!viewElement.getCustomProperty('table') && isWidget(viewElement);\n}\n/**\n * Returns a table widget editing view element if one is selected.\n *\n * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} selection\n * @returns {module:engine/view/element~Element|null}\n */\n\nexport function getSelectedTableWidget(selection) {\n  var viewElement = selection.getSelectedElement();\n\n  if (viewElement && isTableWidget(viewElement)) {\n    return viewElement;\n  }\n\n  return null;\n}\n/**\n * Returns a table widget editing view element if one is among selection's ancestors.\n *\n * @param {module:engine/view/selection~Selection|module:engine/view/documentselection~DocumentSelection} selection\n * @returns {module:engine/view/element~Element|null}\n */\n\nexport function getTableWidgetAncestor(selection) {\n  var parentTable = findAncestor('table', selection.getFirstPosition());\n\n  if (parentTable && isTableWidget(parentTable.parent)) {\n    return parentTable.parent;\n  }\n\n  return null;\n}","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1zM2 2v16h16V2H2z\\\" opacity=\\\".6\\\"/><path d=\\\"M18 7v1H2V7h16zm0 5v1H2v-1h16z\\\" opacity=\\\".6\\\"/><path d=\\\"M14 1v18a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V1a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1zm-2 1H8v4h4V2zm0 6H8v4h4V8zm0 6H8v4h4v-4z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1zM2 2v16h16V2H2z\\\" opacity=\\\".6\\\"/><path d=\\\"M7 2h1v16H7V2zm5 0h1v7h-1V2zm6 5v1H2V7h16zM8 12v1H2v-1h6z\\\" opacity=\\\".6\\\"/><path d=\\\"M7 7h12a1 1 0 0 1 1 1v11a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1zm1 2v9h10V9H8z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M2.5 1h15A1.5 1.5 0 0 1 19 2.5v15a1.5 1.5 0 0 1-1.5 1.5h-15A1.5 1.5 0 0 1 1 17.5v-15A1.5 1.5 0 0 1 2.5 1zM2 2v16h16V2H2z\\\" opacity=\\\".6\\\"/><path d=\\\"M7 2h1v16H7V2zm5 0h1v16h-1V2z\\\" opacity=\\\".6\\\"/><path d=\\\"M1 6h18a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H1a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1zm1 2v4h4V8H2zm6 0v4h4V8H8zm6 0v4h4V8h-4z\\\"/></svg>\"","export default \"<svg viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M3 6v3h4V6H3zm0 4v3h4v-3H3zm0 4v3h4v-3H3zm5 3h4v-3H8v3zm5 0h4v-3h-4v3zm4-4v-3h-4v3h4zm0-4V6h-4v3h4zm1.5 8a1.5 1.5 0 0 1-1.5 1.5H3A1.5 1.5 0 0 1 1.5 17V4c.222-.863 1.068-1.5 2-1.5h13c.932 0 1.778.637 2 1.5v13zM12 13v-3H8v3h4zm0-4V6H8v3h4z\\\"/></svg>\"","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./inserttable.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"8db581ec\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./inserttable.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./inserttable.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./table.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5512647c\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./table.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./table.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./tableediting.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"3486ab70\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./tableediting.css\", function() {\n     var newContent = require(\"!!../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./tableediting.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/delete\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport DeleteCommand from \"./deletecommand\";\nimport DeleteObserver from \"./deleteobserver\";\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n/**\n * The delete and backspace feature. Handles the <kbd>Delete</kbd> and <kbd>Backspace</kbd> keys in the editor.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Delete = /*#__PURE__*/function (_Plugin) {\n  _inherits(Delete, _Plugin);\n\n  var _super = _createSuper(Delete);\n\n  function Delete() {\n    _classCallCheck(this, Delete);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Delete, [{\n    key: \"init\",\n    value: function init() {\n      var editor = this.editor;\n      var view = editor.editing.view;\n      var viewDocument = view.document;\n      view.addObserver(DeleteObserver);\n      editor.commands.add('forwardDelete', new DeleteCommand(editor, 'forward'));\n      editor.commands.add('delete', new DeleteCommand(editor, 'backward'));\n      this.listenTo(viewDocument, 'delete', function (evt, data) {\n        var deleteCommandParams = {\n          unit: data.unit,\n          sequence: data.sequence\n        }; // If a specific (view) selection to remove was set, convert it to a model selection and set as a parameter for `DeleteCommand`.\n\n        if (data.selectionToRemove) {\n          var modelSelection = editor.model.createSelection();\n          var ranges = [];\n\n          var _iterator = _createForOfIteratorHelper(data.selectionToRemove.getRanges()),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var viewRange = _step.value;\n              ranges.push(editor.editing.mapper.toModelRange(viewRange));\n            }\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n\n          modelSelection.setTo(ranges);\n          deleteCommandParams.selection = modelSelection;\n        }\n\n        editor.execute(data.direction == 'forward' ? 'forwardDelete' : 'delete', deleteCommandParams);\n        data.preventDefault();\n        view.scrollToTheSelection();\n      }); // Android IMEs have a quirk - they change DOM selection after the input changes were performed by the browser.\n      // This happens on `keyup` event. Android doesn't know anything about our deletion and selection handling. Even if the selection\n      // was changed during input events, IME remembers the position where the selection \"should\" be placed and moves it there.\n      //\n      // To prevent incorrect selection, we save the selection after deleting here and then re-set it on `keyup`. This has to be done\n      // on DOM selection level, because on `keyup` the model selection is still the same as it was just after deletion, so it\n      // wouldn't be changed and the fix would do nothing.\n      //\n\n      if (env.isAndroid) {\n        var domSelectionAfterDeletion = null;\n        this.listenTo(viewDocument, 'delete', function (evt, data) {\n          var domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n          domSelectionAfterDeletion = {\n            anchorNode: domSelection.anchorNode,\n            anchorOffset: domSelection.anchorOffset,\n            focusNode: domSelection.focusNode,\n            focusOffset: domSelection.focusOffset\n          };\n        }, {\n          priority: 'lowest'\n        });\n        this.listenTo(viewDocument, 'keyup', function (evt, data) {\n          if (domSelectionAfterDeletion) {\n            var domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n            domSelection.collapse(domSelectionAfterDeletion.anchorNode, domSelectionAfterDeletion.anchorOffset);\n            domSelection.extend(domSelectionAfterDeletion.focusNode, domSelectionAfterDeletion.focusOffset);\n            domSelectionAfterDeletion = null;\n          }\n        });\n      }\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'Delete';\n    }\n  }]);\n\n  return Delete;\n}(Plugin);\n\nexport { Delete as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/deletecommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport count from '@ckeditor/ckeditor5-utils/src/count';\nimport ChangeBuffer from \"./utils/changebuffer\";\n/**\n * The delete command. Used by the {@link module:typing/delete~Delete delete feature} to handle the <kbd>Delete</kbd> and\n * <kbd>Backspace</kbd> keys.\n *\n * @extends module:core/command~Command\n */\n\nvar DeleteCommand = /*#__PURE__*/function (_Command) {\n  _inherits(DeleteCommand, _Command);\n\n  var _super = _createSuper(DeleteCommand);\n\n  /**\n   * Creates an instance of the command.\n   *\n   * @param {module:core/editor/editor~Editor} editor\n   * @param {'forward'|'backward'} direction The directionality of the delete describing in what direction it\n   * should consume the content when the selection is collapsed.\n   */\n  function DeleteCommand(editor, direction) {\n    var _this;\n\n    _classCallCheck(this, DeleteCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * The directionality of the delete describing in what direction it should\n     * consume the content when the selection is collapsed.\n     *\n     * @readonly\n     * @member {'forward'|'backward'} #direction\n     */\n\n    _this.direction = direction;\n    /**\n     * Delete's change buffer used to group subsequent changes into batches.\n     *\n     * @readonly\n     * @private\n     * @member {typing.ChangeBuffer} #buffer\n     */\n\n    _this._buffer = new ChangeBuffer(editor.model, editor.config.get('typing.undoStep'));\n    return _this;\n  }\n  /**\n   * The current change buffer.\n   *\n   * @type {module:typing/utils/changebuffer~ChangeBuffer}\n   */\n\n\n  _createClass(DeleteCommand, [{\n    key: \"execute\",\n\n    /**\n     * Executes the delete command. Depending on whether the selection is collapsed or not, deletes its content\n     * or a piece of content in the {@link #direction defined direction}.\n     *\n     * @fires execute\n     * @param {Object} [options] The command options.\n     * @param {'character'} [options.unit='character'] See {@link module:engine/model/utils/modifyselection~modifySelection}'s options.\n     * @param {Number} [options.sequence=1] A number describing which subsequent delete event it is without the key being released.\n     * See the {@link module:engine/view/document~Document#event:delete} event data.\n     * @param {module:engine/model/selection~Selection} [options.selection] Selection to remove. If not set, current model selection\n     * will be used.\n     */\n    value: function execute() {\n      var _this2 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var doc = model.document;\n      model.enqueueChange(this._buffer.batch, function (writer) {\n        _this2._buffer.lock();\n\n        var selection = writer.createSelection(options.selection || doc.selection); // Do not replace the whole selected content if selection was collapsed.\n        // This prevents such situation:\n        //\n        // <h1></h1><p>[]</p>\t-->  <h1>[</h1><p>]</p> \t\t-->  <p></p>\n        // starting content\t\t-->   after `modifySelection`\t-->  after `deleteContent`.\n\n        var doNotResetEntireContent = selection.isCollapsed; // Try to extend the selection in the specified direction.\n\n        if (selection.isCollapsed) {\n          model.modifySelection(selection, {\n            direction: _this2.direction,\n            unit: options.unit\n          });\n        } // Check if deleting in an empty editor. See #61.\n\n\n        if (_this2._shouldEntireContentBeReplacedWithParagraph(options.sequence || 1)) {\n          _this2._replaceEntireContentWithParagraph(writer);\n\n          return;\n        } // If selection is still collapsed, then there's nothing to delete.\n\n\n        if (selection.isCollapsed) {\n          return;\n        }\n\n        var changeCount = 0;\n        selection.getFirstRange().getMinimalFlatRanges().forEach(function (range) {\n          changeCount += count(range.getWalker({\n            singleCharacters: true,\n            ignoreElementEnd: true,\n            shallow: true\n          }));\n        });\n        model.deleteContent(selection, {\n          doNotResetEntireContent: doNotResetEntireContent\n        });\n\n        _this2._buffer.input(changeCount);\n\n        writer.setSelection(selection);\n\n        _this2._buffer.unlock();\n      });\n    }\n    /**\n     * If the user keeps <kbd>Backspace</kbd> or <kbd>Delete</kbd> key pressed, the content of the current\n     * editable will be cleared. However, this will not yet lead to resetting the remaining block to a paragraph\n     * (which happens e.g. when the user does <kbd>Ctrl</kbd> + <kbd>A</kbd>, <kbd>Backspace</kbd>).\n     *\n     * But, if the user pressed the key in an empty editable for the first time,\n     * we want to replace the entire content with a paragraph if:\n     *\n     * * the current limit element is empty,\n     * * the paragraph is allowed in the limit element,\n     * * the limit doesn't already have a paragraph inside.\n     *\n     * See https://github.com/ckeditor/ckeditor5-typing/issues/61.\n     *\n     * @private\n     * @param {Number} sequence A number describing which subsequent delete event it is without the key being released.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"_shouldEntireContentBeReplacedWithParagraph\",\n    value: function _shouldEntireContentBeReplacedWithParagraph(sequence) {\n      // Does nothing if user pressed and held the \"Backspace\" or \"Delete\" key.\n      if (sequence > 1) {\n        return false;\n      }\n\n      var model = this.editor.model;\n      var doc = model.document;\n      var selection = doc.selection;\n      var limitElement = model.schema.getLimitElement(selection); // If a collapsed selection contains the whole content it means that the content is empty\n      // (from the user perspective).\n\n      var limitElementIsEmpty = selection.isCollapsed && selection.containsEntireContent(limitElement);\n\n      if (!limitElementIsEmpty) {\n        return false;\n      }\n\n      if (!model.schema.checkChild(limitElement, 'paragraph')) {\n        return false;\n      }\n\n      var limitElementFirstChild = limitElement.getChild(0); // Does nothing if the limit element already contains only a paragraph.\n      // We ignore the case when paragraph might have some inline elements (<p><inlineWidget>[]</inlineWidget></p>)\n      // because we don't support such cases yet and it's unclear whether inlineWidget shouldn't be a limit itself.\n\n      if (limitElementFirstChild && limitElementFirstChild.name === 'paragraph') {\n        return false;\n      }\n\n      return true;\n    }\n    /**\n     * The entire content is replaced with the paragraph. Selection is moved inside the paragraph.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_replaceEntireContentWithParagraph\",\n    value: function _replaceEntireContentWithParagraph(writer) {\n      var model = this.editor.model;\n      var doc = model.document;\n      var selection = doc.selection;\n      var limitElement = model.schema.getLimitElement(selection);\n      var paragraph = writer.createElement('paragraph');\n      writer.remove(writer.createRangeIn(limitElement));\n      writer.insert(paragraph, limitElement);\n      writer.setSelection(paragraph, 0);\n    }\n  }, {\n    key: \"buffer\",\n    get: function get() {\n      return this._buffer;\n    }\n  }]);\n\n  return DeleteCommand;\n}(Command);\n\nexport { DeleteCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.number.constructor\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/deleteobserver\n */\nimport Observer from '@ckeditor/ckeditor5-engine/src/view/observer/observer';\nimport DomEventData from '@ckeditor/ckeditor5-engine/src/view/observer/domeventdata';\nimport { keyCodes } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n/**\n * Delete observer introduces the {@link module:engine/view/document~Document#event:delete} event.\n *\n * @extends module:engine/view/observer/observer~Observer\n */\n\nvar DeleteObserver = /*#__PURE__*/function (_Observer) {\n  _inherits(DeleteObserver, _Observer);\n\n  var _super = _createSuper(DeleteObserver);\n\n  function DeleteObserver(view) {\n    var _this;\n\n    _classCallCheck(this, DeleteObserver);\n\n    _this = _super.call(this, view);\n    var document = view.document;\n    var sequence = 0;\n    document.on('keyup', function (evt, data) {\n      if (data.keyCode == keyCodes.delete || data.keyCode == keyCodes.backspace) {\n        sequence = 0;\n      }\n    });\n    document.on('keydown', function (evt, data) {\n      var deleteData = {};\n\n      if (data.keyCode == keyCodes.delete) {\n        deleteData.direction = 'forward';\n        deleteData.unit = 'character';\n      } else if (data.keyCode == keyCodes.backspace) {\n        deleteData.direction = 'backward';\n        deleteData.unit = 'codePoint';\n      } else {\n        return;\n      }\n\n      var hasWordModifier = env.isMac ? data.altKey : data.ctrlKey;\n      deleteData.unit = hasWordModifier ? 'word' : deleteData.unit;\n      deleteData.sequence = ++sequence;\n      fireViewDeleteEvent(evt, data.domEvent, deleteData);\n    }); // `beforeinput` is handled only for Android devices. Desktop Chrome and iOS are skipped because they are working fine now.\n\n    if (env.isAndroid) {\n      document.on('beforeinput', function (evt, data) {\n        // If event type is other than `deleteContentBackward` then this is not deleting.\n        if (data.domEvent.inputType != 'deleteContentBackward') {\n          return;\n        }\n\n        var deleteData = {\n          unit: 'codepoint',\n          direction: 'backward',\n          sequence: 1\n        }; // Android IMEs may change the DOM selection on `beforeinput` event so that the selection contains all the text\n        // that the IME wants to remove. We will pass this information to `delete` event so proper part of the content is removed.\n        //\n        // Sometimes it is only expanding by a one character (in case of collapsed selection). In this case we don't need to\n        // set a different selection to remove, it will work just fine.\n\n        var domSelection = data.domTarget.ownerDocument.defaultView.getSelection();\n\n        if (domSelection.anchorNode == domSelection.focusNode && domSelection.anchorOffset + 1 != domSelection.focusOffset) {\n          deleteData.selectionToRemove = view.domConverter.domSelectionToView(domSelection);\n        }\n\n        fireViewDeleteEvent(evt, data.domEvent, deleteData);\n      });\n    }\n\n    function fireViewDeleteEvent(originalEvent, domEvent, deleteData) {\n      // Save the event object to check later if it was stopped or not.\n      var event;\n      document.once('delete', function (evt) {\n        return event = evt;\n      }, {\n        priority: Number.POSITIVE_INFINITY\n      });\n      document.fire('delete', new DomEventData(document, domEvent, deleteData)); // Stop the original event if `delete` event was stopped.\n      // https://github.com/ckeditor/ckeditor5/issues/753\n\n      if (event && event.stop.called) {\n        originalEvent.stop();\n      }\n    }\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(DeleteObserver, [{\n    key: \"observe\",\n    value: function observe() {}\n  }]);\n\n  return DeleteObserver;\n}(Observer);\n/**\n * Event fired when the user tries to delete content (e.g. presses <kbd>Delete</kbd> or <kbd>Backspace</kbd>).\n *\n * Note: This event is fired by the {@link module:typing/deleteobserver~DeleteObserver observer}\n * (usually registered by the {@link module:typing/delete~Delete delete feature}).\n *\n * @event module:engine/view/document~Document#event:delete\n * @param {module:engine/view/observer/domeventdata~DomEventData} data\n * @param {'forward'|'delete'} data.direction The direction in which the deletion should happen.\n * @param {'character'|'word'} data.unit The \"amount\" of content that should be deleted.\n * @param {Number} data.sequence A number describing which subsequent delete event it is without the key being released.\n * If it's 2 or more it means that the key was pressed and hold.\n * @param {module:engine/view/selection~Selection} [data.selectionToRemove] View selection which content should be removed. If not set,\n * current selection should be used.\n */\n\n\nexport { DeleteObserver as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/input\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport InputCommand from \"./inputcommand\";\nimport injectUnsafeKeystrokesHandling from \"./utils/injectunsafekeystrokeshandling\";\nimport injectTypingMutationsHandling from \"./utils/injecttypingmutationshandling\";\n/**\n * Handles text input coming from the keyboard or other input methods.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Input = /*#__PURE__*/function (_Plugin) {\n  _inherits(Input, _Plugin);\n\n  var _super = _createSuper(Input);\n\n  function Input() {\n    _classCallCheck(this, Input);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Input, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      var editor = this.editor; // TODO The above default configuration value should be defined using editor.config.define() once it's fixed.\n\n      var inputCommand = new InputCommand(editor, editor.config.get('typing.undoStep') || 20);\n      editor.commands.add('input', inputCommand);\n      injectUnsafeKeystrokesHandling(editor);\n      injectTypingMutationsHandling(editor);\n    }\n    /**\n     * Checks batch if it is a result of user input - e.g. typing.\n     *\n     *\t\tconst input = editor.plugins.get( 'Input' );\n     *\n     *\t\teditor.model.document.on( 'change:data', ( evt, batch ) => {\n     *\t\t\tif ( input.isTyping( batch ) ) {\n     *\t\t\t\tconsole.log( 'The user typed something...' );\n     *\t\t\t}\n     *\t\t} );\n     *\n     * **Note:** This method checks if the batch was created using {@link module:typing/inputcommand~InputCommand 'input'}\n     * command as typing changes coming from user input are inserted to the document using that command.\n     *\n     * @param {module:engine/model/batch~Batch} batch A batch to check.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"isInput\",\n    value: function isInput(batch) {\n      var inputCommand = this.editor.commands.get('input');\n      return inputCommand._batches.has(batch);\n    }\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'Input';\n    }\n  }]);\n\n  return Input;\n}(Plugin);\n\nexport { Input as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.weak-set\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/inputcommand\n */\nimport Command from '@ckeditor/ckeditor5-core/src/command';\nimport ChangeBuffer from \"./utils/changebuffer\";\n/**\n * The input command. Used by the {@link module:typing/input~Input input feature} to handle typing.\n *\n * @extends module:core/command~Command\n */\n\nvar InputCommand = /*#__PURE__*/function (_Command) {\n  _inherits(InputCommand, _Command);\n\n  var _super = _createSuper(InputCommand);\n\n  /**\n   * Creates an instance of the command.\n   *\n   * @param {module:core/editor/editor~Editor} editor\n   * @param {Number} undoStepSize The maximum number of atomic changes\n   * which can be contained in one batch in the command buffer.\n   */\n  function InputCommand(editor, undoStepSize) {\n    var _this;\n\n    _classCallCheck(this, InputCommand);\n\n    _this = _super.call(this, editor);\n    /**\n     * Typing's change buffer used to group subsequent changes into batches.\n     *\n     * @readonly\n     * @private\n     * @member {module:typing/utils/changebuffer~ChangeBuffer} #_buffer\n     */\n\n    _this._buffer = new ChangeBuffer(editor.model, undoStepSize);\n    /**\n     * Stores batches created by the input command. The batches are used to differentiate input batches from other batches using\n     * {@link module:typing/input~Input#isInput} method.\n     *\n     * @type {WeakSet<module:engine/model/batch~Batch>}\n     * @protected\n     */\n\n    _this._batches = new WeakSet();\n    return _this;\n  }\n  /**\n   * The current change buffer.\n   *\n   * @type {module:typing/utils/changebuffer~ChangeBuffer}\n   */\n\n\n  _createClass(InputCommand, [{\n    key: \"destroy\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function destroy() {\n      _get(_getPrototypeOf(InputCommand.prototype), \"destroy\", this).call(this);\n\n      this._buffer.destroy();\n    }\n    /**\n     * Executes the input command. It replaces the content within the given range with the given text.\n     * Replacing is a two step process, first the content within the range is removed and then the new text is inserted\n     * at the beginning of the range (which after the removal is a collapsed range).\n     *\n     * @fires execute\n     * @param {Object} [options] The command options.\n     * @param {String} [options.text=''] The text to be inserted.\n     * @param {module:engine/model/range~Range} [options.range] The range in which the text is inserted. Defaults\n     * to the first range in the current selection.\n     * @param {module:engine/model/range~Range} [options.resultRange] The range where the selection\n     * should be placed after the insertion. If not specified, the selection will be placed right after\n     * the inserted text.\n     */\n\n  }, {\n    key: \"execute\",\n    value: function execute() {\n      var _this2 = this;\n\n      var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n      var model = this.editor.model;\n      var doc = model.document;\n      var text = options.text || '';\n      var textInsertions = text.length;\n      var range = options.range || doc.selection.getFirstRange();\n      var resultRange = options.resultRange;\n      model.enqueueChange(this._buffer.batch, function (writer) {\n        var isCollapsedRange = range.isCollapsed;\n\n        _this2._buffer.lock();\n\n        model.deleteContent(model.createSelection(range));\n\n        if (text) {\n          model.insertContent(writer.createText(text, doc.selection.getAttributes()), range.start);\n        }\n\n        if (resultRange) {\n          writer.setSelection(resultRange);\n        } else if (isCollapsedRange) {\n          // If range was collapsed just shift the selection by the number of inserted characters.\n          writer.setSelection(range.start.getShiftedBy(textInsertions));\n        }\n\n        _this2._buffer.unlock();\n\n        _this2._buffer.input(textInsertions); // Store the batch as an 'input' batch for the Input.isInput( batch ) check.\n\n\n        _this2._batches.add(_this2._buffer.batch);\n      });\n    }\n  }, {\n    key: \"buffer\",\n    get: function get() {\n      return this._buffer;\n    }\n  }]);\n\n  return InputCommand;\n}(Command);\n\nexport { InputCommand as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/typing\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport Input from \"./input\";\nimport Delete from \"./delete\";\n/**\n * The typing feature. It handles typing.\n *\n * This is a \"glue\" plugin which loads the {@link module:typing/input~Input} and {@link module:typing/delete~Delete}\n * plugins.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Typing = /*#__PURE__*/function (_Plugin) {\n  _inherits(Typing, _Plugin);\n\n  var _super = _createSuper(Typing);\n\n  function Typing() {\n    _classCallCheck(this, Typing);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Typing, null, [{\n    key: \"requires\",\n    get: function get() {\n      return [Input, Delete];\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"pluginName\",\n    get: function get() {\n      return 'Typing';\n    }\n  }]);\n\n  return Typing;\n}(Plugin);\n/**\n * The configuration of the typing features. Used by the features from the `@ckeditor/ckeditor5-typing` package.\n *\n * Read more in {@link module:typing/typing~TypingConfig}.\n *\n * @member {module:typing/typing~TypingConfig} module:core/editor/editorconfig~EditorConfig#typing\n */\n\n/**\n * The configuration of the typing features. Used by the typing features in `@ckeditor/ckeditor5-typing` package.\n *\n *\t\tClassicEditor\n *\t\t\t.create( editorElement, {\n * \t\t\t\ttyping: ... // Typing feature options.\n *\t\t\t} )\n *\t\t\t.then( ... )\n *\t\t\t.catch( ... );\n *\n * See {@link module:core/editor/editorconfig~EditorConfig all editor options}.\n *\n * @interface TypingConfig\n */\n\n/**\n * The granularity of undo/redo for typing and deleting. The value `20` means (more or less) that a new undo step\n * is created every 20 characters are inserted or deleted.\n *\n * @member {Number} [module:typing/typing~TypingConfig#undoStep=20]\n */\n\n\nexport { Typing as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/utils/changebuffer\n */\n\n/**\n * Change buffer allows to group atomic changes (like characters that have been typed) into\n * {@link module:engine/model/batch~Batch batches}.\n *\n * Batches represent single undo steps, hence changes added to one single batch are undone together.\n *\n * The buffer has a configurable limit of atomic changes that it can accommodate. After the limit was\n * exceeded (see {@link ~ChangeBuffer#input}), a new batch is created in {@link ~ChangeBuffer#batch}.\n *\n * To use the change buffer you need to let it know about the number of changes that were added to the batch:\n *\n *\t\tconst buffer = new ChangeBuffer( model, LIMIT );\n *\n *\t\t// Later on in your feature:\n *\t\tbuffer.batch.insert( pos, insertedCharacters );\n *\t\tbuffer.input( insertedCharacters.length );\n *\n */\nvar ChangeBuffer = /*#__PURE__*/function () {\n  /**\n   * Creates a new instance of the change buffer.\n   *\n   * @param {module:engine/model/model~Model} model\n   * @param {Number} [limit=20] The maximum number of atomic changes which can be contained in one batch.\n   */\n  function ChangeBuffer(model) {\n    var _this = this;\n\n    var limit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 20;\n\n    _classCallCheck(this, ChangeBuffer);\n\n    /**\n     * The model instance.\n     *\n     * @readonly\n     * @member {module:engine/model/model~Model} #model\n     */\n    this.model = model;\n    /**\n     * The number of atomic changes in the buffer. Once it exceeds the {@link #limit},\n     * the {@link #batch batch} is set to a new one.\n     *\n     * @readonly\n     * @member {Number} #size\n     */\n\n    this.size = 0;\n    /**\n     * The maximum number of atomic changes which can be contained in one batch.\n     *\n     * @readonly\n     * @member {Number} #limit\n     */\n\n    this.limit = limit;\n    /**\n     * Whether the buffer is locked. A locked buffer cannot be reset unless it gets unlocked.\n     *\n     * @readonly\n     * @member {Boolean} #isLocked\n     */\n\n    this.isLocked = false; // The function to be called in order to notify the buffer about batches which appeared in the document.\n    // The callback will check whether it is a new batch and in that case the buffer will be flushed.\n    //\n    // The reason why the buffer needs to be flushed whenever a new batch appears is that the changes added afterwards\n    // should be added to a new batch. For instance, when the  user types, then inserts an image, and then types again,\n    // the characters typed after inserting the image should be added to a different batch than the characters typed before.\n\n    this._changeCallback = function (evt, batch) {\n      if (batch.type != 'transparent' && batch !== _this._batch) {\n        _this._reset(true);\n      }\n    };\n\n    this._selectionChangeCallback = function () {\n      _this._reset();\n    };\n\n    this.model.document.on('change', this._changeCallback);\n    this.model.document.selection.on('change:range', this._selectionChangeCallback);\n    this.model.document.selection.on('change:attribute', this._selectionChangeCallback);\n    /**\n     * The current batch instance.\n     *\n     * @private\n     * @member #_batch\n     */\n\n    /**\n     * The callback to document the change event which later needs to be removed.\n     *\n     * @private\n     * @member #_changeCallback\n     */\n\n    /**\n     * The callback to document selection `change:attribute` and `change:range` events which resets the buffer.\n     *\n     * @private\n     * @member #_selectionChangeCallback\n     */\n  }\n  /**\n   * The current batch to which a feature should add its operations. Once the {@link #size}\n   * is reached or exceeds the {@link #limit}, the batch is set to a new instance and the size is reset.\n   *\n   * @type {module:engine/model/batch~Batch}\n   */\n\n\n  _createClass(ChangeBuffer, [{\n    key: \"input\",\n\n    /**\n     * The input number of changes into the buffer. Once the {@link #size} is\n     * reached or exceeds the {@link #limit}, the batch is set to a new instance and the size is reset.\n     *\n     * @param {Number} changeCount The number of atomic changes to input.\n     */\n    value: function input(changeCount) {\n      this.size += changeCount;\n\n      if (this.size >= this.limit) {\n        this._reset(true);\n      }\n    }\n    /**\n     * Locks the buffer.\n     */\n\n  }, {\n    key: \"lock\",\n    value: function lock() {\n      this.isLocked = true;\n    }\n    /**\n     * Unlocks the buffer.\n     */\n\n  }, {\n    key: \"unlock\",\n    value: function unlock() {\n      this.isLocked = false;\n    }\n    /**\n     * Destroys the buffer.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.model.document.off('change', this._changeCallback);\n      this.model.document.selection.off('change:range', this._selectionChangeCallback);\n      this.model.document.selection.off('change:attribute', this._selectionChangeCallback);\n    }\n    /**\n     * Resets the change buffer.\n     *\n     * @private\n     * @param {Boolean} [ignoreLock] Whether internal lock {@link #isLocked} should be ignored.\n     */\n\n  }, {\n    key: \"_reset\",\n    value: function _reset(ignoreLock) {\n      if (!this.isLocked || ignoreLock) {\n        this._batch = null;\n        this.size = 0;\n      }\n    }\n  }, {\n    key: \"batch\",\n    get: function get() {\n      if (!this._batch) {\n        this._batch = this.model.createBatch();\n      }\n\n      return this._batch;\n    }\n  }]);\n\n  return ChangeBuffer;\n}();\n\nexport { ChangeBuffer as default };","import \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/utils/getlasttextline\n */\n\n/**\n * Returns the last text line from the given range.\n *\n * \"The last text line\" is understood as text (from one or more text nodes) which is limited either by a parent block\n * or by inline elements (e.g. `<softBreak>`).\n *\n *\t\tconst rangeToCheck = model.createRange(\n *\t\t\tmodel.createPositionAt( paragraph, 0 ),\n *\t\t\tmodel.createPositionAt( paragraph, 'end' )\n *\t\t);\n *\n *\t\tconst { text, range } = getLastTextLine( rangeToCheck, model );\n *\n * For model below, the returned `text` will be \"Foo bar baz\" and `range` will be set on whole `<paragraph>` content:\n *\n *\t\t<paragraph>Foo bar baz<paragraph>\n *\n * However, in below case, `text` will be set to \"baz\" and `range` will be set only on \"baz\".\n *\n *\t\t<paragraph>Foo<softBreak></softBreak>bar<softBreak></softBreak>baz<paragraph>\n *\n * @protected\n * @param {module:engine/model/range~Range} range\n * @param {module:engine/model/model~Model} model\n * @returns {module:typing/utils/getlasttextline~LastTextLineData}\n */\nexport default function getLastTextLine(range, model) {\n  var start = range.start;\n  var text = Array.from(range.getItems()).reduce(function (rangeText, node) {\n    // Trim text to a last occurrence of an inline element and update range start.\n    if (!(node.is('text') || node.is('textProxy'))) {\n      start = model.createPositionAfter(node);\n      return '';\n    }\n\n    return rangeText + node.data;\n  }, '');\n  return {\n    text: text,\n    range: model.createRange(start, range.end)\n  };\n}\n/**\n * The value returned by {@link module:typing/utils/getlasttextline~getLastTextLine}.\n *\n * @typedef {Object} module:typing/utils/getlasttextline~LastTextLineData\n *\n * @property {String} text The text from the text nodes in the last text line.\n * @property {module:engine/model/range~Range} range The range set on the text nodes in the last text line.\n */","import \"core-js/modules/es6.array.find\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/utils/injecttypingmutationshandling\n */\nimport diff from '@ckeditor/ckeditor5-utils/src/diff';\nimport DomConverter from '@ckeditor/ckeditor5-engine/src/view/domconverter';\nimport { getSingleTextNodeChange, containerChildrenMutated } from \"./utils\";\n/**\n * Handles mutations caused by normal typing.\n *\n * @param {module:core/editor/editor~Editor} editor The editor instance.\n */\n\nexport default function injectTypingMutationsHandling(editor) {\n  editor.editing.view.document.on('mutations', function (evt, mutations, viewSelection) {\n    new MutationHandler(editor).handle(mutations, viewSelection);\n  });\n}\n/**\n * Helper class for translating DOM mutations into model changes.\n *\n * @private\n */\n\nvar MutationHandler = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the mutation handler.\n   *\n   * @param {module:core/editor/editor~Editor} editor\n   */\n  function MutationHandler(editor) {\n    _classCallCheck(this, MutationHandler);\n\n    /**\n     * Editor instance for which mutations are handled.\n     *\n     * @readonly\n     * @member {module:core/editor/editor~Editor} #editor\n     */\n    this.editor = editor;\n    /**\n     * The editing controller.\n     *\n     * @readonly\n     * @member {module:engine/controller/editingcontroller~EditingController} #editing\n     */\n\n    this.editing = this.editor.editing;\n  }\n  /**\n   * Handles given mutations.\n   *\n   * @param {Array.<module:engine/view/observer/mutationobserver~MutatedText|\n   * module:engine/view/observer/mutationobserver~MutatedChildren>} mutations\n   * @param {module:engine/view/selection~Selection|null} viewSelection\n   */\n\n\n  _createClass(MutationHandler, [{\n    key: \"handle\",\n    value: function handle(mutations, viewSelection) {\n      if (containerChildrenMutated(mutations)) {\n        this._handleContainerChildrenMutations(mutations, viewSelection);\n      } else {\n        var _iterator = _createForOfIteratorHelper(mutations),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var mutation = _step.value;\n\n            // Fortunately it will never be both.\n            this._handleTextMutation(mutation, viewSelection);\n\n            this._handleTextNodeInsertion(mutation);\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      }\n    }\n    /**\n     * Handles situations when container's children mutated during input. This can happen when\n     * the browser is trying to \"fix\" DOM in certain situations. For example, when the user starts to type\n     * in `<p><a href=\"\"><i>Link{}</i></a></p>`, the browser might change the order of elements\n     * to `<p><i><a href=\"\">Link</a>x{}</i></p>`. A similar situation happens when the spell checker\n     * replaces a word wrapped with `<strong>` with a word wrapped with a `<b>` element.\n     *\n     * To handle such situations, the common DOM ancestor of all mutations is converted to the model representation\n     * and then compared with the current model to calculate the proper text change.\n     *\n     * Note: Single text node insertion is handled in {@link #_handleTextNodeInsertion} and text node mutation is handled\n     * in {@link #_handleTextMutation}).\n     *\n     * @private\n     * @param {Array.<module:engine/view/observer/mutationobserver~MutatedText|\n     * module:engine/view/observer/mutationobserver~MutatedChildren>} mutations\n     * @param {module:engine/view/selection~Selection|null} viewSelection\n     */\n\n  }, {\n    key: \"_handleContainerChildrenMutations\",\n    value: function _handleContainerChildrenMutations(mutations, viewSelection) {\n      // Get common ancestor of all mutations.\n      var mutationsCommonAncestor = getMutationsContainer(mutations); // Quit if there is no common ancestor.\n\n      if (!mutationsCommonAncestor) {\n        return;\n      }\n\n      var domConverter = this.editor.editing.view.domConverter; // Get common ancestor in DOM.\n\n      var domMutationCommonAncestor = domConverter.mapViewToDom(mutationsCommonAncestor); // Create fresh DomConverter so it will not use existing mapping and convert current DOM to model.\n      // This wouldn't be needed if DomConverter would allow to create fresh view without checking any mappings.\n\n      var freshDomConverter = new DomConverter();\n      var modelFromCurrentDom = this.editor.data.toModel(freshDomConverter.domToView(domMutationCommonAncestor)).getChild(0); // Current model.\n\n      var currentModel = this.editor.editing.mapper.toModelElement(mutationsCommonAncestor); // If common ancestor is not mapped, do not do anything. It probably is a parent of another view element.\n      // That means that we would need to diff model elements (see `if` below). Better return early instead of\n      // trying to get a reasonable model ancestor. It will fell into the `if` below anyway.\n      // This situation happens for example for lists. If `<ul>` is a common ancestor, `currentModel` is `undefined`\n      // because `<ul>` is not mapped (`<li>`s are).\n      // See https://github.com/ckeditor/ckeditor5/issues/718.\n\n      if (!currentModel) {\n        return;\n      } // Get children from both ancestors.\n\n\n      var modelFromDomChildren = Array.from(modelFromCurrentDom.getChildren());\n      var currentModelChildren = Array.from(currentModel.getChildren()); // Remove the last `<softBreak>` from the end of `modelFromDomChildren` if there is no `<softBreak>` in current model.\n      // If the described scenario happened, it means that this is a bogus `<br />` added by a browser.\n\n      var lastDomChild = modelFromDomChildren[modelFromDomChildren.length - 1];\n      var lastCurrentChild = currentModelChildren[currentModelChildren.length - 1];\n\n      if (lastDomChild && lastDomChild.is('softBreak') && lastCurrentChild && !lastCurrentChild.is('softBreak')) {\n        modelFromDomChildren.pop();\n      }\n\n      var schema = this.editor.model.schema; // Skip situations when common ancestor has any container elements.\n\n      if (!isSafeForTextMutation(modelFromDomChildren, schema) || !isSafeForTextMutation(currentModelChildren, schema)) {\n        return;\n      } // Replace &nbsp; inserted by the browser with normal space. See comment in `_handleTextMutation`.\n      // Replace non-texts with any character. This is potentially dangerous but passes in manual tests. The thing is\n      // that we need to take care of proper indexes so we cannot simply remove non-text elements from the content.\n      // By inserting a character we keep all the real texts on their indexes.\n\n\n      var newText = modelFromDomChildren.map(function (item) {\n        return item.is('text') ? item.data : '@';\n      }).join('').replace(/\\u00A0/g, ' ');\n      var oldText = currentModelChildren.map(function (item) {\n        return item.is('text') ? item.data : '@';\n      }).join('').replace(/\\u00A0/g, ' '); // Do nothing if mutations created same text.\n\n      if (oldText === newText) {\n        return;\n      }\n\n      var diffResult = diff(oldText, newText);\n\n      var _calculateChanges = calculateChanges(diffResult),\n          firstChangeAt = _calculateChanges.firstChangeAt,\n          insertions = _calculateChanges.insertions,\n          deletions = _calculateChanges.deletions; // Try setting new model selection according to passed view selection.\n\n\n      var modelSelectionRange = null;\n\n      if (viewSelection) {\n        modelSelectionRange = this.editing.mapper.toModelRange(viewSelection.getFirstRange());\n      }\n\n      var insertText = newText.substr(firstChangeAt, insertions);\n      var removeRange = this.editor.model.createRange(this.editor.model.createPositionAt(currentModel, firstChangeAt), this.editor.model.createPositionAt(currentModel, firstChangeAt + deletions));\n      this.editor.execute('input', {\n        text: insertText,\n        range: removeRange,\n        resultRange: modelSelectionRange\n      });\n    }\n    /**\n     * @private\n     */\n\n  }, {\n    key: \"_handleTextMutation\",\n    value: function _handleTextMutation(mutation, viewSelection) {\n      if (mutation.type != 'text') {\n        return;\n      } // Replace &nbsp; inserted by the browser with normal space.\n      // We want only normal spaces in the model and in the view. Renderer and DOM Converter will be then responsible\n      // for rendering consecutive spaces using &nbsp;, but the model and the view has to be clear.\n      // Other feature may introduce inserting non-breakable space on specific key stroke (for example shift + space).\n      // However then it will be handled outside of mutations, like enter key is.\n      // The replacing is here because it has to be done before `diff` and `diffToChanges` functions, as they\n      // take `newText` and compare it to (cleaned up) view.\n      // It could also be done in mutation observer too, however if any outside plugin would like to\n      // introduce additional events for mutations, they would get already cleaned up version (this may be good or not).\n\n\n      var newText = mutation.newText.replace(/\\u00A0/g, ' '); // To have correct `diffResult`, we also compare view node text data with &nbsp; replaced by space.\n\n      var oldText = mutation.oldText.replace(/\\u00A0/g, ' '); // Do nothing if mutations created same text.\n\n      if (oldText === newText) {\n        return;\n      }\n\n      var diffResult = diff(oldText, newText);\n\n      var _calculateChanges2 = calculateChanges(diffResult),\n          firstChangeAt = _calculateChanges2.firstChangeAt,\n          insertions = _calculateChanges2.insertions,\n          deletions = _calculateChanges2.deletions; // Try setting new model selection according to passed view selection.\n\n\n      var modelSelectionRange = null;\n\n      if (viewSelection) {\n        modelSelectionRange = this.editing.mapper.toModelRange(viewSelection.getFirstRange());\n      } // Get the position in view and model where the changes will happen.\n\n\n      var viewPos = this.editing.view.createPositionAt(mutation.node, firstChangeAt);\n      var modelPos = this.editing.mapper.toModelPosition(viewPos);\n      var removeRange = this.editor.model.createRange(modelPos, modelPos.getShiftedBy(deletions));\n      var insertText = newText.substr(firstChangeAt, insertions);\n      this.editor.execute('input', {\n        text: insertText,\n        range: removeRange,\n        resultRange: modelSelectionRange\n      });\n    }\n    /**\n     * @private\n     */\n\n  }, {\n    key: \"_handleTextNodeInsertion\",\n    value: function _handleTextNodeInsertion(mutation) {\n      if (mutation.type != 'children') {\n        return;\n      }\n\n      var change = getSingleTextNodeChange(mutation);\n      var viewPos = this.editing.view.createPositionAt(mutation.node, change.index);\n      var modelPos = this.editing.mapper.toModelPosition(viewPos);\n      var insertedText = change.values[0].data;\n      this.editor.execute('input', {\n        // Replace &nbsp; inserted by the browser with normal space.\n        // See comment in `_handleTextMutation`.\n        // In this case we don't need to do this before `diff` because we diff whole nodes.\n        // Just change &nbsp; in case there are some.\n        text: insertedText.replace(/\\u00A0/g, ' '),\n        range: this.editor.model.createRange(modelPos)\n      });\n    }\n  }]);\n\n  return MutationHandler;\n}(); // Returns first common ancestor of all mutations that is either {@link module:engine/view/containerelement~ContainerElement}\n// or {@link module:engine/view/rootelement~RootElement}.\n//\n// @private\n// @param {Array.<module:engine/view/observer/mutationobserver~MutatedText|\n// module:engine/view/observer/mutationobserver~MutatedChildren>} mutations\n// @returns {module:engine/view/containerelement~ContainerElement|engine/view/rootelement~RootElement|undefined}\n\n\nfunction getMutationsContainer(mutations) {\n  var lca = mutations.map(function (mutation) {\n    return mutation.node;\n  }).reduce(function (commonAncestor, node) {\n    return commonAncestor.getCommonAncestor(node, {\n      includeSelf: true\n    });\n  });\n\n  if (!lca) {\n    return;\n  } // We need to look for container and root elements only, so check all LCA's\n  // ancestors (starting from itself).\n\n\n  return lca.getAncestors({\n    includeSelf: true,\n    parentFirst: true\n  }).find(function (element) {\n    return element.is('containerElement') || element.is('rootElement');\n  });\n} // Returns true if provided array contains content that won't be problematic during diffing and text mutation handling.\n//\n// @param {Array.<module:engine/model/node~Node>} children\n// @param {module:engine/model/schema~Schema} schema\n// @returns {Boolean}\n\n\nfunction isSafeForTextMutation(children, schema) {\n  return children.every(function (child) {\n    return schema.isInline(child);\n  });\n} // Calculates first change index and number of characters that should be inserted and deleted starting from that index.\n//\n// @private\n// @param diffResult\n// @returns {{insertions: number, deletions: number, firstChangeAt: *}}\n\n\nfunction calculateChanges(diffResult) {\n  // Index where the first change happens. Used to set the position from which nodes will be removed and where will be inserted.\n  var firstChangeAt = null; // Index where the last change happens. Used to properly count how many characters have to be removed and inserted.\n\n  var lastChangeAt = null; // Get `firstChangeAt` and `lastChangeAt`.\n\n  for (var i = 0; i < diffResult.length; i++) {\n    var change = diffResult[i];\n\n    if (change != 'equal') {\n      firstChangeAt = firstChangeAt === null ? i : firstChangeAt;\n      lastChangeAt = i;\n    }\n  } // How many characters, starting from `firstChangeAt`, should be removed.\n\n\n  var deletions = 0; // How many characters, starting from `firstChangeAt`, should be inserted.\n\n  var insertions = 0;\n\n  for (var _i = firstChangeAt; _i <= lastChangeAt; _i++) {\n    // If there is no change (equal) or delete, the character is existing in `oldText`. We count it for removing.\n    if (diffResult[_i] != 'insert') {\n      deletions++;\n    } // If there is no change (equal) or insert, the character is existing in `newText`. We count it for inserting.\n\n\n    if (diffResult[_i] != 'delete') {\n      insertions++;\n    }\n  }\n\n  return {\n    insertions: insertions,\n    deletions: deletions,\n    firstChangeAt: firstChangeAt\n  };\n}","import \"core-js/modules/es7.array.includes\";\nimport \"core-js/modules/es6.string.includes\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/utils/injectunsafekeystrokeshandling\n */\nimport { getCode } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport env from '@ckeditor/ckeditor5-utils/src/env';\n/**\n * Handles keystrokes which are unsafe for typing. This handler's logic is explained\n * in https://github.com/ckeditor/ckeditor5-typing/issues/83#issuecomment-398690251.\n *\n * @param {module:core/editor/editor~Editor} editor The editor instance.\n */\n\nexport default function injectUnsafeKeystrokesHandling(editor) {\n  var latestCompositionSelection = null;\n  var model = editor.model;\n  var view = editor.editing.view;\n  var inputCommand = editor.commands.get('input'); // For Android, we want to handle keystrokes on `beforeinput` to be sure that code in `DeleteObserver` already had a chance to be fired.\n\n  if (env.isAndroid) {\n    view.document.on('beforeinput', function (evt, evtData) {\n      return handleUnsafeKeystroke(evtData);\n    }, {\n      priority: 'lowest'\n    });\n  } else {\n    view.document.on('keydown', function (evt, evtData) {\n      return handleUnsafeKeystroke(evtData);\n    }, {\n      priority: 'lowest'\n    });\n  }\n\n  view.document.on('compositionstart', handleCompositionStart, {\n    priority: 'lowest'\n  });\n  view.document.on('compositionend', function () {\n    latestCompositionSelection = model.createSelection(model.document.selection);\n  }, {\n    priority: 'lowest'\n  }); // Handles the keydown event. We need to guess whether such keystroke is going to result\n  // in typing. If so, then before character insertion happens, any selected content needs\n  // to be deleted. Otherwise the default browser deletion mechanism would be\n  // triggered, resulting in:\n  //\n  // * Hundreds of mutations which could not be handled.\n  // * But most importantly, loss of control over how the content is being deleted.\n  //\n  // The method is used in a low-priority listener, hence allowing other listeners (e.g. delete or enter features)\n  // to handle the event.\n  //\n  // @param {module:engine/view/observer/keyobserver~KeyEventData} evtData\n\n  function handleUnsafeKeystroke(evtData) {\n    var doc = model.document;\n    var isComposing = view.document.isComposing;\n    var isSelectionUnchanged = latestCompositionSelection && latestCompositionSelection.isEqual(doc.selection); // Reset stored composition selection.\n\n    latestCompositionSelection = null; // By relying on the state of the input command we allow disabling the entire input easily\n    // by just disabling the input command. We could’ve used here the delete command but that\n    // would mean requiring the delete feature which would block loading one without the other.\n    // We could also check the editor.isReadOnly property, but that wouldn't allow to block\n    // the input without blocking other features.\n\n    if (!inputCommand.isEnabled) {\n      return;\n    }\n\n    if (isSafeKeystroke(evtData) || doc.selection.isCollapsed) {\n      return;\n    } // If during composition, deletion should be prevented as it may remove composed sequence (#83).\n\n\n    if (isComposing && evtData.keyCode === 229) {\n      return;\n    } // If there is a `keydown` event fired with '229' keycode it might be related\n    // to recent composition. Check if selection is the same as upon ending recent composition,\n    // if so do not remove selected content as it will remove composed sequence (#83).\n\n\n    if (!isComposing && evtData.keyCode === 229 && isSelectionUnchanged) {\n      return;\n    }\n\n    deleteSelectionContent();\n  } // Handles the `compositionstart` event. It is used only in special cases to remove the contents\n  // of a non-collapsed selection so composition itself does not result in complex mutations.\n  //\n  // The special case mentioned above is a situation in which the `keydown` event is fired after\n  // `compositionstart` event. In such cases {@link #handleKeydown} cannot clear current selection\n  // contents (because it is too late and will break the composition) so the composition handler takes care of it.\n\n\n  function handleCompositionStart() {\n    var doc = model.document;\n    var isFlatSelection = doc.selection.rangeCount === 1 ? doc.selection.getFirstRange().isFlat : true; // If on `compositionstart` there is a non-collapsed selection which start and end have different parents\n    // it means the `handleKeydown()` method did not remove its contents. It happens usually because\n    // of different order of events (`compositionstart` before `keydown` - in Safari). In such cases\n    // we need to remove selection contents on composition start (#83).\n\n    if (doc.selection.isCollapsed || isFlatSelection) {\n      return;\n    }\n\n    deleteSelectionContent();\n  }\n\n  function deleteSelectionContent() {\n    var buffer = inputCommand.buffer;\n    buffer.lock();\n    model.enqueueChange(buffer.batch, function () {\n      model.deleteContent(model.document.selection);\n    });\n    buffer.unlock();\n  }\n}\nvar safeKeycodes = [getCode('arrowUp'), getCode('arrowRight'), getCode('arrowDown'), getCode('arrowLeft'), 9, // Tab\n16, // Shift\n17, // Ctrl\n18, // Alt\n19, // Pause\n20, // CapsLock\n27, // Escape\n33, // PageUp\n34, // PageDown\n35, // Home\n36, // End,\n45, // Insert,\n91, // Windows,\n93, // Menu key,\n144, // NumLock\n145, // ScrollLock,\n173, // Mute/Unmute\n174, // Volume up\n175, // Volume down,\n176, // Next song,\n177, // Previous song,\n178, // Stop,\n179, // Play/Pause,\n255 // Display brightness (increase and decrease)\n]; // Function keys.\n\nfor (var code = 112; code <= 135; code++) {\n  safeKeycodes.push(code);\n} // Returns `true` if a keystroke should not cause any content change caused by \"typing\".\n//\n// Note: This implementation is very simple and will need to be refined with time.\n//\n// @private\n// @param {engine.view.observer.keyObserver.KeyEventData} keyData\n// @returns {Boolean}\n\n\nfunction isSafeKeystroke(keyData) {\n  // Keystrokes which contain Ctrl don't represent typing.\n  if (keyData.ctrlKey) {\n    return true;\n  }\n\n  return safeKeycodes.includes(keyData.keyCode);\n}","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/web.dom.iterable\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module typing/utils/utils\n */\nimport diff from '@ckeditor/ckeditor5-utils/src/diff';\nimport diffToChanges from '@ckeditor/ckeditor5-utils/src/difftochanges';\n/**\n * Returns true if container children have mutated or more than a single text node was changed.\n *\n * @private\n * @param {Array.<module:engine/view/observer/mutationobserver~MutatedText|\n * module:engine/view/observer/mutationobserver~MutatedChildren>} mutations\n * @returns {Boolean}\n */\n\nexport function containerChildrenMutated(mutations) {\n  if (mutations.length == 0) {\n    return false;\n  } // Check if there is any mutation of `children` type or any mutation that changes more than one text node.\n\n\n  var _iterator = _createForOfIteratorHelper(mutations),\n      _step;\n\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var mutation = _step.value;\n\n      if (mutation.type === 'children' && !getSingleTextNodeChange(mutation)) {\n        return true;\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n\n  return false;\n}\n/**\n * Returns change made to a single text node.\n *\n * @private\n * @param {module:engine/view/observer/mutationobserver~MutatedText|\n * module:engine/view/observer/mutationobserver~MutatedChildren} mutation\n * @returns {Object|undefined} Change object (see {@link module:utils/difftochanges~diffToChanges} output)\n * or undefined if more than a single text node was changed.\n */\n\nexport function getSingleTextNodeChange(mutation) {\n  // One new node.\n  if (mutation.newChildren.length - mutation.oldChildren.length != 1) {\n    return;\n  } // Which is text.\n\n\n  var diffResult = diff(mutation.oldChildren, mutation.newChildren, compareChildNodes);\n  var changes = diffToChanges(diffResult, mutation.newChildren); // In case of [ delete, insert, insert ] the previous check will not exit.\n\n  if (changes.length > 1) {\n    return;\n  }\n\n  var change = changes[0]; // Which is text.\n\n  if (!(!!change.values[0] && change.values[0].is('text'))) {\n    return;\n  }\n\n  return change;\n}\n/**\n * Checks whether two view nodes are identical, which means they are the same object\n * or contain exactly same data (in case of text nodes).\n *\n * @private\n * @param {module:engine/view/node~Node} oldChild\n * @param {module:engine/view/node~Node} newChild\n * @returns {Boolean}\n */\n\nexport function compareChildNodes(oldChild, newChild) {\n  if (!!oldChild && oldChild.is('text') && !!newChild && newChild.is('text')) {\n    return oldChild.data === newChild.data;\n  } else {\n    return oldChild === newChild;\n  }\n}","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/bindings/clickoutsidehandler\n */\n\n/* global document */\n\n/**\n * Handles clicking **outside** of a specified set of elements, then fires an action.\n *\n * **Note**: Actually, the action is executed upon `mousedown`, not `click`. It prevents\n * certain issues when the user keeps holding the mouse button and the UI cannot react\n * properly.\n *\n * @param {Object} options Configuration options.\n * @param {module:utils/dom/emittermixin~Emitter} options.emitter The emitter to which this behavior\n * should be added.\n * @param {Function} options.activator Function returning a `Boolean`, to determine whether the handler is active.\n * @param {Array.<HTMLElement>} options.contextElements HTML elements that determine the scope of the\n * handler. Clicking any of them or their descendants will **not** fire the callback.\n * @param {Function} options.callback An action executed by the handler.\n */\nexport default function clickOutsideHandler(_ref) {\n  var emitter = _ref.emitter,\n      activator = _ref.activator,\n      callback = _ref.callback,\n      contextElements = _ref.contextElements;\n  emitter.listenTo(document, 'mousedown', function (evt, _ref2) {\n    var target = _ref2.target;\n\n    if (!activator()) {\n      return;\n    }\n\n    var _iterator = _createForOfIteratorHelper(contextElements),\n        _step;\n\n    try {\n      for (_iterator.s(); !(_step = _iterator.n()).done;) {\n        var contextElement = _step.value;\n\n        if (contextElement.contains(target)) {\n          return;\n        }\n      }\n    } catch (err) {\n      _iterator.e(err);\n    } finally {\n      _iterator.f();\n    }\n\n    callback();\n  });\n}","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/bindings/preventdefault\n */\n\n/**\n * A helper which executes a native `Event.preventDefault()` if the target of an event equals the\n * {@link module:ui/view~View#element element of the view}. It shortens the definition of a\n * {@link module:ui/view~View#template template}.\n *\n *\t\t// In a class extending View.\n *\t\timport preventDefault from '@ckeditor/ckeditor5-ui/src/bindings/preventdefault';\n *\n *\t\t// ...\n *\n *\t\tthis.setTemplate( {\n *\t\t\ttag: 'div',\n *\n *\t\t\ton: {\n *\t\t\t\t// Prevent the default mousedown action on this view.\n *\t\t\t\tmousedown: preventDefault( this )\n *\t\t\t}\n *\t\t} );\n *\n * @param {module:ui/view~View} view View instance that defines the template.\n * @returns {module:ui/template~TemplateToBinding}\n */\nexport default function preventDefault(view) {\n  return view.bindTemplate.to(function (evt) {\n    if (evt.target === view.element) {\n      evt.preventDefault();\n    }\n  });\n}","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/bindings/submithandler\n */\n\n/**\n * A handler useful for {@link module:ui/view~View views} working as HTML forms. It intercepts a native DOM\n * `submit` event, prevents the default web browser behavior (navigation and page reload) and\n * fires the `submit` event on a view instead. Such a custom event can be then used by any\n * {@link module:utils/dom/emittermixin~Emitter emitter}, e.g. to serialize the form data.\n *\n *\t\timport submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';\n *\n *\t\t// ...\n *\n *\t\tclass AnyFormView extends View {\n *\t\t\tconstructor() {\n *\t\t\t\tsuper();\n *\n *\t\t\t\t// ...\n *\n *\t\t\t\tsubmitHandler( {\n *\t\t\t\t\tview: this\n *\t\t\t\t} );\n *\t\t\t}\n *\t\t}\n *\n *\t\t// ...\n *\n *\t\tconst view = new AnyFormView();\n *\n *\t\t// A sample listener attached by an emitter working with the view.\n *\t\tthis.listenTo( view, 'submit', () => {\n *\t\t\tsaveTheFormData();\n *\t\t\thideTheForm();\n *\t\t} );\n *\n * @param {Object} [options] Configuration options.\n * @param {module:ui/view~View} options.view The view which DOM `submit` events should be handled.\n */\nexport default function submitHandler(_ref) {\n  var view = _ref.view;\n  view.listenTo(view.element, 'submit', function (evt, domEvt) {\n    domEvt.preventDefault();\n    view.fire('submit');\n  }, {\n    useCapture: true\n  });\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/button/buttonview\n */\nimport View from \"../view\";\nimport IconView from \"../icon/iconview\";\nimport TooltipView from \"../tooltip/tooltipview\";\nimport uid from '@ckeditor/ckeditor5-utils/src/uid';\nimport { getEnvKeystrokeText } from '@ckeditor/ckeditor5-utils/src/keyboard';\nimport \"../../theme/components/button/button.css\";\n/**\n * The button view class.\n *\n *\t\tconst view = new ButtonView();\n *\n *\t\tview.set( {\n *\t\t\tlabel: 'A button',\n *\t\t\tkeystroke: 'Ctrl+B',\n *\t\t\ttooltip: true,\n *\t\t\twithText: true\n *\t\t} );\n *\n *\t\tview.render();\n *\n *\t\tdocument.body.append( view.element );\n *\n * @extends module:ui/view~View\n * @implements module:ui/button/button~Button\n */\n\nvar ButtonView = /*#__PURE__*/function (_View) {\n  _inherits(ButtonView, _View);\n\n  var _super = _createSuper(ButtonView);\n\n  /**\n   * @inheritDoc\n   */\n  function ButtonView(locale) {\n    var _this;\n\n    _classCallCheck(this, ButtonView);\n\n    _this = _super.call(this, locale);\n    var bind = _this.bindTemplate;\n    var ariaLabelUid = uid(); // Implement the Button interface.\n\n    _this.set('class');\n\n    _this.set('labelStyle');\n\n    _this.set('icon');\n\n    _this.set('isEnabled', true);\n\n    _this.set('isOn', false);\n\n    _this.set('isVisible', true);\n\n    _this.set('isToggleable', false);\n\n    _this.set('keystroke');\n\n    _this.set('label');\n\n    _this.set('tabindex', -1);\n\n    _this.set('tooltip');\n\n    _this.set('tooltipPosition', 's');\n\n    _this.set('type', 'button');\n\n    _this.set('withText', false);\n    /**\n     * Collection of the child views inside of the button {@link #element}.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n\n    _this.children = _this.createCollection();\n    /**\n     * Tooltip of the button view. It is configurable using the {@link #tooltip tooltip attribute}.\n     *\n     * @readonly\n     * @member {module:ui/tooltip/tooltipview~TooltipView} #tooltipView\n     */\n\n    _this.tooltipView = _this._createTooltipView();\n    /**\n     * Label of the button view. It is configurable using the {@link #label label attribute}.\n     *\n     * @readonly\n     * @member {module:ui/view~View} #labelView\n     */\n\n    _this.labelView = _this._createLabelView(ariaLabelUid);\n    /**\n     * The icon view of the button. Will be added to {@link #children} when the\n     * {@link #icon icon attribute} is defined.\n     *\n     * @readonly\n     * @member {module:ui/icon/iconview~IconView} #iconView\n     */\n\n    _this.iconView = new IconView();\n\n    _this.iconView.extendTemplate({\n      attributes: {\n        class: 'ck-button__icon'\n      }\n    });\n    /**\n     * Tooltip of the button bound to the template.\n     *\n     * @see #tooltip\n     * @see #_getTooltipString\n     * @private\n     * @observable\n     * @member {Boolean} #_tooltipString\n     */\n\n\n    _this.bind('_tooltipString').to(_assertThisInitialized(_this), 'tooltip', _assertThisInitialized(_this), 'label', _assertThisInitialized(_this), 'keystroke', _this._getTooltipString.bind(_assertThisInitialized(_this)));\n\n    _this.setTemplate({\n      tag: 'button',\n      attributes: {\n        class: ['ck', 'ck-button', bind.to('class'), bind.if('isEnabled', 'ck-disabled', function (value) {\n          return !value;\n        }), bind.if('isVisible', 'ck-hidden', function (value) {\n          return !value;\n        }), bind.to('isOn', function (value) {\n          return value ? 'ck-on' : 'ck-off';\n        }), bind.if('withText', 'ck-button_with-text')],\n        type: bind.to('type', function (value) {\n          return value ? value : 'button';\n        }),\n        tabindex: bind.to('tabindex'),\n        'aria-labelledby': \"ck-editor__aria-label_\".concat(ariaLabelUid),\n        'aria-disabled': bind.if('isEnabled', true, function (value) {\n          return !value;\n        }),\n        'aria-pressed': bind.to('isOn', function (value) {\n          return _this.isToggleable ? String(value) : false;\n        })\n      },\n      children: _this.children,\n      on: {\n        mousedown: bind.to(function (evt) {\n          evt.preventDefault();\n        }),\n        click: bind.to(function (evt) {\n          // We can't make the button disabled using the disabled attribute, because it won't be focusable.\n          // Though, shouldn't this condition be moved to the button controller?\n          if (_this.isEnabled) {\n            _this.fire('execute');\n          } else {\n            // Prevent the default when button is disabled, to block e.g.\n            // automatic form submitting. See ckeditor/ckeditor5-link#74.\n            evt.preventDefault();\n          }\n        })\n      }\n    });\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ButtonView, [{\n    key: \"render\",\n    value: function render() {\n      _get(_getPrototypeOf(ButtonView.prototype), \"render\", this).call(this);\n\n      if (this.icon) {\n        this.iconView.bind('content').to(this, 'icon');\n        this.children.add(this.iconView);\n      }\n\n      this.children.add(this.tooltipView);\n      this.children.add(this.labelView);\n    }\n    /**\n     * Focuses the {@link #element} of the button.\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this.element.focus();\n    }\n    /**\n     * Creates a {@link module:ui/tooltip/tooltipview~TooltipView} instance and binds it with button\n     * attributes.\n     *\n     * @private\n     * @returns {module:ui/tooltip/tooltipview~TooltipView}\n     */\n\n  }, {\n    key: \"_createTooltipView\",\n    value: function _createTooltipView() {\n      var tooltipView = new TooltipView();\n      tooltipView.bind('text').to(this, '_tooltipString');\n      tooltipView.bind('position').to(this, 'tooltipPosition');\n      return tooltipView;\n    }\n    /**\n     * Creates a label view instance and binds it with button attributes.\n     *\n     * @private\n     * @param {String} ariaLabelUid The aria label UID.\n     * @returns {module:ui/view~View}\n     */\n\n  }, {\n    key: \"_createLabelView\",\n    value: function _createLabelView(ariaLabelUid) {\n      var labelView = new View();\n      var bind = this.bindTemplate;\n      labelView.setTemplate({\n        tag: 'span',\n        attributes: {\n          class: ['ck', 'ck-button__label'],\n          style: bind.to('labelStyle'),\n          id: \"ck-editor__aria-label_\".concat(ariaLabelUid)\n        },\n        children: [{\n          text: this.bindTemplate.to('label')\n        }]\n      });\n      return labelView;\n    }\n    /**\n     * Gets the text for the {@link #tooltipView} from the combination of\n     * {@link #tooltip}, {@link #label} and {@link #keystroke} attributes.\n     *\n     * @private\n     * @see #tooltip\n     * @see #_tooltipString\n     * @param {Boolean|String|Function} tooltip Button tooltip.\n     * @param {String} label Button label.\n     * @param {String} keystroke Button keystroke.\n     * @returns {String}\n     */\n\n  }, {\n    key: \"_getTooltipString\",\n    value: function _getTooltipString(tooltip, label, keystroke) {\n      if (tooltip) {\n        if (typeof tooltip == 'string') {\n          return tooltip;\n        } else {\n          if (keystroke) {\n            keystroke = getEnvKeystrokeText(keystroke);\n          }\n\n          if (tooltip instanceof Function) {\n            return tooltip(label, keystroke);\n          } else {\n            return \"\".concat(label).concat(keystroke ? \" (\".concat(keystroke, \")\") : '');\n          }\n        }\n      }\n\n      return '';\n    }\n  }]);\n\n  return ButtonView;\n}(View);\n\nexport { ButtonView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/button/switchbuttonview\n */\nimport View from \"../view\";\nimport ButtonView from \"./buttonview\";\nimport \"../../theme/components/button/switchbutton.css\";\n/**\n * The switch button view class.\n *\n *\t\tconst view = new SwitchButtonView();\n *\n *\t\tview.set( {\n *\t\t\twithText: true,\n *\t\t\tlabel: 'Switch me!'\n *\t\t} );\n *\n *\t\tview.render();\n *\n *\t\tdocument.body.append( view.element );\n *\n * @extends module:ui/button/buttonview~ButtonView\n */\n\nvar SwitchButtonView = /*#__PURE__*/function (_ButtonView) {\n  _inherits(SwitchButtonView, _ButtonView);\n\n  var _super = _createSuper(SwitchButtonView);\n\n  /**\n   * @inheritDoc\n   */\n  function SwitchButtonView(locale) {\n    var _this;\n\n    _classCallCheck(this, SwitchButtonView);\n\n    _this = _super.call(this, locale);\n    _this.isToggleable = true;\n    /**\n     * The toggle switch of the button.\n     *\n     * @readonly\n     * @member {module:ui/view~View} #toggleSwitchView\n     */\n\n    _this.toggleSwitchView = _this._createToggleView();\n\n    _this.extendTemplate({\n      attributes: {\n        class: 'ck-switchbutton'\n      }\n    });\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(SwitchButtonView, [{\n    key: \"render\",\n    value: function render() {\n      _get(_getPrototypeOf(SwitchButtonView.prototype), \"render\", this).call(this);\n\n      this.children.add(this.toggleSwitchView);\n    }\n    /**\n     * Creates a toggle child view.\n     *\n     * @private\n     * @returns {module:ui/view~View}\n     */\n\n  }, {\n    key: \"_createToggleView\",\n    value: function _createToggleView() {\n      var toggleSwitchView = new View();\n      toggleSwitchView.setTemplate({\n        tag: 'span',\n        attributes: {\n          class: ['ck', 'ck-button__toggle']\n        },\n        children: [{\n          tag: 'span',\n          attributes: {\n            class: ['ck', 'ck-button__toggle__inner']\n          }\n        }]\n      });\n      return toggleSwitchView;\n    }\n  }]);\n\n  return SwitchButtonView;\n}(ButtonView);\n\nexport { SwitchButtonView as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorgrid/colorgrid\n */\nimport View from \"../view\";\nimport ColorTileView from \"./colortileview\";\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from \"../focuscycler\";\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport \"../../theme/components/colorgrid/colorgrid.css\";\n/**\n * A grid of {@link module:ui/colorgrid/colortile~ColorTileView color tiles}.\n *\n * @extends module:ui/view~View\n */\n\nvar ColorGridView = /*#__PURE__*/function (_View) {\n  _inherits(ColorGridView, _View);\n\n  var _super = _createSuper(ColorGridView);\n\n  /**\n   * Creates an instance of a color grid containing {@link module:ui/colorgrid/colortile~ColorTileView tiles}.\n   *\n   * @param {module:utils/locale~Locale} [locale] The localization services instance.\n   * @param {Object} options Component configuration\n   * @param {Array.<module:ui/colorgrid/colorgrid~ColorDefinition>} [options.colorDefinitions] Array with definitions\n   * required to create the {@link module:ui/colorgrid/colortile~ColorTileView tiles}.\n   * @param {Number} options.columns A number of columns to display the tiles.\n   */\n  function ColorGridView(locale, options) {\n    var _this;\n\n    _classCallCheck(this, ColorGridView);\n\n    _this = _super.call(this, locale);\n    var colorDefinitions = options && options.colorDefinitions || [];\n    var viewStyleAttribute = {};\n\n    if (options && options.columns) {\n      viewStyleAttribute.gridTemplateColumns = \"repeat( \".concat(options.columns, \", 1fr)\");\n    }\n    /**\n     * The color of the currently selected color tile in {@link #items}.\n     *\n     * @observable\n     * @type {String}\n     */\n\n\n    _this.set('selectedColor');\n    /**\n     * Collection of the child tile views.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n\n    _this.items = _this.createCollection();\n    /**\n     * Tracks information about DOM focus in the grid.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n\n    _this.focusTracker = new FocusTracker();\n    /**\n     * Instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n\n    _this.keystrokes = new KeystrokeHandler();\n    /**\n     * Helps cycling over focusable {@link #items} in the grid.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\n     */\n\n    _this._focusCycler = new FocusCycler({\n      focusables: _this.items,\n      focusTracker: _this.focusTracker,\n      keystrokeHandler: _this.keystrokes,\n      actions: {\n        // Navigate grid items backwards using the arrowup key.\n        focusPrevious: 'arrowleft',\n        // Navigate grid items forwards using the arrowdown key.\n        focusNext: 'arrowright'\n      }\n    });\n\n    _this.items.on('add', function (evt, colorTile) {\n      colorTile.isOn = colorTile.color === _this.selectedColor;\n    });\n\n    colorDefinitions.forEach(function (item) {\n      var colorTile = new ColorTileView();\n      colorTile.set({\n        color: item.color,\n        label: item.label,\n        tooltip: true,\n        hasBorder: item.options.hasBorder\n      });\n      colorTile.on('execute', function () {\n        _this.fire('execute', {\n          value: item.color,\n          hasBorder: item.options.hasBorder,\n          label: item.label\n        });\n      });\n\n      _this.items.add(colorTile);\n    });\n\n    _this.setTemplate({\n      tag: 'div',\n      children: _this.items,\n      attributes: {\n        class: ['ck', 'ck-color-grid'],\n        style: viewStyleAttribute\n      }\n    });\n\n    _this.on('change:selectedColor', function (evt, name, selectedColor) {\n      var _iterator = _createForOfIteratorHelper(_this.items),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var item = _step.value;\n          item.isOn = item.color === selectedColor;\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    });\n\n    return _this;\n  }\n  /**\n   * Focuses the first focusable in {@link #items}.\n   */\n\n\n  _createClass(ColorGridView, [{\n    key: \"focus\",\n    value: function focus() {\n      if (this.items.length) {\n        this.items.first.focus();\n      }\n    }\n    /**\n     * Focuses the last focusable in {@link #items}.\n     */\n\n  }, {\n    key: \"focusLast\",\n    value: function focusLast() {\n      if (this.items.length) {\n        this.items.last.focus();\n      }\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      _get(_getPrototypeOf(ColorGridView.prototype), \"render\", this).call(this); // Items added before rendering should be known to the #focusTracker.\n\n\n      var _iterator2 = _createForOfIteratorHelper(this.items),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var item = _step2.value;\n          this.focusTracker.add(item.element);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      this.items.on('add', function (evt, item) {\n        _this2.focusTracker.add(item.element);\n      });\n      this.items.on('remove', function (evt, item) {\n        _this2.focusTracker.remove(item.element);\n      }); // Start listening for the keystrokes coming from #element.\n\n      this.keystrokes.listenTo(this.element);\n    }\n  }]);\n\n  return ColorGridView;\n}(View);\n/**\n * A color definition used to create a {@link module:ui/colorgrid/colortile~ColorTileView}.\n *\n *\t\t{\n *\t\t\tcolor: hsl(0, 0%, 75%),\n *\t\t\tlabel: 'Light Grey',\n *\t\t\toptions: {\n *\t\t\t\thasBorder: true\n *\t\t\t}\n *\t\t}\n *\n * @typedef {Object} module:ui/colorgrid/colorgrid~ColorDefinition\n * @type Object\n *\n * @property {String} color String representing a color.\n * It is used as value of background-color style in {@link module:ui/colorgrid/colortile~ColorTileView}.\n * @property {String} label String used as label for {@link module:ui/colorgrid/colortile~ColorTileView}.\n * @property {Object} options Additional options passed to create a {@link module:ui/colorgrid/colortile~ColorTileView}.\n * @property {Boolean} options.hasBorder A flag that indicates if special a CSS class should be added\n * to {@link module:ui/colorgrid/colortile~ColorTileView}, which renders a border around it.\n */\n\n\nexport { ColorGridView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/colorgrid/colortile\n */\nimport ButtonView from \"../button/buttonview\";\nimport checkIcon from \"../../theme/icons/color-tile-check.svg\";\n/**\n * This class represents a single color tile in the {@link module:ui/colorgrid/colorgrid~ColorGridView}.\n *\n * @extends module:ui/button/buttonview~ButtonView\n */\n\nvar ColorTileView = /*#__PURE__*/function (_ButtonView) {\n  _inherits(ColorTileView, _ButtonView);\n\n  var _super = _createSuper(ColorTileView);\n\n  function ColorTileView(locale) {\n    var _this;\n\n    _classCallCheck(this, ColorTileView);\n\n    _this = _super.call(this, locale);\n    var bind = _this.bindTemplate;\n    /**\n     * String representing a color shown as tile's background.\n     *\n     * @type {String}\n     */\n\n    _this.set('color');\n    /**\n     * A flag that toggles a special CSS class responsible for displaying\n     * a border around the button.\n     *\n     * @type {Boolean}\n     */\n\n\n    _this.set('hasBorder');\n\n    _this.icon = checkIcon;\n\n    _this.extendTemplate({\n      attributes: {\n        style: {\n          backgroundColor: bind.to('color')\n        },\n        class: ['ck', 'ck-color-grid__tile', bind.if('hasBorder', 'ck-color-table__color-tile_bordered')]\n      }\n    });\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ColorTileView, [{\n    key: \"render\",\n    value: function render() {\n      _get(_getPrototypeOf(ColorTileView.prototype), \"render\", this).call(this);\n\n      this.iconView.fillColor = 'hsl(0, 0%, 100%)';\n    }\n  }]);\n\n  return ColorTileView;\n}(ButtonView);\n\nexport { ColorTileView as default };","import \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"regenerator-runtime/runtime\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.map\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/componentfactory\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\n/**\n * A helper class implementing the UI component ({@link module:ui/view~View view}) factory.\n *\n * It allows functions producing specific UI components to be registered under their unique names\n * in the factory. A registered component can be then instantiated by providing its name.\n * Note that names are case insensitive.\n *\n *\t\t// The editor provides localization tools for the factory.\n *\t\tconst factory = new ComponentFactory( editor );\n *\n *\t\tfactory.add( 'foo', locale => new FooView( locale ) );\n *\t\tfactory.add( 'bar', locale => new BarView( locale ) );\n *\n *\t\t// An instance of FooView.\n *\t\tconst fooInstance = factory.create( 'foo' );\n *\n *\t\t// Names are case insensitive so this is also allowed:\n *\t\tconst barInstance = factory.create( 'Bar' );\n *\n * The {@link module:core/editor/editor~Editor#locale editor locale} is passed to the factory\n * function when {@link module:ui/componentfactory~ComponentFactory#create} is called.\n */\n\nvar ComponentFactory = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the factory.\n   *\n   * @constructor\n   * @param {module:core/editor/editor~Editor} editor The editor instance.\n   */\n  function ComponentFactory(editor) {\n    _classCallCheck(this, ComponentFactory);\n\n    /**\n     * The editor instance that the factory belongs to.\n     *\n     * @readonly\n     * @member {module:core/editor/editor~Editor}\n     */\n    this.editor = editor;\n    /**\n     * Registered component factories.\n     *\n     * @private\n     * @member {Map}\n     */\n\n    this._components = new Map();\n  }\n  /**\n   * Returns an iterator of registered component names. Names are returned in lower case.\n   *\n   * @returns {Iterable.<String>}\n   */\n\n\n  _createClass(ComponentFactory, [{\n    key: \"names\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function names() {\n      var _iterator, _step, value;\n\n      return regeneratorRuntime.wrap(function names$(_context) {\n        while (1) {\n          switch (_context.prev = _context.next) {\n            case 0:\n              _iterator = _createForOfIteratorHelper(this._components.values());\n              _context.prev = 1;\n\n              _iterator.s();\n\n            case 3:\n              if ((_step = _iterator.n()).done) {\n                _context.next = 9;\n                break;\n              }\n\n              value = _step.value;\n              _context.next = 7;\n              return value.originalName;\n\n            case 7:\n              _context.next = 3;\n              break;\n\n            case 9:\n              _context.next = 14;\n              break;\n\n            case 11:\n              _context.prev = 11;\n              _context.t0 = _context[\"catch\"](1);\n\n              _iterator.e(_context.t0);\n\n            case 14:\n              _context.prev = 14;\n\n              _iterator.f();\n\n              return _context.finish(14);\n\n            case 17:\n            case \"end\":\n              return _context.stop();\n          }\n        }\n      }, names, this, [[1, 11, 14, 17]]);\n    })\n    /**\n     * Registers a component factory function that will be used by the\n     * {@link #create create} method and called with the\n     * {@link module:core/editor/editor~Editor#locale editor locale} as an argument,\n     * allowing localization of the {@link module:ui/view~View view}.\n     *\n     * @param {String} name The name of the component.\n     * @param {Function} callback The callback that returns the component.\n     */\n\n  }, {\n    key: \"add\",\n    value: function add(name, callback) {\n      if (this.has(name)) {\n        /**\n         * The item already exists in the component factory.\n         *\n         * @error componentfactory-item-exists\n         * @param {String} name The name of the component.\n         */\n        throw new CKEditorError('componentfactory-item-exists: The item already exists in the component factory.', this, {\n          name: name\n        });\n      }\n\n      this._components.set(getNormalized(name), {\n        callback: callback,\n        originalName: name\n      });\n    }\n    /**\n     * Creates an instance of a component registered in the factory under a specific name.\n     *\n     * When called, the {@link module:core/editor/editor~Editor#locale editor locale} is passed to\n     * the previously {@link #add added} factory function, allowing localization of the\n     * {@link module:ui/view~View view}.\n     *\n     * @param {String} name The name of the component.\n     * @returns {module:ui/view~View} The instantiated component view.\n     */\n\n  }, {\n    key: \"create\",\n    value: function create(name) {\n      if (!this.has(name)) {\n        /**\n         * The required component is not registered in the component factory. Please make sure\n         * the provided name is correct and the component has been correctly\n         * {@link #add added} to the factory.\n         *\n         * @error componentfactory-item-missing\n         * @param {String} name The name of the missing component.\n         */\n        throw new CKEditorError('componentfactory-item-missing: The required component is not registered in the factory.', this, {\n          name: name\n        });\n      }\n\n      return this._components.get(getNormalized(name)).callback(this.editor.locale);\n    }\n    /**\n     * Checks if a component of a given name is registered in the factory.\n     *\n     * @param {String} name The name of the component.\n     * @returns {Boolean}\n     */\n\n  }, {\n    key: \"has\",\n    value: function has(name) {\n      return this._components.has(getNormalized(name));\n    }\n  }]);\n\n  return ComponentFactory;\n}(); //\n// Ensures that the component name used as the key in the internal map is in lower case.\n//\n// @private\n// @param {String} name\n// @returns {String}\n\n\nexport { ComponentFactory as default };\n\nfunction getNormalized(name) {\n  return String(name).toLowerCase();\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/dropdown/button/dropdownbuttonview\n */\nimport ButtonView from \"../../button/buttonview\";\nimport dropdownArrowIcon from \"../../../theme/icons/dropdown-arrow.svg\";\nimport IconView from \"../../icon/iconview\";\n/**\n * The default dropdown button view class.\n *\n *\t\tconst view = new DropdownButtonView();\n *\n *\t\tview.set( {\n *\t\t\tlabel: 'A button',\n *\t\t\tkeystroke: 'Ctrl+B',\n *\t\t\ttooltip: true\n *\t\t} );\n *\n *\t\tview.render();\n *\n *\t\tdocument.body.append( view.element );\n *\n * Also see the {@link module:ui/dropdown/utils~createDropdown `createDropdown()` util}.\n *\n * @implements module:ui/dropdown/button/dropdownbutton~DropdownButton\n * @extends module:ui/button/buttonview~ButtonView\n */\n\nvar DropdownButtonView = /*#__PURE__*/function (_ButtonView) {\n  _inherits(DropdownButtonView, _ButtonView);\n\n  var _super = _createSuper(DropdownButtonView);\n\n  /**\n   * @inheritDoc\n   */\n  function DropdownButtonView(locale) {\n    var _this;\n\n    _classCallCheck(this, DropdownButtonView);\n\n    _this = _super.call(this, locale);\n    /**\n     * An icon that displays arrow to indicate a dropdown button.\n     *\n     * @readonly\n     * @member {module:ui/icon/iconview~IconView}\n     */\n\n    _this.arrowView = _this._createArrowView();\n\n    _this.extendTemplate({\n      attributes: {\n        'aria-haspopup': true\n      }\n    }); // The DropdownButton interface expects the open event upon which will open the dropdown.\n\n\n    _this.delegate('execute').to(_assertThisInitialized(_this), 'open');\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(DropdownButtonView, [{\n    key: \"render\",\n    value: function render() {\n      _get(_getPrototypeOf(DropdownButtonView.prototype), \"render\", this).call(this);\n\n      this.children.add(this.arrowView);\n    }\n    /**\n     * Creates a {@link module:ui/icon/iconview~IconView} instance as {@link #arrowView}.\n     *\n     * @private\n     * @returns {module:ui/icon/iconview~IconView}\n     */\n\n  }, {\n    key: \"_createArrowView\",\n    value: function _createArrowView() {\n      var arrowView = new IconView();\n      arrowView.content = dropdownArrowIcon;\n      arrowView.extendTemplate({\n        attributes: {\n          class: 'ck-dropdown__arrow'\n        }\n      });\n      return arrowView;\n    }\n  }]);\n\n  return DropdownButtonView;\n}(ButtonView);\n\nexport { DropdownButtonView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/dropdown/dropdownpanelview\n */\nimport View from \"../view\";\n/**\n * The dropdown panel view class.\n *\n * See {@link module:ui/dropdown/dropdownview~DropdownView} to learn about the common usage.\n *\n * @extends module:ui/view~View\n */\n\nvar DropdownPanelView = /*#__PURE__*/function (_View) {\n  _inherits(DropdownPanelView, _View);\n\n  var _super = _createSuper(DropdownPanelView);\n\n  /**\n   * @inheritDoc\n   */\n  function DropdownPanelView(locale) {\n    var _this;\n\n    _classCallCheck(this, DropdownPanelView);\n\n    _this = _super.call(this, locale);\n    var bind = _this.bindTemplate;\n    /**\n     * Controls whether the panel is visible.\n     *\n     * @observable\n     * @member {Boolean} #isVisible\n     */\n\n    _this.set('isVisible', false);\n    /**\n     * The position of the panel, relative to the parent.\n     *\n     * This property is reflected in the CSS class set to {@link #element} that controls\n     * the position of the panel.\n     *\n     * @observable\n     * @default 'se'\n     * @member {'se'|'sw'|'ne'|'nw'} #position\n     */\n\n\n    _this.set('position', 'se');\n    /**\n     * Collection of the child views in this panel.\n     *\n     * A common child type is the {@link module:ui/list/listview~ListView} and {@link module:ui/toolbar/toolbarview~ToolbarView}.\n     * See {@link module:ui/dropdown/utils~addListToDropdown} and\n     * {@link module:ui/dropdown/utils~addToolbarToDropdown} to learn more about child views of dropdowns.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n\n    _this.children = _this.createCollection();\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-reset', 'ck-dropdown__panel', bind.to('position', function (value) {\n          return \"ck-dropdown__panel_\".concat(value);\n        }), bind.if('isVisible', 'ck-dropdown__panel-visible')]\n      },\n      children: _this.children,\n      on: {\n        // Drag and drop in the panel should not break the selection in the editor.\n        // https://github.com/ckeditor/ckeditor5-ui/issues/228\n        selectstart: bind.to(function (evt) {\n          return evt.preventDefault();\n        })\n      }\n    });\n\n    return _this;\n  }\n  /**\n   * Focuses the view element or first item in view collection on opening dropdown's panel.\n   *\n   * See also {@link module:ui/dropdown/dropdownpanelfocusable~DropdownPanelFocusable}.\n   */\n\n\n  _createClass(DropdownPanelView, [{\n    key: \"focus\",\n    value: function focus() {\n      if (this.children.length) {\n        this.children.first.focus();\n      }\n    }\n    /**\n     * Focuses the view element or last item in view collection on opening dropdown's panel.\n     *\n     * See also {@link module:ui/dropdown/dropdownpanelfocusable~DropdownPanelFocusable}.\n     */\n\n  }, {\n    key: \"focusLast\",\n    value: function focusLast() {\n      if (this.children.length) {\n        var lastChild = this.children.last;\n\n        if (typeof lastChild.focusLast === 'function') {\n          lastChild.focusLast();\n        } else {\n          lastChild.focus();\n        }\n      }\n    }\n  }]);\n\n  return DropdownPanelView;\n}(View);\n\nexport { DropdownPanelView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/dropdown/dropdownview\n */\nimport View from \"../view\";\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport \"../../theme/components/dropdown/dropdown.css\";\nimport { getOptimalPosition } from '@ckeditor/ckeditor5-utils/src/dom/position';\n/**\n * The dropdown view class. It manages the dropdown button and dropdown panel.\n *\n * In most cases, the easiest way to create a dropdown is by using the {@link module:ui/dropdown/utils~createDropdown}\n * util:\n *\n *\t\tconst dropdown = createDropdown( locale );\n *\n *\t\t// Configure dropdown's button properties:\n *\t\tdropdown.buttonView.set( {\n *\t\t\tlabel: 'A dropdown',\n *\t\t\twithText: true\n *\t\t} );\n *\n *\t\tdropdown.render();\n *\n *\t\tdropdown.panelView.element.textContent = 'Content of the panel';\n *\n *\t\t// Will render a dropdown with a panel containing a \"Content of the panel\" text.\n *\t\tdocument.body.appendChild( dropdown.element );\n *\n * If you want to add a richer content to the dropdown panel, you can use the {@link module:ui/dropdown/utils~addListToDropdown}\n * and {@link module:ui/dropdown/utils~addToolbarToDropdown} helpers. See more examples in\n * {@link module:ui/dropdown/utils~createDropdown} documentation.\n *\n * If you want to create a completely custom dropdown, then you can compose it manually:\n *\n *\t\tconst button = new DropdownButtonView( locale );\n *\t\tconst panel = new DropdownPanelView( locale );\n *\t\tconst dropdown = new DropdownView( locale, button, panel );\n *\n *\t\tbutton.set( {\n *\t\t\tlabel: 'A dropdown',\n *\t\t\twithText: true\n *\t\t} );\n *\n *\t\tdropdown.render();\n *\n *\t\tpanel.element.textContent = 'Content of the panel';\n *\n *\t\t// Will render a dropdown with a panel containing a \"Content of the panel\" text.\n *\t\tdocument.body.appendChild( dropdown.element );\n *\n * However, dropdown created this way will contain little behavior. You will need to implement handlers for actions\n * such as {@link module:ui/bindings/clickoutsidehandler~clickOutsideHandler clicking outside an open dropdown}\n * (which should close it) and support for arrow keys inside the panel. Therefore, unless you really know what\n * you do and you really need to do it, it is recommended to use the {@link module:ui/dropdown/utils~createDropdown} helper.\n *\n * @extends module:ui/view~View\n */\n\nvar DropdownView = /*#__PURE__*/function (_View) {\n  _inherits(DropdownView, _View);\n\n  var _super = _createSuper(DropdownView);\n\n  /**\n   * Creates an instance of the dropdown.\n   *\n   * Also see {@link #render}.\n   *\n   * @param {module:utils/locale~Locale} [locale] The localization services instance.\n   * @param {module:ui/dropdown/button/dropdownbutton~DropdownButton} buttonView\n   * @param {module:ui/dropdown/dropdownpanelview~DropdownPanelView} panelView\n   */\n  function DropdownView(locale, buttonView, panelView) {\n    var _this;\n\n    _classCallCheck(this, DropdownView);\n\n    _this = _super.call(this, locale);\n    var bind = _this.bindTemplate;\n    /**\n     * Button of the dropdown view. Clicking the button opens the {@link #panelView}.\n     *\n     * @readonly\n     * @member {module:ui/button/buttonview~ButtonView} #buttonView\n     */\n\n    _this.buttonView = buttonView;\n    /**\n     * Panel of the dropdown. It opens when the {@link #buttonView} is\n     * {@link module:ui/button/buttonview~ButtonView#event:execute executed} (i.e. clicked).\n     *\n     * Child views can be added to the panel's `children` collection:\n     *\n     *\t\tdropdown.panelView.children.add( childView );\n     *\n     * See {@link module:ui/dropdown/dropdownpanelview~DropdownPanelView#children} and\n     * {@link module:ui/viewcollection~ViewCollection#add}.\n     *\n     * @readonly\n     * @member {module:ui/dropdown/dropdownpanelview~DropdownPanelView} #panelView\n     */\n\n    _this.panelView = panelView;\n    /**\n     * Controls whether the dropdown view is open, i.e. shows or hides the {@link #panelView panel}.\n     *\n     * @observable\n     * @member {Boolean} #isOpen\n     */\n\n    _this.set('isOpen', false);\n    /**\n     * Controls whether the dropdown is enabled, i.e. it can be clicked and execute an action.\n     *\n     * See {@link module:ui/button/buttonview~ButtonView#isEnabled}.\n     *\n     * @observable\n     * @member {Boolean} #isEnabled\n     */\n\n\n    _this.set('isEnabled', true);\n    /**\n     * (Optional) The additional CSS class set on the dropdown {@link #element}.\n     *\n     * @observable\n     * @member {String} #class\n     */\n\n\n    _this.set('class');\n    /**\n     * The position of the panel, relative to the dropdown.\n     *\n     * **Note**: When `'auto'`, the panel will use one of the remaining positions to stay\n     * in the viewport, visible to the user. The positions correspond directly to\n     * {@link module:ui/dropdown/dropdownview~DropdownView.defaultPanelPositions default panel positions}.\n     *\n     * **Note**: This value has an impact on the\n     * {@link module:ui/dropdown/dropdownpanelview~DropdownPanelView#position} property\n     * each time the panel becomes {@link #isOpen open}.\n     *\n     * @observable\n     * @default 'auto'\n     * @member {'auto'|'se'|'sw'|'ne'|'nw'} #panelPosition\n     */\n\n\n    _this.set('panelPosition', 'auto');\n    /**\n     * Tracks information about DOM focus in the dropdown.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n\n\n    _this.focusTracker = new FocusTracker();\n    /**\n     * Instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}. It manages\n     * keystrokes of the dropdown:\n     *\n     * * <kbd>▼</kbd> opens the dropdown,\n     * * <kbd>◀</kbd> and <kbd>Esc</kbd> closes the dropdown.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n\n    _this.keystrokes = new KeystrokeHandler();\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-dropdown', bind.to('class'), bind.if('isEnabled', 'ck-disabled', function (value) {\n          return !value;\n        })]\n      },\n      children: [buttonView, panelView]\n    });\n\n    buttonView.extendTemplate({\n      attributes: {\n        class: ['ck-dropdown__button']\n      }\n    });\n    /**\n     * A child {@link module:ui/list/listview~ListView list view} of the dropdown located\n     * in its {@link module:ui/dropdown/dropdownview~DropdownView#panelView panel}.\n     *\n     * **Note**: Only supported when dropdown has list view added using {@link module:ui/dropdown/utils~addListToDropdown}.\n     *\n     * @readonly\n     * @member {module:ui/list/listview~ListView} #listView\n     */\n\n    /**\n     * A child toolbar of the dropdown located in the\n     * {@link module:ui/dropdown/dropdownview~DropdownView#panelView panel}.\n     *\n     * **Note**: Only supported when dropdown has list view added using {@link module:ui/dropdown/utils~addToolbarToDropdown}.\n     *\n     * @readonly\n     * @member {module:ui/toolbar/toolbarview~ToolbarView} #toolbarView\n     */\n\n    /**\n     * Fired when the toolbar button or list item is executed.\n     *\n     * For {@link #listView} It fires when a child of some {@link module:ui/list/listitemview~ListItemView}\n     * fired `execute`.\n     *\n     * For {@link #toolbarView} It fires when one of the buttons has been\n     * {@link module:ui/button/buttonview~ButtonView#event:execute executed}.\n     *\n     * **Note**: Only supported when dropdown has list view added using {@link module:ui/dropdown/utils~addListToDropdown}\n     * or {@link module:ui/dropdown/utils~addToolbarToDropdown}.\n     *\n     * @event execute\n     */\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(DropdownView, [{\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      _get(_getPrototypeOf(DropdownView.prototype), \"render\", this).call(this); // Toggle the dropdown when its button has been clicked.\n\n\n      this.listenTo(this.buttonView, 'open', function () {\n        _this2.isOpen = !_this2.isOpen;\n      }); // Toggle the visibility of the panel when the dropdown becomes open.\n\n      this.panelView.bind('isVisible').to(this, 'isOpen'); // Let the dropdown control the position of the panel. The position must\n      // be updated every time the dropdown is open.\n\n      this.on('change:isOpen', function () {\n        if (!_this2.isOpen) {\n          return;\n        } // If \"auto\", find the best position of the panel to fit into the viewport.\n        // Otherwise, simply assign the static position.\n\n\n        if (_this2.panelPosition === 'auto') {\n          _this2.panelView.position = DropdownView._getOptimalPosition({\n            element: _this2.panelView.element,\n            target: _this2.buttonView.element,\n            fitInViewport: true,\n            positions: _this2._panelPositions\n          }).name;\n        } else {\n          _this2.panelView.position = _this2.panelPosition;\n        }\n      }); // Listen for keystrokes coming from within #element.\n\n      this.keystrokes.listenTo(this.element); // Register #element in the focus tracker.\n\n      this.focusTracker.add(this.element);\n\n      var closeDropdown = function closeDropdown(data, cancel) {\n        if (_this2.isOpen) {\n          _this2.buttonView.focus();\n\n          _this2.isOpen = false;\n          cancel();\n        }\n      }; // Open the dropdown panel using the arrow down key, just like with return or space.\n\n\n      this.keystrokes.set('arrowdown', function (data, cancel) {\n        // Don't open if the dropdown is disabled or already open.\n        if (_this2.buttonView.isEnabled && !_this2.isOpen) {\n          _this2.isOpen = true;\n          cancel();\n        }\n      }); // Block the right arrow key (until nested dropdowns are implemented).\n\n      this.keystrokes.set('arrowright', function (data, cancel) {\n        if (_this2.isOpen) {\n          cancel();\n        }\n      }); // Close the dropdown using the arrow left/escape key.\n\n      this.keystrokes.set('arrowleft', closeDropdown);\n      this.keystrokes.set('esc', closeDropdown);\n    }\n    /**\n     * Focuses the {@link #buttonView}.\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this.buttonView.focus();\n    }\n    /**\n     * Returns {@link #panelView panel} positions to be used by the\n     * {@link module:utils/dom/position~getOptimalPosition `getOptimalPosition()`}\n     * utility considering the direction of the language the UI of the editor is displayed in.\n     *\n     * @type {module:utils/dom/position~Options#positions}\n     * @private\n     */\n\n  }, {\n    key: \"_panelPositions\",\n    get: function get() {\n      var _DropdownView$default = DropdownView.defaultPanelPositions,\n          southEast = _DropdownView$default.southEast,\n          southWest = _DropdownView$default.southWest,\n          northEast = _DropdownView$default.northEast,\n          northWest = _DropdownView$default.northWest;\n\n      if (this.locale.uiLanguageDirection === 'ltr') {\n        return [southEast, southWest, northEast, northWest];\n      } else {\n        return [southWest, southEast, northWest, northEast];\n      }\n    }\n  }]);\n\n  return DropdownView;\n}(View);\n/**\n * A set of positioning functions used by the dropdown view to determine\n * the optimal position (i.e. fitting into the browser viewport) of its\n * {@link module:ui/dropdown/dropdownview~DropdownView#panelView panel} when\n * {@link module:ui/dropdown/dropdownview~DropdownView#panelPosition} is set to 'auto'`.\n *\n * The available positioning functions are as follow:\n *\n * **South**\n *\n * * `southEast`\n *\n *\t\t[ Button ]\n *\t\t+-----------------+\n *\t\t|      Panel      |\n *\t\t+-----------------+\n *\n * * `southWest`\n *\n *\t\t         [ Button ]\n *\t\t+-----------------+\n *\t\t|      Panel      |\n *\t\t+-----------------+\n *\n * **North**\n *\n * * `northEast`\n *\n *\t\t+-----------------+\n *\t\t|      Panel      |\n *\t\t+-----------------+\n *\t\t[ Button ]\n *\n * * `northWest`\n *\n *\t\t+-----------------+\n *\t\t|      Panel      |\n *\t\t+-----------------+\n *\t\t         [ Button ]\n *\n * Positioning functions are compatible with {@link module:utils/dom/position~Position}.\n *\n * The name that position function returns will be reflected in dropdown panel's class that\n * controls its placement. See {@link module:ui/dropdown/dropdownview~DropdownView#panelPosition}\n * to learn more.\n *\n * @member {Object} module:ui/dropdown/dropdownview~DropdownView.defaultPanelPositions\n */\n\n\nexport { DropdownView as default };\nDropdownView.defaultPanelPositions = {\n  southEast: function southEast(buttonRect) {\n    return {\n      top: buttonRect.bottom,\n      left: buttonRect.left,\n      name: 'se'\n    };\n  },\n  southWest: function southWest(buttonRect, panelRect) {\n    return {\n      top: buttonRect.bottom,\n      left: buttonRect.left - panelRect.width + buttonRect.width,\n      name: 'sw'\n    };\n  },\n  northEast: function northEast(buttonRect, panelRect) {\n    return {\n      top: buttonRect.top - panelRect.height,\n      left: buttonRect.left,\n      name: 'ne'\n    };\n  },\n  northWest: function northWest(buttonRect, panelRect) {\n    return {\n      top: buttonRect.bottom - panelRect.height,\n      left: buttonRect.left - panelRect.width + buttonRect.width,\n      name: 'nw'\n    };\n  }\n};\n/**\n * A function used to calculate the optimal position for the dropdown panel.\n *\n * @protected\n * @member {Function} module:ui/dropdown/dropdownview~DropdownView._getOptimalPosition\n */\n\nDropdownView._getOptimalPosition = getOptimalPosition;","import 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.object.keys';\nimport _toConsumableArray from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray';\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/dropdown/utils\n */\nimport DropdownPanelView from './dropdownpanelview';\nimport DropdownView from './dropdownview';\nimport DropdownButtonView from './button/dropdownbuttonview';\nimport ToolbarView from '../toolbar/toolbarview';\nimport ListView from '../list/listview';\nimport ListItemView from '../list/listitemview';\nimport ListSeparatorView from '../list/listseparatorview';\nimport ButtonView from '../button/buttonview';\nimport SwitchButtonView from '../button/switchbuttonview';\nimport clickOutsideHandler from '../bindings/clickoutsidehandler';\nimport '../../theme/components/dropdown/toolbardropdown.css';\nimport '../../theme/components/dropdown/listdropdown.css';\n/**\n * A helper for creating dropdowns. It creates an instance of a {@link module:ui/dropdown/dropdownview~DropdownView dropdown},\n * with a {@link module:ui/dropdown/button/dropdownbutton~DropdownButton button},\n * {@link module:ui/dropdown/dropdownpanelview~DropdownPanelView panel} and all standard dropdown's behaviors.\n *\n * # Creating dropdowns\n *\n * By default, the default {@link module:ui/dropdown/button/dropdownbuttonview~DropdownButtonView} class is used as\n * definition of the button:\n *\n *\t\tconst dropdown = createDropdown( model );\n *\n *\t\t// Configure dropdown's button properties:\n *\t\tdropdown.buttonView.set( {\n *\t\t\tlabel: 'A dropdown',\n *\t\t\twithText: true\n *\t\t} );\n *\n *\t\tdropdown.render();\n *\n *\t\t// Will render a dropdown labeled \"A dropdown\" with an empty panel.\n *\t\tdocument.body.appendChild( dropdown.element );\n *\n * You can also provide other button views (they need to implement the\n * {@link module:ui/dropdown/button/dropdownbutton~DropdownButton} interface). For instance, you can use\n * {@link module:ui/dropdown/button/splitbuttonview~SplitButtonView} to create a dropdown with a split button.\n *\n *\t\tconst dropdown = createDropdown( model, SplitButtonView );\n *\n *\t\t// Configure dropdown's button properties:\n *\t\tdropdown.buttonView.set( {\n *\t\t\tlabel: 'A dropdown',\n *\t\t\twithText: true\n *\t\t} );\n *\n *\t\tdropdown.buttonView.on( 'execute', () => {\n *\t\t\t// Add the behavior of the \"action part\" of the split button.\n *\t\t\t// Split button consists of the \"action part\" and \"arrow part\".\n *\t\t\t// The arrow opens the dropdown while the action part can have some other behavior.\n * \t\t} );\n *\n *\t\tdropdown.render();\n *\n *\t\t// Will render a dropdown labeled \"A dropdown\" with an empty panel.\n *\t\tdocument.body.appendChild( dropdown.element );\n *\n * # Adding content to the dropdown's panel\n *\n * The content of the panel can be inserted directly into the `dropdown.panelView.element`:\n *\n *\t\tdropdown.panelView.element.textContent = 'Content of the panel';\n *\n * However, most of the time you will want to add there either a {@link module:ui/list/listview~ListView list of options}\n * or a list of buttons (i.e. a {@link module:ui/toolbar/toolbarview~ToolbarView toolbar}).\n * To simplify the task, you can use, respectively, {@link module:ui/dropdown/utils~addListToDropdown} or\n * {@link module:ui/dropdown/utils~addToolbarToDropdown} utils.\n *\n * @param {module:utils/locale~Locale} locale The locale instance.\n * @param {Function} ButtonClass The dropdown button view class. Needs to implement the\n * {@link module:ui/dropdown/button/dropdownbutton~DropdownButton} interface.\n * @returns {module:ui/dropdown/dropdownview~DropdownView} The dropdown view instance.\n */\nexport function createDropdown(locale) {\n    var ButtonClass = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DropdownButtonView;\n    var buttonView = new ButtonClass(locale);\n    var panelView = new DropdownPanelView(locale);\n    var dropdownView = new DropdownView(locale, buttonView, panelView);\n    buttonView.bind('isEnabled').to(dropdownView);\n    if (buttonView instanceof DropdownButtonView) {\n        buttonView.bind('isOn').to(dropdownView, 'isOpen');\n    } else {\n        buttonView.arrowView.bind('isOn').to(dropdownView, 'isOpen');\n    }\n    addDefaultBehavior(dropdownView);\n    return dropdownView;\n}\n/**\n * Adds an instance of {@link module:ui/toolbar/toolbarview~ToolbarView} to a dropdown.\n *\n *\t\tconst buttons = [];\n *\n *\t\t// Either create a new ButtonView instance or create existing.\n *\t\tbuttons.push( new ButtonView() );\n *\t\tbuttons.push( editor.ui.componentFactory.get( 'someButton' ) );\n *\n *\t\tconst dropdown = createDropdown( locale );\n *\n *\t\taddToolbarToDropdown( dropdown, buttons );\n *\n *\t\tdropdown.toolbarView.isVertical = true;\n *\n *\t\t// Will render a vertical button dropdown labeled \"A button dropdown\"\n *\t\t// with a button group in the panel containing two buttons.\n *\t\tdropdown.render()\n *\t\tdocument.body.appendChild( dropdown.element );\n *\n * See {@link module:ui/dropdown/utils~createDropdown} and {@link module:ui/toolbar/toolbarview~ToolbarView}.\n *\n * @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView A dropdown instance to which `ToolbarView` will be added.\n * @param {Iterable.<module:ui/button/buttonview~ButtonView>} buttons\n */\nexport function addToolbarToDropdown(dropdownView, buttons) {\n    var locale = dropdownView.locale;\n    var t = locale.t;\n    var toolbarView = dropdownView.toolbarView = new ToolbarView(locale);\n    toolbarView.set('ariaLabel', t('Dropdown toolbar'));\n    dropdownView.extendTemplate({ attributes: { class: ['ck-toolbar-dropdown'] } });\n    buttons.map(function (view) {\n        return toolbarView.items.add(view);\n    });\n    dropdownView.panelView.children.add(toolbarView);\n    toolbarView.items.delegate('execute').to(dropdownView);\n}\n/**\n * Adds an instance of {@link module:ui/list/listview~ListView} to a dropdown.\n *\n *\t\tconst items = new Collection();\n *\n *\t\titems.add( {\n *\t\t\ttype: 'button',\n *\t\t\tmodel: new Model( {\n *\t\t\t\twithText: true,\n *\t\t\t\tlabel: 'First item',\n *\t\t\t\tlabelStyle: 'color: red'\n *\t\t\t} )\n *\t\t} );\n *\n *\t\titems.add( {\n *\t\t\t type: 'button',\n *\t\t\t model: new Model( {\n *\t\t\t\twithText: true,\n *\t\t\t\tlabel: 'Second item',\n *\t\t\t\tlabelStyle: 'color: green',\n *\t\t\t\tclass: 'foo'\n *\t\t\t} )\n *\t\t} );\n *\n *\t\tconst dropdown = createDropdown( locale );\n *\n *\t\taddListToDropdown( dropdown, items );\n *\n *\t\t// Will render a dropdown with a list in the panel containing two items.\n *\t\tdropdown.render()\n *\t\tdocument.body.appendChild( dropdown.element );\n *\n * The `items` collection passed to this methods controls the presence and attributes of respective\n * {@link module:ui/list/listitemview~ListItemView list items}.\n *\n *\n * See {@link module:ui/dropdown/utils~createDropdown} and {@link module:list/list~List}.\n *\n * @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView A dropdown instance to which `ListVIew` will be added.\n * @param {Iterable.<module:ui/dropdown/utils~ListDropdownItemDefinition>} items\n * A collection of the list item definitions to populate the list.\n */\nexport function addListToDropdown(dropdownView, items) {\n    var locale = dropdownView.locale;\n    var listView = dropdownView.listView = new ListView(locale);\n    listView.items.bindTo(items).using(function (_ref) {\n        var type = _ref.type, model = _ref.model;\n        if (type === 'separator') {\n            return new ListSeparatorView(locale);\n        } else if (type === 'button' || type === 'switchbutton') {\n            var _buttonView;\n            var listItemView = new ListItemView(locale);\n            var buttonView;\n            if (type === 'button') {\n                buttonView = new ButtonView(locale);\n            } else {\n                buttonView = new SwitchButtonView(locale);\n            }\n            // Bind all model properties to the button view.\n            (_buttonView = buttonView).bind.apply(_buttonView, _toConsumableArray(Object.keys(model))).to(model);\n            buttonView.delegate('execute').to(listItemView);\n            listItemView.children.add(buttonView);\n            return listItemView;\n        }\n    });\n    dropdownView.panelView.children.add(listView);\n    listView.items.delegate('execute').to(dropdownView);\n}\n// Add a set of default behaviors to dropdown view.\n//\n// @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView\nfunction addDefaultBehavior(dropdownView) {\n    closeDropdownOnBlur(dropdownView);\n    closeDropdownOnExecute(dropdownView);\n    focusDropdownContentsOnArrows(dropdownView);\n}\n// Adds a behavior to a dropdownView that closes opened dropdown when user clicks outside the dropdown.\n//\n// @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView\nfunction closeDropdownOnBlur(dropdownView) {\n    dropdownView.on('render', function () {\n        clickOutsideHandler({\n            emitter: dropdownView,\n            activator: function activator() {\n                return dropdownView.isOpen;\n            },\n            callback: function callback() {\n                dropdownView.isOpen = false;\n            },\n            contextElements: [dropdownView.element]\n        });\n    });\n}\n// Adds a behavior to a dropdownView that closes the dropdown view on \"execute\" event.\n//\n// @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView\nfunction closeDropdownOnExecute(dropdownView) {\n    // Close the dropdown when one of the list items has been executed.\n    dropdownView.on('execute', function (evt) {\n        // Toggling a switch button view should not close the dropdown.\n        if (evt.source instanceof SwitchButtonView) {\n            return;\n        }\n        dropdownView.isOpen = false;\n    });\n}\n// Adds a behavior to a dropdownView that focuses the dropdown's panel view contents on keystrokes.\n//\n// @param {module:ui/dropdown/dropdownview~DropdownView} dropdownView\nfunction focusDropdownContentsOnArrows(dropdownView) {\n    // If the dropdown panel is already open, the arrow down key should focus the first child of the #panelView.\n    dropdownView.keystrokes.set('arrowdown', function (data, cancel) {\n        if (dropdownView.isOpen) {\n            dropdownView.panelView.focus();\n            cancel();\n        }\n    });\n    // If the dropdown panel is already open, the arrow up key should focus the last child of the #panelView.\n    dropdownView.keystrokes.set('arrowup', function (data, cancel) {\n        if (dropdownView.isOpen) {\n            dropdownView.panelView.focusLast();\n            cancel();\n        }\n    });\n}    /**\n * A definition of the list item used by the {@link module:ui/dropdown/utils~addListToDropdown}\n * utility.\n *\n * @typedef {Object} module:ui/dropdown/utils~ListDropdownItemDefinition\n *\n * @property {String} type Either `'separator'`, `'button'` or `'switchbutton'`.\n * @property {module:ui/model~Model} [model] Model of the item (when **not** `'separator'`).\n * Its properties fuel the newly created list item (or its children, depending on the `type`).\n */","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editableui/editableuiview\n */\nimport View from \"../view\";\n/**\n * The editable UI view class.\n *\n * @extends module:ui/view~View\n */\n\nvar EditableUIView = /*#__PURE__*/function (_View) {\n  _inherits(EditableUIView, _View);\n\n  var _super = _createSuper(EditableUIView);\n\n  /**\n   * Creates an instance of EditableUIView class.\n   *\n   * @param {module:utils/locale~Locale} [locale] The locale instance.\n   * @param {module:engine/view/view~View} editingView The editing view instance the editable is related to.\n   * @param {HTMLElement} [editableElement] The editable element. If not specified, this view\n   * should create it. Otherwise, the existing element should be used.\n   */\n  function EditableUIView(locale, editingView, editableElement) {\n    var _this;\n\n    _classCallCheck(this, EditableUIView);\n\n    _this = _super.call(this, locale);\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-content', 'ck-editor__editable', 'ck-rounded-corners'],\n        lang: locale.contentLanguage,\n        dir: locale.contentLanguageDirection\n      }\n    });\n    /**\n     * The name of the editable UI view.\n     *\n     * @member {String} #name\n     */\n\n\n    _this.name = null;\n    /**\n     * Controls whether the editable is focused, i.e. the user is typing in it.\n     *\n     * @observable\n     * @member {Boolean} #isFocused\n     */\n\n    _this.set('isFocused', false);\n    /**\n     * The element which is the main editable element (usually the one with `contentEditable=\"true\"`).\n     *\n     * @private\n     * @member {HTMLElement} #_editableElement\n     */\n\n\n    _this._editableElement = editableElement;\n    /**\n     * Whether an external {@link #_editableElement} was passed into the constructor, which also means\n     * the view will not render its {@link #template}.\n     *\n     * @private\n     * @member {Boolean} #_hasExternalElement\n     */\n\n    _this._hasExternalElement = !!_this._editableElement;\n    /**\n     * The editing view instance the editable is related to. Editable uses the editing\n     * view to dynamically modify its certain DOM attributes after {@link #render rendering}.\n     *\n     * **Note**: The DOM attributes are performed by the editing view and not UI\n     * {@link module:ui/view~View#bindTemplate template bindings} because once rendered,\n     * the editable DOM element must remain under the full control of the engine to work properly.\n     *\n     * @protected\n     * @member {module:engine/view/view~View} #isFocused\n     */\n\n    _this._editingView = editingView;\n    return _this;\n  }\n  /**\n   * Renders the view by either applying the {@link #template} to the existing\n   * {@link #_editableElement} or assigning {@link #element} as {@link #_editableElement}.\n   */\n\n\n  _createClass(EditableUIView, [{\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      _get(_getPrototypeOf(EditableUIView.prototype), \"render\", this).call(this);\n\n      if (this._hasExternalElement) {\n        this.template.apply(this.element = this._editableElement);\n      } else {\n        this._editableElement = this.element;\n      }\n\n      this.on('change:isFocused', function () {\n        return _this2._updateIsFocusedClasses();\n      });\n\n      this._updateIsFocusedClasses();\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      if (this._hasExternalElement) {\n        this.template.revert(this._editableElement);\n      }\n\n      _get(_getPrototypeOf(EditableUIView.prototype), \"destroy\", this).call(this);\n    }\n    /**\n     * Updates the `ck-focused` and `ck-blurred` CSS classes on the {@link #element} according to\n     * the {@link #isFocused} property value using the {@link #_editingView editing view} API.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_updateIsFocusedClasses\",\n    value: function _updateIsFocusedClasses() {\n      var editingView = this._editingView;\n\n      if (editingView.isRenderingInProgress) {\n        updateAfterRender(this);\n      } else {\n        update(this);\n      }\n\n      function update(view) {\n        editingView.change(function (writer) {\n          var viewRoot = editingView.document.getRoot(view.name);\n          writer.addClass(view.isFocused ? 'ck-focused' : 'ck-blurred', viewRoot);\n          writer.removeClass(view.isFocused ? 'ck-blurred' : 'ck-focused', viewRoot);\n        });\n      } // In a case of a multi-root editor, a callback will be attached more than once (one callback for each root).\n      // While executing one callback the `isRenderingInProgress` observable is changing what causes executing another\n      // callback and render is called inside the already pending render.\n      // We need to be sure that callback is executed only when the value has changed from `true` to `false`.\n      // See https://github.com/ckeditor/ckeditor5/issues/1676.\n\n\n      function updateAfterRender(view) {\n        editingView.once('change:isRenderingInProgress', function (evt, name, value) {\n          if (!value) {\n            update(view);\n          } else {\n            updateAfterRender(view);\n          }\n        });\n      }\n    }\n  }]);\n\n  return EditableUIView;\n}(View);\n\nexport { EditableUIView as default };","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/es6.function.name';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/editableui/inline/inlineeditableuiview\n */\nimport EditableUIView from '../../editableui/editableuiview';\n/**\n * The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.\n *\n * @extends module:ui/editableui/editableuiview~EditableUIView\n */\nvar InlineEditableUIView = /*#__PURE__*/\nfunction (_EditableUIView) {\n    _inherits(InlineEditableUIView, _EditableUIView);\n    var _super = _createSuper(InlineEditableUIView);\n    /**\n   * Creates an instance of the InlineEditableUIView class.\n   *\n   * @param {module:utils/locale~Locale} [locale] The locale instance.\n   * @param {module:engine/view/view~View} editingView The editing view instance the editable is related to.\n   * @param {HTMLElement} [editableElement] The editable element. If not specified, the\n   * {@link module:ui/editableui/editableuiview~EditableUIView}\n   * will create it. Otherwise, the existing element will be used.\n   */\n    function InlineEditableUIView(locale, editingView, editableElement) {\n        var _this;\n        _classCallCheck(this, InlineEditableUIView);\n        _this = _super.call(this, locale, editingView, editableElement);\n        _this.extendTemplate({\n            attributes: {\n                role: 'textbox',\n                class: 'ck-editor__editable_inline'\n            }\n        });\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(InlineEditableUIView, [{\n            key: 'render',\n            value: function render() {\n                var _this2 = this;\n                _get(_getPrototypeOf(InlineEditableUIView.prototype), 'render', this).call(this);\n                var editingView = this._editingView;\n                var t = this.t;\n                editingView.change(function (writer) {\n                    var viewRoot = editingView.document.getRoot(_this2.name);\n                    writer.setAttribute('aria-label', t('Rich Text Editor, %0', [_this2.name]), viewRoot);\n                });\n            }\n        }]);\n    return InlineEditableUIView;\n}(EditableUIView);\nexport {\n    InlineEditableUIView as default\n};","import 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/editorui/boxed/boxededitoruiview\n */\nimport EditorUIView from '../../editorui/editoruiview';\nimport LabelView from '../../label/labelview';\nimport uid from '@ckeditor/ckeditor5-utils/src/uid';\n/**\n * The boxed editor UI view class. This class represents an editor interface\n * consisting of a toolbar and an editable area, enclosed within a box.\n *\n * @extends module:ui/editorui/editoruiview~EditorUIView\n */\nvar BoxedEditorUIView = /*#__PURE__*/\nfunction (_EditorUIView) {\n    _inherits(BoxedEditorUIView, _EditorUIView);\n    var _super = _createSuper(BoxedEditorUIView);\n    /**\n   * Creates an instance of the boxed editor UI view class.\n   *\n   * @param {module:utils/locale~Locale} locale The locale instance..\n   */\n    function BoxedEditorUIView(locale) {\n        var _this;\n        _classCallCheck(this, BoxedEditorUIView);\n        _this = _super.call(this, locale);\n        var ariaLabelUid = uid();\n        /**\n     * Collection of the child views located in the top (`.ck-editor__top`)\n     * area of the UI.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this.top = _this.createCollection();\n        /**\n     * Collection of the child views located in the main (`.ck-editor__main`)\n     * area of the UI.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this.main = _this.createCollection();\n        /**\n     * Voice label of the UI.\n     *\n     * @protected\n     * @readonly\n     * @member {module:ui/view~View} #_voiceLabelView\n     */\n        _this._voiceLabelView = _this._createVoiceLabel(ariaLabelUid);\n        _this.setTemplate({\n            tag: 'div',\n            attributes: {\n                class: [\n                    'ck',\n                    'ck-reset',\n                    'ck-editor',\n                    'ck-rounded-corners'\n                ],\n                role: 'application',\n                dir: locale.uiLanguageDirection,\n                lang: locale.uiLanguage,\n                'aria-labelledby': 'ck-editor__aria-label_'.concat(ariaLabelUid)\n            },\n            children: [\n                _this._voiceLabelView,\n                {\n                    tag: 'div',\n                    attributes: {\n                        class: [\n                            'ck',\n                            'ck-editor__top',\n                            'ck-reset_all'\n                        ],\n                        role: 'presentation'\n                    },\n                    children: _this.top\n                },\n                {\n                    tag: 'div',\n                    attributes: {\n                        class: [\n                            'ck',\n                            'ck-editor__main'\n                        ],\n                        role: 'presentation'\n                    },\n                    children: _this.main\n                }\n            ]\n        });\n        return _this;\n    }\n    /**\n   * Creates a voice label view instance.\n   *\n   * @private\n   * @returns {module:ui/label/labelview~LabelView}\n   */\n    _createClass(BoxedEditorUIView, [{\n            key: '_createVoiceLabel',\n            value: function _createVoiceLabel(ariaLabelUid) {\n                var t = this.t;\n                var voiceLabel = new LabelView();\n                voiceLabel.text = t('Rich Text Editor');\n                voiceLabel.extendTemplate({\n                    attributes: {\n                        id: 'ck-editor__aria-label_'.concat(ariaLabelUid),\n                        class: 'ck-voice-label'\n                    }\n                });\n                return voiceLabel;\n            }\n        }]);\n    return BoxedEditorUIView;\n}(EditorUIView);\nexport {\n    BoxedEditorUIView as default\n};","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/editorui/editoruiview\n */\n\n/* globals document */\nimport View from \"../view\";\nimport Template from \"../template\";\nimport \"../../theme/components/editorui/editorui.css\";\n/**\n * The editor UI view class. Base class for the editor main views.\n *\n * @extends module:ui/view~View\n */\n\nvar EditorUIView = /*#__PURE__*/function (_View) {\n  _inherits(EditorUIView, _View);\n\n  var _super = _createSuper(EditorUIView);\n\n  /**\n   * Creates an instance of the editor UI view class.\n   *\n   * @param {module:utils/locale~Locale} [locale] The locale instance.\n   */\n  function EditorUIView(locale) {\n    var _this;\n\n    _classCallCheck(this, EditorUIView);\n\n    _this = _super.call(this, locale);\n    /**\n     * Collection of the child views, detached from the DOM\n     * structure of the editor, like panels, icons etc.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection} #body\n     */\n\n    _this.body = _this.createCollection();\n    /**\n     * The element holding elements of the 'body' region.\n     *\n     * @private\n     * @member {HTMLElement} #_bodyCollectionContainer\n     */\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(EditorUIView, [{\n    key: \"render\",\n    value: function render() {\n      _get(_getPrototypeOf(EditorUIView.prototype), \"render\", this).call(this);\n\n      this._renderBodyCollection();\n    }\n    /**\n     * @inheritDoc\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this._bodyCollectionContainer.remove();\n\n      return _get(_getPrototypeOf(EditorUIView.prototype), \"destroy\", this).call(this);\n    }\n    /**\n     * Creates and appends to `<body>` the {@link #body} collection container.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_renderBodyCollection\",\n    value: function _renderBodyCollection() {\n      var locale = this.locale;\n      var bodyElement = this._bodyCollectionContainer = new Template({\n        tag: 'div',\n        attributes: {\n          class: ['ck', 'ck-reset_all', 'ck-body', 'ck-rounded-corners'],\n          dir: locale.uiLanguageDirection\n        },\n        children: this.body\n      }).render();\n      document.body.appendChild(bodyElement);\n    }\n  }]);\n\n  return EditorUIView;\n}(View);\n\nexport { EditorUIView as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.array.find\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/focuscycler\n */\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\n/**\n * A utility class that helps cycling over focusable {@link module:ui/view~View views} in a\n * {@link module:ui/viewcollection~ViewCollection} when the focus is tracked by the\n * {@link module:utils/focustracker~FocusTracker} instance. It helps implementing keyboard\n * navigation in HTML forms, toolbars, lists and the like.\n *\n * To work properly it requires:\n * * a collection of focusable (HTML `tabindex` attribute) views that implement the `focus()` method,\n * * an associated focus tracker to determine which view is focused.\n *\n * A simple cycler setup can look like this:\n *\n *\t\tconst focusables = new ViewCollection();\n *\t\tconst focusTracker = new FocusTracker();\n *\n *\t\t// Add focusable views to the focus tracker.\n *\t\tfocusTracker.add( ... );\n *\n * Then, the cycler can be used manually:\n *\n *\t\tconst cycler = new FocusCycler( { focusables, focusTracker } );\n *\n *\t\t// Will focus the first focusable view in #focusables.\n *\t\tcycler.focusFirst();\n *\n *\t\t// Will log the next focusable item in #focusables.\n *\t\tconsole.log( cycler.next );\n *\n * Alternatively, it can work side by side with the {@link module:utils/keystrokehandler~KeystrokeHandler}:\n *\n *\t\tconst keystrokeHandler = new KeystrokeHandler();\n *\n *\t\t// Activate the keystroke handler.\n *\t\tkeystrokeHandler.listenTo( sourceOfEvents );\n *\n *\t\tconst cycler = new FocusCycler( {\n *\t\t\tfocusables, focusTracker, keystrokeHandler,\n *\t\t\tactions: {\n *\t\t\t\t// When arrowup of arrowleft is detected by the #keystrokeHandler,\n *\t\t\t\t// focusPrevious() will be called on the cycler.\n *\t\t\t\tfocusPrevious: [ 'arrowup', 'arrowleft' ],\n *\t\t\t}\n *\t\t} );\n */\n\nvar FocusCycler = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the focus cycler utility.\n   *\n   * @param {Object} options Configuration options.\n   * @param {module:utils/collection~Collection|Object} options.focusables\n   * @param {module:utils/focustracker~FocusTracker} options.focusTracker\n   * @param {module:utils/keystrokehandler~KeystrokeHandler} [options.keystrokeHandler]\n   * @param {Object} [options.actions]\n   */\n  function FocusCycler(options) {\n    var _this = this;\n\n    _classCallCheck(this, FocusCycler);\n\n    Object.assign(this, options);\n    /**\n     * A {@link module:ui/view~View view} collection that the cycler operates on.\n     *\n     * @readonly\n     * @member {module:utils/collection~Collection} #focusables\n     */\n\n    /**\n     * A focus tracker instance that the cycler uses to determine the current focus\n     * state in {@link #focusables}.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker} #focusTracker\n     */\n\n    /**\n     * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}\n     * which can respond to certain keystrokes and cycle the focus.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler} #keystrokeHandler\n     */\n\n    /**\n     * Actions that the cycler can take when a keystroke is pressed. Requires\n     * `options.keystrokeHandler` to be passed and working. When an action is\n     * performed, `preventDefault` and `stopPropagation` will be called on the event\n     * the keystroke fired in the DOM.\n     *\n     *\t\tactions: {\n     *\t\t\t// Will call #focusPrevious() when arrowleft or arrowup is pressed.\n     *\t\t\tfocusPrevious: [ 'arrowleft', 'arrowup' ],\n     *\n     *\t\t\t// Will call #focusNext() when arrowdown is pressed.\n     *\t\t\tfocusNext: 'arrowdown'\n     *\t\t}\n     *\n     * @readonly\n     * @member {Object} #actions\n     */\n\n    if (options.actions && options.keystrokeHandler) {\n      var _loop = function _loop(methodName) {\n        var actions = options.actions[methodName];\n\n        if (typeof actions == 'string') {\n          actions = [actions];\n        }\n\n        var _iterator = _createForOfIteratorHelper(actions),\n            _step;\n\n        try {\n          for (_iterator.s(); !(_step = _iterator.n()).done;) {\n            var keystroke = _step.value;\n            options.keystrokeHandler.set(keystroke, function (data, cancel) {\n              _this[methodName]();\n\n              cancel();\n            });\n          }\n        } catch (err) {\n          _iterator.e(err);\n        } finally {\n          _iterator.f();\n        }\n      };\n\n      for (var methodName in options.actions) {\n        _loop(methodName);\n      }\n    }\n  }\n  /**\n   * Returns the first focusable view in {@link #focusables}.\n   * Returns `null` if there is none.\n   *\n   * @readonly\n   * @member {module:ui/view~View|null} #first\n   */\n\n\n  _createClass(FocusCycler, [{\n    key: \"focusFirst\",\n\n    /**\n     * Focuses the {@link #first} item in {@link #focusables}.\n     */\n    value: function focusFirst() {\n      this._focus(this.first);\n    }\n    /**\n     * Focuses the {@link #last} item in {@link #focusables}.\n     */\n\n  }, {\n    key: \"focusLast\",\n    value: function focusLast() {\n      this._focus(this.last);\n    }\n    /**\n     * Focuses the {@link #next} item in {@link #focusables}.\n     */\n\n  }, {\n    key: \"focusNext\",\n    value: function focusNext() {\n      this._focus(this.next);\n    }\n    /**\n     * Focuses the {@link #previous} item in {@link #focusables}.\n     */\n\n  }, {\n    key: \"focusPrevious\",\n    value: function focusPrevious() {\n      this._focus(this.previous);\n    }\n    /**\n     * Focuses the given view if it exists.\n     *\n     * @protected\n     * @param {module:ui/view~View} view\n     */\n\n  }, {\n    key: \"_focus\",\n    value: function _focus(view) {\n      if (view) {\n        view.focus();\n      }\n    }\n    /**\n     * Returns the next or previous focusable view in {@link #focusables} with respect\n     * to {@link #current}.\n     *\n     * @protected\n     * @param {Number} step Either `1` for checking forward from {@link #current} or\n     * `-1` for checking backwards.\n     * @returns {module:ui/view~View|null}\n     */\n\n  }, {\n    key: \"_getFocusableItem\",\n    value: function _getFocusableItem(step) {\n      // Cache for speed.\n      var current = this.current;\n      var collectionLength = this.focusables.length;\n\n      if (!collectionLength) {\n        return null;\n      } // Start from the beginning if no view is focused.\n      // https://github.com/ckeditor/ckeditor5-ui/issues/206\n\n\n      if (current === null) {\n        return this[step === 1 ? 'first' : 'last'];\n      } // Cycle in both directions.\n\n\n      var index = (current + collectionLength + step) % collectionLength;\n\n      do {\n        var view = this.focusables.get(index); // TODO: Check if view is visible.\n\n        if (isFocusable(view)) {\n          return view;\n        } // Cycle in both directions.\n\n\n        index = (index + collectionLength + step) % collectionLength;\n      } while (index !== current);\n\n      return null;\n    }\n  }, {\n    key: \"first\",\n    get: function get() {\n      return this.focusables.find(isFocusable) || null;\n    }\n    /**\n     * Returns the last focusable view in {@link #focusables}.\n     * Returns `null` if there is none.\n     *\n     * @readonly\n     * @member {module:ui/view~View|null} #last\n     */\n\n  }, {\n    key: \"last\",\n    get: function get() {\n      return this.focusables.filter(isFocusable).slice(-1)[0] || null;\n    }\n    /**\n     * Returns the next focusable view in {@link #focusables} based on {@link #current}.\n     * Returns `null` if there is none.\n     *\n     * @readonly\n     * @member {module:ui/view~View|null} #next\n     */\n\n  }, {\n    key: \"next\",\n    get: function get() {\n      return this._getFocusableItem(1);\n    }\n    /**\n     * Returns the previous focusable view in {@link #focusables} based on {@link #current}.\n     * Returns `null` if there is none.\n     *\n     * @readonly\n     * @member {module:ui/view~View|null} #previous\n     */\n\n  }, {\n    key: \"previous\",\n    get: function get() {\n      return this._getFocusableItem(-1);\n    }\n    /**\n     * An index of the view in the {@link #focusables} which is focused according\n     * to {@link #focusTracker}. Returns `null` when there is no such view.\n     *\n     * @readonly\n     * @member {Number|null} #current\n     */\n\n  }, {\n    key: \"current\",\n    get: function get() {\n      var _this2 = this;\n\n      var index = null; // There's no focused view in the focusables.\n\n      if (this.focusTracker.focusedElement === null) {\n        return null;\n      }\n\n      this.focusables.find(function (view, viewIndex) {\n        var focused = view.element === _this2.focusTracker.focusedElement;\n\n        if (focused) {\n          index = viewIndex;\n        }\n\n        return focused;\n      });\n      return index;\n    }\n  }]);\n\n  return FocusCycler;\n}(); // Checks whether a view is focusable.\n//\n// @private\n// @param {module:ui/view~View} view A view to be checked.\n// @returns {Boolean}\n\n\nexport { FocusCycler as default };\n\nfunction isFocusable(view) {\n  return !!(view.focus && global.window.getComputedStyle(view.element).display != 'none');\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/web.dom.iterable\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/* global DOMParser */\n\n/**\n * @module ui/icon/iconview\n */\nimport View from \"../view\";\nimport \"../../theme/components/icon/icon.css\";\n/**\n * The icon view class.\n *\n * @extends module:ui/view~View\n */\n\nvar IconView = /*#__PURE__*/function (_View) {\n  _inherits(IconView, _View);\n\n  var _super = _createSuper(IconView);\n\n  /**\n   * @inheritDoc\n   */\n  function IconView() {\n    var _this;\n\n    _classCallCheck(this, IconView);\n\n    _this = _super.call(this);\n    var bind = _this.bindTemplate;\n    /**\n     * The SVG source of the icon.\n     *\n     * @observable\n     * @member {String} #content\n     */\n\n    _this.set('content', '');\n    /**\n     * This attribute specifies the boundaries to which the\n     * icon content should stretch.\n     *\n     * @observable\n     * @default '0 0 20 20'\n     * @member {String} #viewBox\n     */\n\n\n    _this.set('viewBox', '0 0 20 20');\n    /**\n     * The fill color of the child `path.ck-icon__fill`.\n     *\n     * @observable\n     * @default ''\n     * @member {String} #fillColor\n     */\n\n\n    _this.set('fillColor', '');\n\n    _this.setTemplate({\n      tag: 'svg',\n      ns: 'http://www.w3.org/2000/svg',\n      attributes: {\n        class: ['ck', 'ck-icon'],\n        viewBox: bind.to('viewBox')\n      }\n    });\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(IconView, [{\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      _get(_getPrototypeOf(IconView.prototype), \"render\", this).call(this);\n\n      this._updateXMLContent();\n\n      this._colorFillPaths(); // This is a hack for lack of innerHTML binding.\n      // See: https://github.com/ckeditor/ckeditor5-ui/issues/99.\n\n\n      this.on('change:content', function () {\n        _this2._updateXMLContent();\n\n        _this2._colorFillPaths();\n      });\n      this.on('change:fillColor', function () {\n        _this2._colorFillPaths();\n      });\n    }\n    /**\n     * Updates the {@link #element} with the value of {@link #content}.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_updateXMLContent\",\n    value: function _updateXMLContent() {\n      if (this.content) {\n        var parsed = new DOMParser().parseFromString(this.content.trim(), 'image/svg+xml');\n        var svg = parsed.querySelector('svg');\n        var viewBox = svg.getAttribute('viewBox');\n\n        if (viewBox) {\n          this.viewBox = viewBox;\n        }\n\n        this.element.innerHTML = '';\n\n        while (svg.childNodes.length > 0) {\n          this.element.appendChild(svg.childNodes[0]);\n        }\n      }\n    }\n    /**\n     * Fills all child `path.ck-icon__fill` with the `#fillColor`.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_colorFillPaths\",\n    value: function _colorFillPaths() {\n      var _this3 = this;\n\n      if (this.fillColor) {\n        this.element.querySelectorAll('.ck-icon__fill').forEach(function (path) {\n          path.style.fill = _this3.fillColor;\n        });\n      }\n    }\n  }]);\n\n  return IconView;\n}(View);\n\nexport { IconView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/inputtext/inputtextview\n */\nimport View from \"../view\";\nimport \"../../theme/components/inputtext/inputtext.css\";\n/**\n * The text input view class.\n *\n * @extends module:ui/view~View\n */\n\nvar InputTextView = /*#__PURE__*/function (_View) {\n  _inherits(InputTextView, _View);\n\n  var _super = _createSuper(InputTextView);\n\n  /**\n   * @inheritDoc\n   */\n  function InputTextView(locale) {\n    var _this;\n\n    _classCallCheck(this, InputTextView);\n\n    _this = _super.call(this, locale);\n    /**\n     * The value of the input.\n     *\n     * @observable\n     * @member {String} #value\n     */\n\n    _this.set('value');\n    /**\n     * The `id` attribute of the input (i.e. to pair with a `<label>` element).\n     *\n     * @observable\n     * @member {String} #id\n     */\n\n\n    _this.set('id');\n    /**\n     * The `placeholder` attribute of the input.\n     *\n     * @observable\n     * @member {String} #placeholder\n     */\n\n\n    _this.set('placeholder');\n    /**\n     * Controls whether the input view is in read-only mode.\n     *\n     * @observable\n     * @member {Boolean} #isReadOnly\n     */\n\n\n    _this.set('isReadOnly', false);\n    /**\n     * Set to `true` when the field has some error. Usually controlled via\n     * {@link module:ui/labeledinput/labeledinputview~LabeledInputView#errorText}.\n     *\n     * @observable\n     * @member {Boolean} #hasError\n     */\n\n\n    _this.set('hasError', false);\n    /**\n     * The `id` of the element describing this field, e.g. when it has\n     * some error, it helps screen readers read the error text.\n     *\n     * @observable\n     * @member {Boolean} #ariaDescribedById\n     */\n\n\n    _this.set('ariaDescribedById');\n\n    var bind = _this.bindTemplate;\n\n    _this.setTemplate({\n      tag: 'input',\n      attributes: {\n        type: 'text',\n        class: ['ck', 'ck-input', 'ck-input-text', bind.if('hasError', 'ck-error')],\n        id: bind.to('id'),\n        placeholder: bind.to('placeholder'),\n        readonly: bind.to('isReadOnly'),\n        'aria-invalid': bind.if('hasError', true),\n        'aria-describedby': bind.to('ariaDescribedById')\n      },\n      on: {\n        input: bind.to('input')\n      }\n    });\n    /**\n     * Fired when the user types in the input. Corresponds to the native\n     * DOM `input` event.\n     *\n     * @event input\n     */\n\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(InputTextView, [{\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      _get(_getPrototypeOf(InputTextView.prototype), \"render\", this).call(this);\n\n      var setValue = function setValue(value) {\n        _this2.element.value = !value && value !== 0 ? '' : value;\n      };\n\n      setValue(this.value); // Bind `this.value` to the DOM element's value.\n      // We cannot use `value` DOM attribute because removing it on Edge does not clear the DOM element's value property.\n\n      this.on('change:value', function (evt, name, value) {\n        setValue(value);\n      });\n    }\n    /**\n     * Moves the focus to the input and selects the value.\n     */\n\n  }, {\n    key: \"select\",\n    value: function select() {\n      this.element.select();\n    }\n    /**\n     * Focuses the input.\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this.element.focus();\n    }\n  }]);\n\n  return InputTextView;\n}(View);\n\nexport { InputTextView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/label/labelview\n */\nimport View from \"../view\";\nimport \"../../theme/components/label/label.css\";\n/**\n * The label view class.\n *\n * @extends module:ui/view~View\n */\n\nvar LabelView = /*#__PURE__*/function (_View) {\n  _inherits(LabelView, _View);\n\n  var _super = _createSuper(LabelView);\n\n  /**\n   * @inheritDoc\n   */\n  function LabelView(locale) {\n    var _this;\n\n    _classCallCheck(this, LabelView);\n\n    _this = _super.call(this, locale);\n    /**\n     * The text of the label.\n     *\n     * @observable\n     * @member {String} #text\n     */\n\n    _this.set('text');\n    /**\n     * The `for` attribute of the label (i.e. to pair with an `<input>` element).\n     *\n     * @observable\n     * @member {String} #for\n     */\n\n\n    _this.set('for');\n\n    var bind = _this.bindTemplate;\n\n    _this.setTemplate({\n      tag: 'label',\n      attributes: {\n        class: ['ck', 'ck-label'],\n        for: bind.to('for')\n      },\n      children: [{\n        text: bind.to('text')\n      }]\n    });\n\n    return _this;\n  }\n\n  return LabelView;\n}(View);\n\nexport { LabelView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _assertThisInitialized from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/labeledinput/labeledinputview\n */\nimport View from \"../view\";\nimport uid from '@ckeditor/ckeditor5-utils/src/uid';\nimport LabelView from \"../label/labelview\";\nimport \"../../theme/components/labeledinput/labeledinput.css\";\n/**\n * The labeled input view class.\n *\n * @extends module:ui/view~View\n */\n\nvar LabeledInputView = /*#__PURE__*/function (_View) {\n  _inherits(LabeledInputView, _View);\n\n  var _super = _createSuper(LabeledInputView);\n\n  /**\n   * Creates an instance of the labeled input view class.\n   *\n   * @param {module:utils/locale~Locale} locale The locale instance.\n   * @param {Function} InputView Constructor of the input view.\n   */\n  function LabeledInputView(locale, InputView) {\n    var _this;\n\n    _classCallCheck(this, LabeledInputView);\n\n    _this = _super.call(this, locale);\n    var inputUid = \"ck-input-\".concat(uid());\n    var statusUid = \"ck-status-\".concat(uid());\n    /**\n     * The text of the label.\n     *\n     * @observable\n     * @member {String} #label\n     */\n\n    _this.set('label');\n    /**\n     * The value of the input.\n     *\n     * @observable\n     * @member {String} #value\n     */\n\n\n    _this.set('value');\n    /**\n     * Controls whether the component is in read-only mode.\n     *\n     * @observable\n     * @member {Boolean} #isReadOnly\n     */\n\n\n    _this.set('isReadOnly', false);\n    /**\n     * The validation error text. When set, it will be displayed\n     * next to the {@link #inputView} as a typical validation error message.\n     * Set it to `null` to hide the message.\n     *\n     * **Note:** Setting this property to anything but `null` will automatically\n     * make the {@link module:ui/inputtext/inputtextview~InputTextView#hasError `hasError`}\n     * of the {@link #inputView} `true`.\n     *\n     * **Note:** Typing in the {@link #inputView} which fires the\n     * {@link module:ui/inputtext/inputtextview~InputTextView#event:input `input` event}\n     * resets this property back to `null`, indicating that the input field can be re–validated.\n     *\n     * @observable\n     * @member {String|null} #errorText\n     */\n\n\n    _this.set('errorText', null);\n    /**\n     * The additional information text displayed next to the {@link #inputView} which can\n     * be used to inform the user about the purpose of the input, provide help or hints.\n     *\n     * Set it to `null` to hide the message.\n     *\n     * **Note:** This text will be displayed in the same place as {@link #errorText} but the\n     * latter always takes precedence: if the {@link #errorText} is set, it replaces\n     * {@link #errorText} for as long as the value of the input is invalid.\n     *\n     * @observable\n     * @member {String|null} #infoText\n     */\n\n\n    _this.set('infoText', null);\n    /**\n     * The label view.\n     *\n     * @member {module:ui/label/labelview~LabelView} #labelView\n     */\n\n\n    _this.labelView = _this._createLabelView(inputUid);\n    /**\n     * The input view.\n     *\n     * @member {module:ui/inputtext/inputtextview~InputTextView} #inputView\n     */\n\n    _this.inputView = _this._createInputView(InputView, inputUid, statusUid);\n    /**\n     * The status view for the {@link #inputView}. It displays {@link #errorText} and\n     * {@link #infoText}.\n     *\n     * @member {module:ui/view~View} #statusView\n     */\n\n    _this.statusView = _this._createStatusView(statusUid);\n    /**\n     * The combined status text made of {@link #errorText} and {@link #infoText}.\n     * Note that when present, {@link #errorText} always takes precedence in the\n     * status.\n     *\n     * @see #errorText\n     * @see #infoText\n     * @see #statusView\n     * @private\n     * @observable\n     * @member {String|null} #_statusText\n     */\n\n    _this.bind('_statusText').to(_assertThisInitialized(_this), 'errorText', _assertThisInitialized(_this), 'infoText', function (errorText, infoText) {\n      return errorText || infoText;\n    });\n\n    var bind = _this.bindTemplate;\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-labeled-input', bind.if('isReadOnly', 'ck-disabled')]\n      },\n      children: [_this.labelView, _this.inputView, _this.statusView]\n    });\n\n    return _this;\n  }\n  /**\n   * Creates label view class instance and bind with view.\n   *\n   * @private\n   * @param {String} id Unique id to set as labelView#for attribute.\n   * @returns {module:ui/label/labelview~LabelView}\n   */\n\n\n  _createClass(LabeledInputView, [{\n    key: \"_createLabelView\",\n    value: function _createLabelView(id) {\n      var labelView = new LabelView(this.locale);\n      labelView.for = id;\n      labelView.bind('text').to(this, 'label');\n      return labelView;\n    }\n    /**\n     * Creates input view class instance and bind with view.\n     *\n     * @private\n     * @param {Function} InputView Input view constructor.\n     * @param {String} inputUid Unique id to set as inputView#id attribute.\n     * @param {String} statusUid Unique id of the status for the input's `aria-describedby` attribute.\n     * @returns {module:ui/inputtext/inputtextview~InputTextView}\n     */\n\n  }, {\n    key: \"_createInputView\",\n    value: function _createInputView(InputView, inputUid, statusUid) {\n      var _this2 = this;\n\n      var inputView = new InputView(this.locale, statusUid);\n      inputView.id = inputUid;\n      inputView.ariaDescribedById = statusUid;\n      inputView.bind('value').to(this);\n      inputView.bind('isReadOnly').to(this);\n      inputView.bind('hasError').to(this, 'errorText', function (value) {\n        return !!value;\n      });\n      inputView.on('input', function () {\n        // UX: Make the error text disappear and disable the error indicator as the user\n        // starts fixing the errors.\n        _this2.errorText = null;\n      });\n      return inputView;\n    }\n    /**\n     * Creates the status view instance. It displays {@link #errorText} and {@link #infoText}\n     * next to the {@link #inputView}. See {@link #_statusText}.\n     *\n     * @private\n     * @param {String} statusUid Unique id of the status, shared with the input's `aria-describedby` attribute.\n     * @returns {module:ui/view~View}\n     */\n\n  }, {\n    key: \"_createStatusView\",\n    value: function _createStatusView(statusUid) {\n      var statusView = new View(this.locale);\n      var bind = this.bindTemplate;\n      statusView.setTemplate({\n        tag: 'div',\n        attributes: {\n          class: ['ck', 'ck-labeled-input__status', bind.if('errorText', 'ck-labeled-input__status_error'), bind.if('_statusText', 'ck-hidden', function (value) {\n            return !value;\n          })],\n          id: statusUid,\n          role: bind.if('errorText', 'alert')\n        },\n        children: [{\n          text: bind.to('_statusText')\n        }]\n      });\n      return statusView;\n    }\n    /**\n     * Moves the focus to the input and selects the value.\n     */\n\n  }, {\n    key: \"select\",\n    value: function select() {\n      this.inputView.select();\n    }\n    /**\n     * Focuses the input.\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this.inputView.focus();\n    }\n  }]);\n\n  return LabeledInputView;\n}(View);\n\nexport { LabeledInputView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/list/listitemview\n */\nimport View from \"../view\";\n/**\n * The list item view class.\n *\n * @extends module:ui/view~View\n */\n\nvar ListItemView = /*#__PURE__*/function (_View) {\n  _inherits(ListItemView, _View);\n\n  var _super = _createSuper(ListItemView);\n\n  /**\n   * @inheritDoc\n   */\n  function ListItemView(locale) {\n    var _this;\n\n    _classCallCheck(this, ListItemView);\n\n    _this = _super.call(this, locale);\n    /**\n     * Collection of the child views inside of the list item {@link #element}.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n    _this.children = _this.createCollection();\n\n    _this.setTemplate({\n      tag: 'li',\n      attributes: {\n        class: ['ck', 'ck-list__item']\n      },\n      children: _this.children\n    });\n\n    return _this;\n  }\n  /**\n   * Focuses the list item.\n   */\n\n\n  _createClass(ListItemView, [{\n    key: \"focus\",\n    value: function focus() {\n      this.children.first.focus();\n    }\n  }]);\n\n  return ListItemView;\n}(View);\n\nexport { ListItemView as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/list/listseparatorview\n */\nimport View from \"../view\";\n/**\n * The list separator view class.\n *\n * @extends module:ui/view~View\n */\n\nvar ListSeparatorView = /*#__PURE__*/function (_View) {\n  _inherits(ListSeparatorView, _View);\n\n  var _super = _createSuper(ListSeparatorView);\n\n  /**\n   * @inheritDoc\n   */\n  function ListSeparatorView(locale) {\n    var _this;\n\n    _classCallCheck(this, ListSeparatorView);\n\n    _this = _super.call(this, locale);\n\n    _this.setTemplate({\n      tag: 'li',\n      attributes: {\n        class: ['ck', 'ck-list__separator']\n      }\n    });\n\n    return _this;\n  }\n\n  return ListSeparatorView;\n}(View);\n\nexport { ListSeparatorView as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/list/listview\n */\nimport View from \"../view\";\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from \"../focuscycler\";\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport \"../../theme/components/list/list.css\";\n/**\n * The list view class.\n *\n * @extends module:ui/view~View\n * @implements module:ui/dropdown/dropdownpanelfocusable~DropdownPanelFocusable\n */\n\nvar ListView = /*#__PURE__*/function (_View) {\n  _inherits(ListView, _View);\n\n  var _super = _createSuper(ListView);\n\n  /**\n   * @inheritDoc\n   */\n  function ListView() {\n    var _this;\n\n    _classCallCheck(this, ListView);\n\n    _this = _super.call(this);\n    /**\n     * Collection of the child list views.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n    _this.items = _this.createCollection();\n    /**\n     * Tracks information about DOM focus in the list.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n\n    _this.focusTracker = new FocusTracker();\n    /**\n     * Instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n\n    _this.keystrokes = new KeystrokeHandler();\n    /**\n     * Helps cycling over focusable {@link #items} in the list.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\n     */\n\n    _this._focusCycler = new FocusCycler({\n      focusables: _this.items,\n      focusTracker: _this.focusTracker,\n      keystrokeHandler: _this.keystrokes,\n      actions: {\n        // Navigate list items backwards using the arrowup key.\n        focusPrevious: 'arrowup',\n        // Navigate toolbar items forwards using the arrowdown key.\n        focusNext: 'arrowdown'\n      }\n    });\n\n    _this.setTemplate({\n      tag: 'ul',\n      attributes: {\n        class: ['ck', 'ck-reset', 'ck-list']\n      },\n      children: _this.items\n    });\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(ListView, [{\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      _get(_getPrototypeOf(ListView.prototype), \"render\", this).call(this); // Items added before rendering should be known to the #focusTracker.\n\n\n      var _iterator = _createForOfIteratorHelper(this.items),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var item = _step.value;\n          this.focusTracker.add(item.element);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n\n      this.items.on('add', function (evt, item) {\n        _this2.focusTracker.add(item.element);\n      });\n      this.items.on('remove', function (evt, item) {\n        _this2.focusTracker.remove(item.element);\n      }); // Start listening for the keystrokes coming from #element.\n\n      this.keystrokes.listenTo(this.element);\n    }\n    /**\n     * Focuses the first focusable in {@link #items}.\n     */\n\n  }, {\n    key: \"focus\",\n    value: function focus() {\n      this._focusCycler.focusFirst();\n    }\n    /**\n     * Focuses the last focusable in {@link #items}.\n     */\n\n  }, {\n    key: \"focusLast\",\n    value: function focusLast() {\n      this._focusCycler.focusLast();\n    }\n  }]);\n\n  return ListView;\n}(View);\n\nexport { ListView as default };","import _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/model\n */\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport { extend } from 'lodash-es';\n/**\n * The base MVC model class.\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar Model =\n/**\n * Creates a new Model instance.\n *\n * @param {Object} [attributes] The model state attributes to be defined during the instance creation.\n * @param {Object} [properties] The (out of state) properties to be appended to the instance during creation.\n */\nfunction Model(attributes, properties) {\n  _classCallCheck(this, Model);\n\n  // Extend this instance with the additional (out of state) properties.\n  if (properties) {\n    extend(this, properties);\n  } // Initialize the attributes.\n\n\n  if (attributes) {\n    this.set(attributes);\n  }\n};\n\nexport { Model as default };\nmix(Model, ObservableMixin);","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/notification/notification\n */\n\n/* globals window */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\n/**\n * The Notification plugin.\n *\n * This plugin sends a few types of notifications: `success`, `info` and `warning`. The notifications need to be\n * handled and displayed by a plugin responsible for showing the UI of the notifications. Using this plugin for dispatching\n * notifications makes it possible to switch the notifications UI.\n *\n * Note that every unhandled and not stopped `warning` notification will be displayed as a system alert.\n * See {@link module:ui/notification/notification~Notification#showWarning}.\n *\n * @extends module:core/plugin~Plugin\n */\n\nvar Notification = /*#__PURE__*/function (_Plugin) {\n  _inherits(Notification, _Plugin);\n\n  var _super = _createSuper(Notification);\n\n  function Notification() {\n    _classCallCheck(this, Notification);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(Notification, [{\n    key: \"init\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function init() {\n      // Each unhandled and not stopped `show:warning` event is displayed as a system alert.\n      this.on('show:warning', function (evt, data) {\n        window.alert(data.message); // eslint-disable-line no-alert\n      }, {\n        priority: 'lowest'\n      });\n    }\n    /**\n     * Shows a success notification.\n     *\n     * By default, it fires the {@link #event:show:success `show:success` event} with the given `data`. The event namespace can be extended\n     * using the `data.namespace` option. For example:\n     *\n     * \t\tshowSuccess( 'Image is uploaded.', {\n     * \t\t\tnamespace: 'upload:image'\n     * \t\t} );\n     *\n     * will fire the `show:success:upload:image` event.\n     *\n     * You can provide the title of the notification:\n     *\n     *\t\tshowSuccess( 'Image is uploaded.', {\n     *\t\t\ttitle: 'Image upload success'\n     *\t\t} );\n     *\n     * @param {String} message The content of the notification.\n     * @param {Object} [data={}] Additional data.\n     * @param {String} [data.namespace] Additional event namespace.\n     * @param {String} [data.title] The title of the notification.\n     */\n\n  }, {\n    key: \"showSuccess\",\n    value: function showSuccess(message) {\n      var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      this._showNotification({\n        message: message,\n        type: 'success',\n        namespace: data.namespace,\n        title: data.title\n      });\n    }\n    /**\n     * Shows an information notification.\n     *\n     * By default, it fires the {@link #event:show:info `show:info` event} with the given `data`. The event namespace can be extended\n     * using the `data.namespace` option. For example:\n     *\n     * \t\tshowInfo( 'Editor is offline.', {\n     * \t\t\tnamespace: 'editor:status'\n     * \t\t} );\n     *\n     * will fire the `show:info:editor:status` event.\n     *\n     * You can provide the title of the notification:\n     *\n     *\t\tshowInfo( 'Editor is offline.', {\n     *\t\t\ttitle: 'Network information'\n     *\t\t} );\n     *\n     * @param {String} message The content of the notification.\n     * @param {Object} [data={}] Additional data.\n     * @param {String} [data.namespace] Additional event namespace.\n     * @param {String} [data.title] The title of the notification.\n     */\n\n  }, {\n    key: \"showInfo\",\n    value: function showInfo(message) {\n      var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      this._showNotification({\n        message: message,\n        type: 'info',\n        namespace: data.namespace,\n        title: data.title\n      });\n    }\n    /**\n     * Shows a warning notification.\n     *\n     * By default, it fires the {@link #event:show:warning `show:warning` event}\n     * with the given `data`. The event namespace can be extended using the `data.namespace` option. For example:\n     *\n     * \t\tshowWarning( 'Image upload error.', {\n     * \t\t\tnamespace: 'upload:image'\n     * \t\t} );\n     *\n     * will fire the `show:warning:upload:image` event.\n     *\n     * You can provide the title of the notification:\n     *\n     *\t\tshowWarning( 'Image upload error.', {\n     *\t\t\ttitle: 'Upload failed'\n     *\t\t} );\n     *\n     * Note that each unhandled and not stopped `warning` notification will be displayed as a system alert.\n     * The plugin responsible for displaying warnings should `stop()` the event to prevent displaying it as an alert:\n     *\n     * \t\tnotifications.on( 'show:warning', ( evt, data ) => {\n     * \t\t\t// Do something with the data.\n     *\n     * \t\t\t// Stop this event to prevent displaying it as an alert.\n     * \t\t\tevt.stop();\n     * \t\t} );\n     *\n     * You can attach many listeners to the same event and `stop()` this event in a listener with a low priority:\n     *\n     * \t\tnotifications.on( 'show:warning', ( evt, data ) => {\n     * \t\t\t// Show the warning in the UI, but do not stop it.\n     * \t\t} );\n     *\n     * \t\tnotifications.on( 'show:warning', ( evt, data ) => {\n     * \t\t\t// Log the warning to some error tracker.\n     *\n     * \t\t\t// Stop this event to prevent displaying it as an alert.\n     * \t\t\tevt.stop();\n     * \t\t}, { priority: 'low' } );\n     *\n     * @param {String} message The content of the notification.\n     * @param {Object} [data={}] Additional data.\n     * @param {String} [data.namespace] Additional event namespace.\n     * @param {String} [data.title] The title of the notification.\n     */\n\n  }, {\n    key: \"showWarning\",\n    value: function showWarning(message) {\n      var data = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n      this._showNotification({\n        message: message,\n        type: 'warning',\n        namespace: data.namespace,\n        title: data.title\n      });\n    }\n    /**\n     * Fires the `show` event with the specified type, namespace and message.\n     *\n     * @private\n     * @param {Object} data The message data.\n     * @param {String} data.message The content of the notification.\n     * @param {'success'|'info'|'warning'} data.type The type of the message.\n     * @param {String} [data.namespace] Additional event namespace.\n     * @param {String} [data.title=''] The title of the notification.\n     */\n\n  }, {\n    key: \"_showNotification\",\n    value: function _showNotification(data) {\n      var event = \"show:\".concat(data.type) + (data.namespace ? \":\".concat(data.namespace) : '');\n      this.fire(event, {\n        message: data.message,\n        type: data.type,\n        title: data.title || ''\n      });\n    }\n    /**\n     * Fired when one of the `showSuccess()`, `showInfo()`, `showWarning()` methods is called.\n     *\n     * @event show\n     * @param {Object} data The notification data.\n     * @param {String} data.message The content of the notification.\n     * @param {String} data.title The title of the notification.\n     * @param {'success'|'info'|'warning'} data.type The type of the notification.\n     */\n\n    /**\n     * Fired when the `showSuccess()` method is called.\n     *\n     * @event show:success\n     * @param {Object} data The notification data.\n     * @param {String} data.message The content of the notification.\n     * @param {String} data.title The title of the notification.\n     * @param {'success'} data.type The type of the notification.\n     */\n\n    /**\n     * Fired when the `showInfo()` method is called.\n     *\n     * @event show:info\n     * @param {Object} data The notification data.\n     * @param {String} data.message The content of the notification.\n     * @param {String} data.title The title of the notification.\n     * @param {'info'} data.type The type of the notification.\n     */\n\n    /**\n     * Fired when the `showWarning()` method is called.\n     *\n     * When this event is not handled or stopped by `event.stop()`, the `data.message` of this event will\n     * be automatically displayed as a system alert.\n     *\n     * @event show:warning\n     * @param {Object} data The notification data.\n     * @param {String} data.message The content of the notification.\n     * @param {String} data.title The title of the notification.\n     * @param {'warning'} data.type The type of the notification.\n     */\n\n  }], [{\n    key: \"pluginName\",\n\n    /**\n     * @inheritDoc\n     */\n    get: function get() {\n      return 'Notification';\n    }\n  }]);\n\n  return Notification;\n}(Plugin);\n\nexport { Notification as default };","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport \"core-js/modules/es6.function.name\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md.\n */\n\n/**\n * @module ui/panel/balloon/balloonpanelview\n */\nimport View from \"../../view\";\nimport { getOptimalPosition } from '@ckeditor/ckeditor5-utils/src/dom/position';\nimport isRange from '@ckeditor/ckeditor5-utils/src/dom/isrange';\nimport toUnit from '@ckeditor/ckeditor5-utils/src/dom/tounit';\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport { isElement } from 'lodash-es';\nimport \"../../../theme/components/panel/balloonpanel.css\";\nvar toPx = toUnit('px');\nvar defaultLimiterElement = global.document.body;\n/**\n * The balloon panel view class.\n *\n * A floating container which can\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#pin pin} to any\n * {@link module:utils/dom/position~Options#target target} in the DOM and remain in that position\n * e.g. when the web page is scrolled.\n *\n * The balloon panel can be used to display contextual, non-blocking UI like forms, toolbars and\n * the like in its {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#content} view\n * collection.\n *\n * There is a number of {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}\n * that the balloon can use, automatically switching from one to another when the viewport space becomes\n * scarce to keep the balloon visible to the user as long as it is possible. The balloon will also\n * accept any custom position set provided by the user compatible with the\n * {@link module:utils/dom/position~Options options}.\n *\n *\t\tconst panel = new BalloonPanelView( locale );\n *\t\tconst childView = new ChildView();\n *\t\tconst positions = BalloonPanelView.defaultPositions;\n *\n *\t\tpanel.render();\n *\n *\t\t// Add a child view to the panel's content collection.\n *\t\tpanel.content.add( childView );\n *\n *\t\t// Start pinning the panel to an element with the \"target\" id DOM.\n *\t\t// The balloon will remain pinned until unpin() is called.\n *\t\tpanel.pin( {\n *\t\t\ttarget: document.querySelector( '#target' ),\n *\t\t\tpositions: [\n *\t\t\t\tpositions.northArrowSouth,\n *\t\t\t\tpositions.southArrowNorth\n *\t\t\t]\n *\t\t} );\n *\n * @extends module:ui/view~View\n */\n\nvar BalloonPanelView = /*#__PURE__*/function (_View) {\n  _inherits(BalloonPanelView, _View);\n\n  var _super = _createSuper(BalloonPanelView);\n\n  /**\n   * @inheritDoc\n   */\n  function BalloonPanelView(locale) {\n    var _this;\n\n    _classCallCheck(this, BalloonPanelView);\n\n    _this = _super.call(this, locale);\n    var bind = _this.bindTemplate;\n    /**\n     * The absolute top position of the balloon panel in pixels.\n     *\n     * @observable\n     * @default 0\n     * @member {Number} #top\n     */\n\n    _this.set('top', 0);\n    /**\n     * The absolute left position of the balloon panel in pixels.\n     *\n     * @observable\n     * @default 0\n     * @member {Number} #left\n     */\n\n\n    _this.set('left', 0);\n    /**\n     * The balloon panel's current position. The position name is reflected in the CSS class set\n     * to the balloon, i.e. `.ck-balloon-panel_arrow_nw` for the \"arrow_nw\" position. The class\n     * controls the minor aspects of the balloon's visual appearance like the placement\n     * of an {@link #withArrow arrow}. To support a new position, an additional CSS must be created.\n     *\n     * Default position names correspond with\n     * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n     *\n     * See the {@link #attachTo} and {@link #pin} methods to learn about custom balloon positions.\n     *\n     * @observable\n     * @default 'arrow_nw'\n     * @member {'arrow_nw'|'arrow_ne'|'arrow_sw'|'arrow_se'} #position\n     */\n\n\n    _this.set('position', 'arrow_nw');\n    /**\n     * Controls whether the balloon panel is visible or not.\n     *\n     * @observable\n     * @default false\n     * @member {Boolean} #isVisible\n     */\n\n\n    _this.set('isVisible', false);\n    /**\n     * Controls whether the balloon panel has an arrow. The presence of the arrow\n     * is reflected in the `ck-balloon-panel_with-arrow` CSS class.\n     *\n     * @observable\n     * @default true\n     * @member {Boolean} #withArrow\n     */\n\n\n    _this.set('withArrow', true);\n    /**\n     * An additional CSS class added to the {@link #element}.\n     *\n     * @observable\n     * @member {String} #class\n     */\n\n\n    _this.set('class');\n    /**\n     * A callback that starts pinning the panel when {@link #isVisible} gets\n     * `true`. Used by {@link #pin}.\n     *\n     * @private\n     * @member {Function} #_pinWhenIsVisibleCallback\n     */\n\n    /**\n     * A collection of the child views that creates the balloon panel contents.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n\n    _this.content = _this.createCollection();\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-balloon-panel', bind.to('position', function (value) {\n          return \"ck-balloon-panel_\".concat(value);\n        }), bind.if('isVisible', 'ck-balloon-panel_visible'), bind.if('withArrow', 'ck-balloon-panel_with-arrow'), bind.to('class')],\n        style: {\n          top: bind.to('top', toPx),\n          left: bind.to('left', toPx)\n        }\n      },\n      children: _this.content\n    });\n\n    return _this;\n  }\n  /**\n   * Shows the panel.\n   *\n   * See {@link #isVisible}.\n   */\n\n\n  _createClass(BalloonPanelView, [{\n    key: \"show\",\n    value: function show() {\n      this.isVisible = true;\n    }\n    /**\n     * Hides the panel.\n     *\n     * See {@link #isVisible}.\n     */\n\n  }, {\n    key: \"hide\",\n    value: function hide() {\n      this.isVisible = false;\n    }\n    /**\n     * Attaches the panel to a specified {@link module:utils/dom/position~Options#target} with a\n     * smart positioning heuristics that chooses from available positions to make sure the panel\n     * is visible to the user i.e. within the limits of the viewport.\n     *\n     * This method accepts configuration {@link module:utils/dom/position~Options options}\n     * to set the `target`, optional `limiter` and `positions` the balloon should choose from.\n     *\n     *\t\tconst panel = new BalloonPanelView( locale );\n     *\t\tconst positions = BalloonPanelView.defaultPositions;\n     *\n     *\t\tpanel.render();\n     *\n     *\t\t// Attach the panel to an element with the \"target\" id DOM.\n     *\t\tpanel.attachTo( {\n     *\t\t\ttarget: document.querySelector( '#target' ),\n     *\t\t\tpositions: [\n     *\t\t\t\tpositions.northArrowSouth,\n     *\t\t\t\tpositions.southArrowNorth\n     *\t\t\t]\n     *\t\t} );\n     *\n     * **Note**: Attaching the panel will also automatically {@link #show} it.\n     *\n     * **Note**: An attached panel will not follow its target when the window is scrolled or resized.\n     * See the {@link #pin} method for a more permanent positioning strategy.\n     *\n     * @param {module:utils/dom/position~Options} options Positioning options compatible with\n     * {@link module:utils/dom/position~getOptimalPosition}. Default `positions` array is\n     * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n     */\n\n  }, {\n    key: \"attachTo\",\n    value: function attachTo(options) {\n      this.show();\n      var defaultPositions = BalloonPanelView.defaultPositions;\n      var positionOptions = Object.assign({}, {\n        element: this.element,\n        positions: [defaultPositions.southArrowNorth, defaultPositions.southArrowNorthWest, defaultPositions.southArrowNorthEast, defaultPositions.northArrowSouth, defaultPositions.northArrowSouthWest, defaultPositions.northArrowSouthEast],\n        limiter: defaultLimiterElement,\n        fitInViewport: true\n      }, options);\n\n      var optimalPosition = BalloonPanelView._getOptimalPosition(positionOptions); // Usually browsers make some problems with super accurate values like 104.345px\n      // so it is better to use int values.\n\n\n      var left = parseInt(optimalPosition.left);\n      var top = parseInt(optimalPosition.top);\n      var position = optimalPosition.name;\n      Object.assign(this, {\n        top: top,\n        left: left,\n        position: position\n      });\n    }\n    /**\n     * Works the same way as the {@link #attachTo} method except that the position of the panel is\n     * continuously updated when:\n     *\n     * * any ancestor of the {@link module:utils/dom/position~Options#target}\n     * or {@link module:utils/dom/position~Options#limiter} is scrolled,\n     * * the browser window gets resized or scrolled.\n     *\n     * Thanks to that, the panel always sticks to the {@link module:utils/dom/position~Options#target}\n     * and is immune to the changing environment.\n     *\n     *\t\tconst panel = new BalloonPanelView( locale );\n     *\t\tconst positions = BalloonPanelView.defaultPositions;\n     *\n     *\t\tpanel.render();\n     *\n     *\t\t// Pin the panel to an element with the \"target\" id DOM.\n     *\t\tpanel.pin( {\n     *\t\t\ttarget: document.querySelector( '#target' ),\n     *\t\t\tpositions: [\n     *\t\t\t\tpositions.northArrowSouth,\n     *\t\t\t\tpositions.southArrowNorth\n     *\t\t\t]\n     *\t\t} );\n     *\n     * To leave the pinned state, use the {@link #unpin} method.\n     *\n     * **Note**: Pinning the panel will also automatically {@link #show} it.\n     *\n     * @param {module:utils/dom/position~Options} options Positioning options compatible with\n     * {@link module:utils/dom/position~getOptimalPosition}. Default `positions` array is\n     * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions}.\n     */\n\n  }, {\n    key: \"pin\",\n    value: function pin(options) {\n      var _this2 = this;\n\n      this.unpin();\n\n      this._pinWhenIsVisibleCallback = function () {\n        if (_this2.isVisible) {\n          _this2._startPinning(options);\n        } else {\n          _this2._stopPinning();\n        }\n      };\n\n      this._startPinning(options); // Control the state of the listeners depending on whether the panel is visible\n      // or not.\n      // TODO: Use on() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n\n\n      this.listenTo(this, 'change:isVisible', this._pinWhenIsVisibleCallback);\n    }\n    /**\n     * Stops pinning the panel, as set up by {@link #pin}.\n     */\n\n  }, {\n    key: \"unpin\",\n    value: function unpin() {\n      if (this._pinWhenIsVisibleCallback) {\n        // Deactivate listeners attached by pin().\n        this._stopPinning(); // Deactivate the panel pin() control logic.\n        // TODO: Use off() (https://github.com/ckeditor/ckeditor5-utils/issues/144).\n\n\n        this.stopListening(this, 'change:isVisible', this._pinWhenIsVisibleCallback);\n        this._pinWhenIsVisibleCallback = null;\n        this.hide();\n      }\n    }\n    /**\n     * Starts managing the pinned state of the panel. See {@link #pin}.\n     *\n     * @private\n     * @param {module:utils/dom/position~Options} options Positioning options compatible with\n     * {@link module:utils/dom/position~getOptimalPosition}.\n     */\n\n  }, {\n    key: \"_startPinning\",\n    value: function _startPinning(options) {\n      var _this3 = this;\n\n      this.attachTo(options);\n      var targetElement = getDomElement(options.target);\n      var limiterElement = options.limiter ? getDomElement(options.limiter) : defaultLimiterElement; // Then we need to listen on scroll event of eny element in the document.\n\n      this.listenTo(global.document, 'scroll', function (evt, domEvt) {\n        var scrollTarget = domEvt.target; // The position needs to be updated if the positioning target is within the scrolled element.\n\n        var isWithinScrollTarget = targetElement && scrollTarget.contains(targetElement); // The position needs to be updated if the positioning limiter is within the scrolled element.\n\n        var isLimiterWithinScrollTarget = limiterElement && scrollTarget.contains(limiterElement); // The positioning target and/or limiter can be a Rect, object etc..\n        // There's no way to optimize the listener then.\n\n        if (isWithinScrollTarget || isLimiterWithinScrollTarget || !targetElement || !limiterElement) {\n          _this3.attachTo(options);\n        }\n      }, {\n        useCapture: true\n      }); // We need to listen on window resize event and update position.\n\n      this.listenTo(global.window, 'resize', function () {\n        _this3.attachTo(options);\n      });\n    }\n    /**\n     * Stops managing the pinned state of the panel. See {@link #pin}.\n     *\n     * @private\n     */\n\n  }, {\n    key: \"_stopPinning\",\n    value: function _stopPinning() {\n      this.stopListening(global.document, 'scroll');\n      this.stopListening(global.window, 'resize');\n    }\n  }]);\n\n  return BalloonPanelView;\n}(View); // Returns the DOM element for given object or null, if there is none,\n// e.g. when the passed object is a Rect instance or so.\n//\n// @private\n// @param {*} object\n// @returns {HTMLElement|null}\n\n\nexport { BalloonPanelView as default };\n\nfunction getDomElement(object) {\n  if (isElement(object)) {\n    return object;\n  }\n\n  if (isRange(object)) {\n    return object.commonAncestorContainer;\n  }\n\n  if (typeof object == 'function') {\n    return getDomElement(object());\n  }\n\n  return null;\n}\n/**\n * A horizontal offset of the arrow tip from the edge of the balloon. Controlled by CSS.\n *\n *\t\t +-----|---------...\n *\t\t |     |\n *\t\t |     |\n *\t\t |     |\n *\t\t |     |\n *\t\t +--+  |  +------...\n *\t\t     \\ | /\n *\t\t      \\|/\n *\t    >|-----|<---------------- horizontal offset\n *\n * @default 30\n * @member {Number} module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowHorizontalOffset\n */\n\n\nBalloonPanelView.arrowHorizontalOffset = 25;\n/**\n * A vertical offset of the arrow from the edge of the balloon. Controlled by CSS.\n *\n *\t\t +-------------...\n *\t\t |\n *\t\t |\n *\t\t |                      /-- vertical offset\n *\t\t |                     V\n *\t\t +--+    +-----...    ---------\n *\t\t     \\  /              |\n *\t\t      \\/               |\n *\t\t-------------------------------\n *\t\t                       ^\n *\n * @default 15\n * @member {Number} module:ui/panel/balloon/balloonpanelview~BalloonPanelView.arrowVerticalOffset\n */\n\nBalloonPanelView.arrowVerticalOffset = 10;\n/**\n * Function used to calculate the optimal position for the balloon.\n *\n * @protected\n * @member {Function} module:ui/panel/balloon/balloonpanelview~BalloonPanelView._getOptimalPosition\n */\n\nBalloonPanelView._getOptimalPosition = getOptimalPosition;\n/**\n * A default set of positioning functions used by the balloon panel view\n * when attaching using the {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo} method.\n *\n * The available positioning functions are as follows:\n *\n * **North**\n *\n * * `northArrowSouth`\n *\n * \t\t+-----------------+\n * \t\t|     Balloon     |\n * \t\t+-----------------+\n * \t\t         V\n * \t\t    [ Target ]\n *\n * * `northArrowSouthEast`\n *\n * \t\t+-----------------+\n * \t\t|     Balloon     |\n * \t\t+-----------------+\n * \t\t               V\n * \t\t          [ Target ]\n *\n * * `northArrowSouthWest`\n *\n * \t\t  +-----------------+\n * \t\t  |     Balloon     |\n * \t\t  +-----------------+\n * \t\t     V\n * \t\t[ Target ]\n *\n * **North west**\n *\n * * `northWestArrowSouth`\n *\n * \t\t+-----------------+\n * \t\t|     Balloon     |\n * \t\t+-----------------+\n * \t\t         V\n * \t\t         [ Target ]\n *\n * * `northWestArrowSouthWest`\n *\n * \t\t+-----------------+\n * \t\t|     Balloon     |\n * \t\t+-----------------+\n * \t\t   V\n * \t\t   [ Target ]\n *\n * * `northWestArrowSouthEast`\n *\n * \t\t+-----------------+\n * \t\t|     Balloon     |\n * \t\t+-----------------+\n * \t\t               V\n * \t\t               [ Target ]\n *\n * **North east**\n *\n * * `northEastArrowSouth`\n *\n * \t\t+-----------------+\n * \t\t|     Balloon     |\n * \t\t+-----------------+\n * \t\t         V\n * \t\t[ Target ]\n *\n * * `northEastArrowSouthEast`\n *\n * \t\t+-----------------+\n * \t\t|     Balloon     |\n * \t\t+-----------------+\n * \t\t               V\n * \t\t      [ Target ]\n *\n * * `northEastArrowSouthWest`\n *\n * \t\t      +-----------------+\n * \t\t      |     Balloon     |\n * \t\t      +-----------------+\n * \t\t         V\n * \t\t[ Target ]\n *\n * **South**\n *\n * * `southArrowNorth`\n *\n *\t\t    [ Target ]\n *\t\t         ^\n *\t\t+-----------------+\n *\t\t|     Balloon     |\n *\t\t+-----------------+\n *\n * * `southArrowNorthEast`\n *\n *\t\t          [ Target ]\n *\t\t               ^\n *\t\t+-----------------+\n *\t\t|     Balloon     |\n *\t\t+-----------------+\n *\n * * `southArrowNorthWest`\n *\n *\t\t[ Target ]\n *\t\t     ^\n *\t\t   +-----------------+\n *\t\t   |     Balloon     |\n *\t\t   +-----------------+\n *\n * **South west**\n *\n * * `southWestArrowNorth`\n *\n *\t\t         [ Target ]\n *\t\t         ^\n *\t\t+-----------------+\n *\t\t|     Balloon     |\n *\t\t+-----------------+\n *\n * * `southWestArrowNorthWest`\n *\n *\t\t  [ Target ]\n *\t\t  ^\n *\t\t+-----------------+\n *\t\t|     Balloon     |\n *\t\t+-----------------+\n *\n * * `southWestArrowNorthEast`\n *\n *\t\t               [ Target ]\n *\t\t               ^\n *\t\t+-----------------+\n *\t\t|     Balloon     |\n *\t\t+-----------------+\n *\n * **South east**\n *\n * * `southEastArrowNorth`\n *\n *\t\t[ Target ]\n *\t\t         ^\n *\t\t+-----------------+\n *\t\t|     Balloon     |\n *\t\t+-----------------+\n *\n * * `southEastArrowNorthEast`\n *\n *\t\t       [ Target ]\n *\t\t                ^\n *\t\t+-----------------+\n *\t\t|     Balloon     |\n *\t\t+-----------------+\n *\n * * `southEastArrowNorthWest`\n *\n *\t\t[ Target ]\n *\t\t         ^\n *\t\t       +-----------------+\n *\t\t       |     Balloon     |\n *\t\t       +-----------------+\n *\n * See {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView#attachTo}.\n *\n * Positioning functions must be compatible with {@link module:utils/dom/position~Position}.\n *\n * The name that the position function returns will be reflected in the balloon panel's class that\n * controls the placement of the \"arrow\". See {@link #position} to learn more.\n *\n * @member {Object} module:ui/panel/balloon/balloonpanelview~BalloonPanelView.defaultPositions\n */\n\nBalloonPanelView.defaultPositions = {\n  // ------- North\n  northArrowSouth: function northArrowSouth(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n      name: 'arrow_s'\n    };\n  },\n  northArrowSouthEast: function northArrowSouthEast(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.left + targetRect.width / 2 - balloonRect.width + BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_se'\n    };\n  },\n  northArrowSouthWest: function northArrowSouthWest(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.left + targetRect.width / 2 - BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_sw'\n    };\n  },\n  // ------- North west\n  northWestArrowSouth: function northWestArrowSouth(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.left - balloonRect.width / 2,\n      name: 'arrow_s'\n    };\n  },\n  northWestArrowSouthWest: function northWestArrowSouthWest(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.left - BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_sw'\n    };\n  },\n  northWestArrowSouthEast: function northWestArrowSouthEast(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.left - balloonRect.width + BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_se'\n    };\n  },\n  // ------- North east\n  northEastArrowSouth: function northEastArrowSouth(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.right - balloonRect.width / 2,\n      name: 'arrow_s'\n    };\n  },\n  northEastArrowSouthEast: function northEastArrowSouthEast(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.right - balloonRect.width + BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_se'\n    };\n  },\n  northEastArrowSouthWest: function northEastArrowSouthWest(targetRect, balloonRect) {\n    return {\n      top: getNorthTop(targetRect, balloonRect),\n      left: targetRect.right - BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_sw'\n    };\n  },\n  // ------- South\n  southArrowNorth: function southArrowNorth(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.left + targetRect.width / 2 - balloonRect.width / 2,\n      name: 'arrow_n'\n    };\n  },\n  southArrowNorthEast: function southArrowNorthEast(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.left + targetRect.width / 2 - balloonRect.width + BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_ne'\n    };\n  },\n  southArrowNorthWest: function southArrowNorthWest(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.left + targetRect.width / 2 - BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_nw'\n    };\n  },\n  // ------- South west\n  southWestArrowNorth: function southWestArrowNorth(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.left - balloonRect.width / 2,\n      name: 'arrow_n'\n    };\n  },\n  southWestArrowNorthWest: function southWestArrowNorthWest(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.left - BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_nw'\n    };\n  },\n  southWestArrowNorthEast: function southWestArrowNorthEast(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.left - balloonRect.width + BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_ne'\n    };\n  },\n  // ------- South east\n  southEastArrowNorth: function southEastArrowNorth(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.right - balloonRect.width / 2,\n      name: 'arrow_n'\n    };\n  },\n  southEastArrowNorthEast: function southEastArrowNorthEast(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.right - balloonRect.width + BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_ne'\n    };\n  },\n  southEastArrowNorthWest: function southEastArrowNorthWest(targetRect, balloonRect) {\n    return {\n      top: getSouthTop(targetRect, balloonRect),\n      left: targetRect.right - BalloonPanelView.arrowHorizontalOffset,\n      name: 'arrow_nw'\n    };\n  }\n}; // Returns the top coordinate for positions starting with `north*`.\n//\n// @private\n// @param {utils/dom/rect~Rect} targetRect A rect of the target.\n// @param {utils/dom/rect~Rect} elementRect A rect of the balloon.\n// @returns {Number}\n\nfunction getNorthTop(targetRect, balloonRect) {\n  return targetRect.top - balloonRect.height - BalloonPanelView.arrowVerticalOffset;\n} // Returns the top coordinate for positions starting with `south*`.\n//\n// @private\n// @param {utils/dom/rect~Rect} targetRect A rect of the target.\n// @param {utils/dom/rect~Rect} elementRect A rect of the balloon.\n// @returns {Number}\n\n\nfunction getSouthTop(targetRect) {\n  return targetRect.bottom + BalloonPanelView.arrowVerticalOffset;\n}","import _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport 'core-js/modules/es6.array.find';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es7.array.includes';\nimport 'core-js/modules/es6.string.includes';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.map';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/panel/balloon/contextualballoon\n */\nimport Plugin from '@ckeditor/ckeditor5-core/src/plugin';\nimport BalloonPanelView from './balloonpanelview';\nimport View from '../../view';\nimport ButtonView from '../../button/buttonview';\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport toUnit from '@ckeditor/ckeditor5-utils/src/dom/tounit';\nimport Rect from '@ckeditor/ckeditor5-utils/src/dom/rect';\nimport prevIcon from '../../../theme/icons/previous-arrow.svg';\nimport nextIcon from '../../../theme/icons/next-arrow.svg';\nimport '../../../theme/components/panel/balloonrotator.css';\nimport '../../../theme/components/panel/fakepanel.css';\nvar toPx = toUnit('px');\n/**\n * Provides the common contextual balloon for the editor.\n *\n * The role of this plugin is to unify the contextual balloons logic, simplify views management and help\n * avoid the unnecessary complexity of handling multiple {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n * instances in the editor.\n *\n * This plugin allows for creating single or multiple panel stacks.\n *\n * Each stack may have multiple views, with the one on the top being visible. When the visible view is removed from the stack,\n * the previous view becomes visible.\n *\n * It might be useful to implement nested navigation in a balloon. For instance, a toolbar view may contain a link button.\n * When you click it, a link view (which lets you set the URL) is created and put on top of the toolbar view, so the link panel\n * is displayed. When you finish editing the link and close (remove) the link view, the toolbar view is visible again.\n *\n * However, there are cases when there are multiple independent balloons to be displayed, for instance, if the selection\n * is inside two inline comments at the same time. For such cases, you can create two independent panel stacks.\n * The contextual balloon plugin will create a navigation bar to let the users switch between these panel stacks using the \"Next\"\n * and \"Previous\" buttons.\n *\n * If there are no views in the current stack, the balloon panel will try to switch to the next stack. If there are no\n * panels in any stack, the balloon panel will be hidden.\n *\n * **Note**: To force the balloon panel to show only one view, even if there are other stacks, use the `singleViewMode=true` option\n * when {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon#add adding} a view to a panel.\n *\n * From the implementation point of view, the contextual ballon plugin is reusing a single\n * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView} instance to display multiple contextual balloon\n * panels in the editor. It also creates a special {@link module:ui/panel/balloon/contextualballoon~RotatorView rotator view},\n * used to manage multiple panel stacks. Rotator view is a child of the balloon panel view and the parent of the specific\n * view you want to display. If there is more than one panel stack to be displayed, the rotator view will add a\n * navigation bar. If there is only one stack, the rotator view is transparent (it does not add any UI elements).\n *\n * @extends module:core/plugin~Plugin\n */\nvar ContextualBalloon = /*#__PURE__*/\nfunction (_Plugin) {\n    _inherits(ContextualBalloon, _Plugin);\n    var _super = _createSuper(ContextualBalloon);\n    _createClass(ContextualBalloon, null, [{\n            key: 'pluginName',\n            /**\n     * @inheritDoc\n     */\n            get: function get() {\n                return 'ContextualBalloon';\n            }    /**\n     * @inheritDoc\n     */\n        }]);\n    function ContextualBalloon(editor) {\n        var _this;\n        _classCallCheck(this, ContextualBalloon);\n        _this = _super.call(this, editor);\n        /**\n     * The {@link module:utils/dom/position~Options#limiter position limiter}\n     * for the {@link #view balloon}, used when no `limiter` has been passed into {@link #add}\n     * or {@link #updatePosition}.\n     *\n     * By default, a function that obtains the farthest DOM\n     * {@link module:engine/view/rooteditableelement~RootEditableElement}\n     * of the {@link module:engine/view/document~Document#selection}.\n     *\n     * @member {module:utils/dom/position~Options#limiter} #positionLimiter\n     */\n        _this.positionLimiter = function () {\n            var view = _this.editor.editing.view;\n            var viewDocument = view.document;\n            var editableElement = viewDocument.selection.editableElement;\n            if (editableElement) {\n                return view.domConverter.mapViewToDom(editableElement.root);\n            }\n            return null;\n        };\n        /**\n     * The currently visible view or `null` when there are no views in any stack.\n     *\n     * @readonly\n     * @observable\n     * @member {module:ui/view~View|null} #visibleView\n     */\n        _this.set('visibleView', null);\n        /**\n     * The common balloon panel view.\n     *\n     * @readonly\n     * @member {module:ui/panel/balloon/balloonpanelview~BalloonPanelView} #view\n     */\n        _this.view = new BalloonPanelView(editor.locale);\n        editor.ui.view.body.add(_this.view);\n        editor.ui.focusTracker.add(_this.view.element);\n        /**\n     * The map of views and their stacks.\n     *\n     * @private\n     * @type {Map.<module:ui/view~View,Set>}\n     */\n        _this._viewToStack = new Map();\n        /**\n     * The map of IDs and stacks.\n     *\n     * @private\n     * @type {Map.<String,Set>}\n     */\n        _this._idToStack = new Map();\n        /**\n     * A total number of all stacks in the balloon.\n     *\n     * @private\n     * @readonly\n     * @observable\n     * @member {Number} #_numberOfStacks\n     */\n        _this.set('_numberOfStacks', 0);\n        /**\n     * A flag that controls the single view mode.\n     *\n     * @private\n     * @readonly\n     * @observable\n     * @member {Boolean} #_singleViewMode\n     */\n        _this.set('_singleViewMode', false);\n        /**\n     * Rotator view embedded in the contextual balloon.\n     * Displays the currently visible view in the balloon and provides navigation for switching stacks.\n     *\n     * @private\n     * @type {module:ui/panel/balloon/contextualballoon~RotatorView}\n     */\n        _this._rotatorView = _this._createRotatorView();\n        /**\n     * Displays fake panels under the balloon panel view when multiple stacks are added to the balloon.\n     *\n     * @private\n     * @type {module:ui/view~View}\n     */\n        _this._fakePanelsView = _this._createFakePanelsView();\n        return _this;\n    }\n    /**\n   * Returns `true` when the given view is in one of the stacks. Otherwise returns `false`.\n   *\n   * @param {module:ui/view~View} view\n   * @returns {Boolean}\n   */\n    _createClass(ContextualBalloon, [\n        {\n            key: 'hasView',\n            value: function hasView(view) {\n                return Array.from(this._viewToStack.keys()).includes(view);\n            }    /**\n     * Adds a new view to the stack and makes it visible if the current stack is visible\n     * or it is the first view in the balloon.\n     *\n     * @param {Object} data The configuration of the view.\n     * @param {String} [data.stackId='main'] The ID of the stack that the view is added to.\n     * @param {module:ui/view~View} [data.view] The content of the balloon.\n     * @param {module:utils/dom/position~Options} [data.position] Positioning options.\n     * @param {String} [data.balloonClassName] An additional CSS class added to the {@link #view balloon} when visible.\n     * @param {Boolean} [data.withArrow=true] Whether the {@link #view balloon} should be rendered with an arrow.\n     * @param {Boolean} [data.singleViewMode=false] Whether the view should be the only visible view even if other stacks were added.\n     */\n        },\n        {\n            key: 'add',\n            value: function add(data) {\n                if (this.hasView(data.view)) {\n                    /**\n         * Trying to add configuration of the same view more than once.\n         *\n         * @error contextualballoon-add-view-exist\n         */\n                    throw new CKEditorError('contextualballoon-add-view-exist: Cannot add configuration of the same view twice.', [\n                        this,\n                        data\n                    ]);\n                }\n                var stackId = data.stackId || 'main';\n                // If new stack is added, creates it and show view from this stack.\n                if (!this._idToStack.has(stackId)) {\n                    this._idToStack.set(stackId, new Map([[\n                            data.view,\n                            data\n                        ]]));\n                    this._viewToStack.set(data.view, this._idToStack.get(stackId));\n                    this._numberOfStacks = this._idToStack.size;\n                    if (!this._visibleStack || data.singleViewMode) {\n                        this.showStack(stackId);\n                    }\n                    return;\n                }\n                var stack = this._idToStack.get(stackId);\n                if (data.singleViewMode) {\n                    this.showStack(stackId);\n                }\n                // Add new view to the stack.\n                stack.set(data.view, data);\n                this._viewToStack.set(data.view, stack);\n                // And display it if is added to the currently visible stack.\n                if (stack === this._visibleStack) {\n                    this._showView(data);\n                }\n            }    /**\n     * Removes the given view from the stack. If the removed view was visible,\n     * the view preceding it in the stack will become visible instead.\n     * When there is no view in the stack, the next stack will be displayed.\n     * When there are no more stacks, the balloon will hide.\n     *\n     * @param {module:ui/view~View} view A view to be removed from the balloon.\n     */\n        },\n        {\n            key: 'remove',\n            value: function remove(view) {\n                if (!this.hasView(view)) {\n                    /**\n         * Trying to remove the configuration of the view not defined in the stack.\n         *\n         * @error contextualballoon-remove-view-not-exist\n         */\n                    throw new CKEditorError('contextualballoon-remove-view-not-exist: Cannot remove the configuration of a non-existent view.', [\n                        this,\n                        view\n                    ]);\n                }\n                var stack = this._viewToStack.get(view);\n                if (this._singleViewMode && this.visibleView === view) {\n                    this._singleViewMode = false;\n                }\n                // When visible view will be removed we need to show a preceding view or next stack\n                // if a view is the only view in the stack.\n                if (this.visibleView === view) {\n                    if (stack.size === 1) {\n                        if (this._idToStack.size > 1) {\n                            this._showNextStack();\n                        } else {\n                            this.view.hide();\n                            this.visibleView = null;\n                            this._rotatorView.hideView();\n                        }\n                    } else {\n                        this._showView(Array.from(stack.values())[stack.size - 2]);\n                    }\n                }\n                if (stack.size === 1) {\n                    this._idToStack.delete(this._getStackId(stack));\n                    this._numberOfStacks = this._idToStack.size;\n                } else {\n                    stack.delete(view);\n                }\n                this._viewToStack.delete(view);\n            }    /**\n     * Updates the position of the balloon using the position data of the first visible view in the stack.\n     * When new position data is given, the position data of the currently visible view will be updated.\n     *\n     * @param {module:utils/dom/position~Options} [position] position options.\n     */\n        },\n        {\n            key: 'updatePosition',\n            value: function updatePosition(position) {\n                if (position) {\n                    this._visibleStack.get(this.visibleView).position = position;\n                }\n                this.view.pin(this._getBalloonPosition());\n                this._fakePanelsView.updatePosition();\n            }    /**\n     * Shows the last view from the stack of a given ID.\n     *\n     * @param {String} id\n     */\n        },\n        {\n            key: 'showStack',\n            value: function showStack(id) {\n                this.visibleStack = id;\n                var stack = this._idToStack.get(id);\n                if (!stack) {\n                    /**\n         * Trying to show a stack that does not exist.\n         *\n         * @error contextualballoon-showstack-stack-not-exist\n         */\n                    throw new CKEditorError('contextualballoon-showstack-stack-not-exist: Cannot show a stack that does not exist.', this);\n                }\n                if (this._visibleStack === stack) {\n                    return;\n                }\n                this._showView(Array.from(stack.values()).pop());\n            }    /**\n     * Returns the stack of the currently visible view.\n     *\n     * @private\n     * @type {Set}\n     */\n        },\n        {\n            key: '_getStackId',\n            /**\n     * Returns the ID of the given stack.\n     *\n     * @private\n     * @param {Set} stack\n     * @returns {String}\n     */\n            value: function _getStackId(stack) {\n                var entry = Array.from(this._idToStack.entries()).find(function (entry) {\n                    return entry[1] === stack;\n                });\n                return entry[0];\n            }    /**\n     * Shows the last view from the next stack.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_showNextStack',\n            value: function _showNextStack() {\n                var stacks = Array.from(this._idToStack.values());\n                var nextIndex = stacks.indexOf(this._visibleStack) + 1;\n                if (!stacks[nextIndex]) {\n                    nextIndex = 0;\n                }\n                this.showStack(this._getStackId(stacks[nextIndex]));\n            }    /**\n     * Shows the last view from the previous stack.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_showPrevStack',\n            value: function _showPrevStack() {\n                var stacks = Array.from(this._idToStack.values());\n                var nextIndex = stacks.indexOf(this._visibleStack) - 1;\n                if (!stacks[nextIndex]) {\n                    nextIndex = stacks.length - 1;\n                }\n                this.showStack(this._getStackId(stacks[nextIndex]));\n            }    /**\n     * Creates a rotator view.\n     *\n     * @private\n     * @returns {module:ui/panel/balloon/contextualballoon~RotatorView}\n     */\n        },\n        {\n            key: '_createRotatorView',\n            value: function _createRotatorView() {\n                var _this2 = this;\n                var view = new RotatorView(this.editor.locale);\n                var t = this.editor.locale.t;\n                this.view.content.add(view);\n                // Hide navigation when there is only a one stack & not in single view mode.\n                view.bind('isNavigationVisible').to(this, '_numberOfStacks', this, '_singleViewMode', function (value, isSingleViewMode) {\n                    return !isSingleViewMode && value > 1;\n                });\n                // Update balloon position after toggling navigation.\n                view.on('change:isNavigationVisible', function () {\n                    return _this2.updatePosition();\n                }, { priority: 'low' });\n                // Update stacks counter value.\n                view.bind('counter').to(this, 'visibleView', this, '_numberOfStacks', function (visibleView, numberOfStacks) {\n                    if (numberOfStacks < 2) {\n                        return '';\n                    }\n                    var current = Array.from(_this2._idToStack.values()).indexOf(_this2._visibleStack) + 1;\n                    return t('%0 of %1', [\n                        current,\n                        numberOfStacks\n                    ]);\n                });\n                view.buttonNextView.on('execute', function () {\n                    // When current view has a focus then move focus to the editable before removing it,\n                    // otherwise editor will lost focus.\n                    if (view.focusTracker.isFocused) {\n                        _this2.editor.editing.view.focus();\n                    }\n                    _this2._showNextStack();\n                });\n                view.buttonPrevView.on('execute', function () {\n                    // When current view has a focus then move focus to the editable before removing it,\n                    // otherwise editor will lost focus.\n                    if (view.focusTracker.isFocused) {\n                        _this2.editor.editing.view.focus();\n                    }\n                    _this2._showPrevStack();\n                });\n                return view;\n            }    /**\n     * @returns {module:ui/view~View}\n     */\n        },\n        {\n            key: '_createFakePanelsView',\n            value: function _createFakePanelsView() {\n                var view = new FakePanelsView(this.editor.locale, this.view);\n                view.bind('numberOfPanels').to(this, '_numberOfStacks', this, '_singleViewMode', function (number, isSingleViewMode) {\n                    var showPanels = !isSingleViewMode && number >= 2;\n                    return showPanels ? Math.min(number - 1, 2) : 0;\n                });\n                view.listenTo(this.view, 'change:top', function () {\n                    return view.updatePosition();\n                });\n                view.listenTo(this.view, 'change:left', function () {\n                    return view.updatePosition();\n                });\n                this.editor.ui.view.body.add(view);\n                return view;\n            }    /**\n     * Sets the view as the content of the balloon and attaches the balloon using position\n     * options of the first view.\n     *\n     * @private\n     * @param {Object} data Configuration.\n     * @param {module:ui/view~View} [data.view] The view to show in the balloon.\n     * @param {String} [data.balloonClassName=''] Additional class name which will be added to the {@link #view balloon}.\n     * @param {Boolean} [data.withArrow=true] Whether the {@link #view balloon} should be rendered with an arrow.\n     */\n        },\n        {\n            key: '_showView',\n            value: function _showView(_ref) {\n                var view = _ref.view, _ref$balloonClassName = _ref.balloonClassName, balloonClassName = _ref$balloonClassName === void 0 ? '' : _ref$balloonClassName, _ref$withArrow = _ref.withArrow, withArrow = _ref$withArrow === void 0 ? true : _ref$withArrow, _ref$singleViewMode = _ref.singleViewMode, singleViewMode = _ref$singleViewMode === void 0 ? false : _ref$singleViewMode;\n                this.view.class = balloonClassName;\n                this.view.withArrow = withArrow;\n                this._rotatorView.showView(view);\n                this.visibleView = view;\n                this.view.pin(this._getBalloonPosition());\n                this._fakePanelsView.updatePosition();\n                if (singleViewMode) {\n                    this._singleViewMode = true;\n                }\n            }    /**\n     * Returns position options of the last view in the stack.\n     * This keeps the balloon in the same position when the view is changed.\n     *\n     * @private\n     * @returns {module:utils/dom/position~Options}\n     */\n        },\n        {\n            key: '_getBalloonPosition',\n            value: function _getBalloonPosition() {\n                var position = Array.from(this._visibleStack.values()).pop().position;\n                // Use the default limiter if none has been specified.\n                if (position && !position.limiter) {\n                    // Don't modify the original options object.\n                    position = Object.assign({}, position, { limiter: this.positionLimiter });\n                }\n                return position;\n            }\n        },\n        {\n            key: '_visibleStack',\n            get: function get() {\n                return this._viewToStack.get(this.visibleView);\n            }\n        }\n    ]);\n    return ContextualBalloon;\n}(Plugin);\n/**\n * Rotator view is a helper class for the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon}.\n * It is used for displaying the last view from the current stack and providing navigation buttons for switching stacks.\n * See the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon} documentation to learn more.\n *\n * @extends module:ui/view~View\n */\nexport {\n    ContextualBalloon as default\n};\nvar RotatorView = /*#__PURE__*/\nfunction (_View) {\n    _inherits(RotatorView, _View);\n    var _super2 = _createSuper(RotatorView);\n    /**\n   * @inheritDoc\n   */\n    function RotatorView(locale) {\n        var _this3;\n        _classCallCheck(this, RotatorView);\n        _this3 = _super2.call(this, locale);\n        var t = locale.t;\n        var bind = _this3.bindTemplate;\n        /**\n     * Defines whether navigation is visible or not.\n     *\n     * @member {Boolean} #isNavigationVisible\n     */\n        _this3.set('isNavigationVisible', true);\n        /**\n     * Used for checking if a view is focused or not.\n     *\n     * @type {module:utils/focustracker~FocusTracker}\n     */\n        _this3.focusTracker = new FocusTracker();\n        /**\n     * Navigation button for switching the stack to the previous one.\n     *\n     * @type {module:ui/button/buttonview~ButtonView}\n     */\n        _this3.buttonPrevView = _this3._createButtonView(t('Previous'), prevIcon);\n        /**\n     * Navigation button for switching the stack to the next one.\n     *\n     * @type {module:ui/button/buttonview~ButtonView}\n     */\n        _this3.buttonNextView = _this3._createButtonView(t('Next'), nextIcon);\n        /**\n     * A collection of the child views that creates the rotator content.\n     *\n     * @readonly\n     * @type {module:ui/viewcollection~ViewCollection}\n     */\n        _this3.content = _this3.createCollection();\n        _this3.setTemplate({\n            tag: 'div',\n            attributes: {\n                class: [\n                    'ck',\n                    'ck-balloon-rotator'\n                ],\n                'z-index': '-1'\n            },\n            children: [\n                {\n                    tag: 'div',\n                    attributes: {\n                        class: [\n                            'ck-balloon-rotator__navigation',\n                            bind.to('isNavigationVisible', function (value) {\n                                return value ? '' : 'ck-hidden';\n                            })\n                        ]\n                    },\n                    children: [\n                        _this3.buttonPrevView,\n                        {\n                            tag: 'span',\n                            attributes: { class: ['ck-balloon-rotator__counter'] },\n                            children: [{ text: bind.to('counter') }]\n                        },\n                        _this3.buttonNextView\n                    ]\n                },\n                {\n                    tag: 'div',\n                    attributes: { class: 'ck-balloon-rotator__content' },\n                    children: _this3.content\n                }\n            ]\n        });\n        return _this3;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(RotatorView, [\n        {\n            key: 'render',\n            value: function render() {\n                _get(_getPrototypeOf(RotatorView.prototype), 'render', this).call(this);\n                this.focusTracker.add(this.element);\n            }    /**\n     * Shows a given view.\n     *\n     * @param {module:ui/view~View} view The view to show.\n     */\n        },\n        {\n            key: 'showView',\n            value: function showView(view) {\n                this.hideView();\n                this.content.add(view);\n            }    /**\n     * Hides the currently displayed view.\n     */\n        },\n        {\n            key: 'hideView',\n            value: function hideView() {\n                this.content.clear();\n            }    /**\n     * Creates a navigation button view.\n     *\n     * @private\n     * @param {String} label The button label.\n     * @param {String} icon The button icon.\n     * @returns {module:ui/button/buttonview~ButtonView}\n     */\n        },\n        {\n            key: '_createButtonView',\n            value: function _createButtonView(label, icon) {\n                var view = new ButtonView(this.locale);\n                view.set({\n                    label: label,\n                    icon: icon,\n                    tooltip: true\n                });\n                return view;\n            }\n        }\n    ]);\n    return RotatorView;\n}(View);\n// Displays additional layers under the balloon when multiple stacks are added to the balloon.\n//\n// @private\n// @extends module:ui/view~View\nvar FakePanelsView = /*#__PURE__*/\nfunction (_View2) {\n    _inherits(FakePanelsView, _View2);\n    var _super3 = _createSuper(FakePanelsView);\n    // @inheritDoc\n    function FakePanelsView(locale, balloonPanelView) {\n        var _this4;\n        _classCallCheck(this, FakePanelsView);\n        _this4 = _super3.call(this, locale);\n        var bind = _this4.bindTemplate;\n        // Fake panels top offset.\n        //\n        // @observable\n        // @member {Number} #top\n        _this4.set('top', 0);\n        // Fake panels left offset.\n        //\n        // @observable\n        // @member {Number} #left\n        _this4.set('left', 0);\n        // Fake panels height.\n        //\n        // @observable\n        // @member {Number} #height\n        _this4.set('height', 0);\n        // Fake panels width.\n        //\n        // @observable\n        // @member {Number} #width\n        _this4.set('width', 0);\n        // Number of rendered fake panels.\n        //\n        // @observable\n        // @member {Number} #numberOfPanels\n        _this4.set('numberOfPanels', 0);\n        // Collection of the child views which creates fake panel content.\n        //\n        // @readonly\n        // @type {module:ui/viewcollection~ViewCollection}\n        _this4.content = _this4.createCollection();\n        // Context.\n        //\n        // @private\n        // @type {module:ui/panel/balloon/balloonpanelview~BalloonPanelView}\n        _this4._balloonPanelView = balloonPanelView;\n        _this4.setTemplate({\n            tag: 'div',\n            attributes: {\n                class: [\n                    'ck-fake-panel',\n                    bind.to('numberOfPanels', function (number) {\n                        return number ? '' : 'ck-hidden';\n                    })\n                ],\n                style: {\n                    top: bind.to('top', toPx),\n                    left: bind.to('left', toPx),\n                    width: bind.to('width', toPx),\n                    height: bind.to('height', toPx)\n                }\n            },\n            children: _this4.content\n        });\n        _this4.on('change:numberOfPanels', function (evt, name, next, prev) {\n            if (next > prev) {\n                _this4._addPanels(next - prev);\n            } else {\n                _this4._removePanels(prev - next);\n            }\n            _this4.updatePosition();\n        });\n        return _this4;\n    }\n    // @private\n    // @param {Number} number\n    _createClass(FakePanelsView, [\n        {\n            key: '_addPanels',\n            value: function _addPanels(number) {\n                while (number--) {\n                    var view = new View();\n                    view.setTemplate({ tag: 'div' });\n                    this.content.add(view);\n                    this.registerChild(view);\n                }\n            }    // @private\n                 // @param {Number} number\n        },\n        {\n            key: '_removePanels',\n            value: function _removePanels(number) {\n                while (number--) {\n                    var view = this.content.last;\n                    this.content.remove(view);\n                    this.deregisterChild(view);\n                    view.destroy();\n                }\n            }    // Updates coordinates of fake panels.\n        },\n        {\n            key: 'updatePosition',\n            value: function updatePosition() {\n                if (this.numberOfPanels) {\n                    var _this$_balloonPanelVi = this._balloonPanelView, top = _this$_balloonPanelVi.top, left = _this$_balloonPanelVi.left;\n                    var _Rect = new Rect(this._balloonPanelView.element), width = _Rect.width, height = _Rect.height;\n                    Object.assign(this, {\n                        top: top,\n                        left: left,\n                        width: width,\n                        height: height\n                    });\n                }\n            }\n        }\n    ]);\n    return FakePanelsView;\n}(View);","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/panel/sticky/stickypanelview\n */\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport View from \"../../view\";\nimport Template from \"../../template\";\nimport toUnit from '@ckeditor/ckeditor5-utils/src/dom/tounit';\nimport \"../../../theme/components/panel/stickypanel.css\";\nvar toPx = toUnit('px');\n/**\n * The sticky panel view class.\n */\n\nvar StickyPanelView = /*#__PURE__*/function (_View) {\n  _inherits(StickyPanelView, _View);\n\n  var _super = _createSuper(StickyPanelView);\n\n  /**\n   * @inheritDoc\n   */\n  function StickyPanelView(locale) {\n    var _this;\n\n    _classCallCheck(this, StickyPanelView);\n\n    _this = _super.call(this, locale);\n    var bind = _this.bindTemplate;\n    /**\n     * Controls whether the sticky panel should be active.\n     *\n     * @readonly\n     * @observable\n     * @member {Boolean} #isActive\n     */\n\n    _this.set('isActive', false);\n    /**\n     * Controls whether the sticky panel is in the \"sticky\" state.\n     *\n     * @readonly\n     * @observable\n     * @member {Boolean} #isSticky\n     */\n\n\n    _this.set('isSticky', false);\n    /**\n     * The limiter element for the sticky panel instance. Its bounding rect limits\n     * the \"stickyness\" of the panel, i.e. when the panel reaches the bottom\n     * edge of the limiter, it becomes sticky to that edge and does not float\n     * off the limiter. It is mandatory for the panel to work properly and once\n     * set, it cannot be changed.\n     *\n     * @readonly\n     * @observable\n     * @member {HTMLElement} #limiterElement\n     */\n\n\n    _this.set('limiterElement', null);\n    /**\n     * The offset from the bottom edge of {@link #limiterElement}\n     * which stops the panel from stickying any further to prevent limiter's content\n     * from being completely covered.\n     *\n     * @readonly\n     * @observable\n     * @default 50\n     * @member {Number} #limiterBottomOffset\n     */\n\n\n    _this.set('limiterBottomOffset', 50);\n    /**\n     * The offset from the top edge of the web browser's viewport which makes the\n     * panel become sticky. The default value is `0`, which means the panel becomes\n     * sticky when it's upper edge touches the top of the page viewport.\n     *\n     * This attribute is useful when the web page has UI elements positioned to the top\n     * either using `position: fixed` or `position: sticky`, which would cover the\n     * sticky panel or vice–versa (depending on the `z-index` hierarchy).\n     *\n     * @readonly\n     * @observable\n     * @default 0\n     * @member {Number} #viewportTopOffset\n     */\n\n\n    _this.set('viewportTopOffset', 0);\n    /**\n     * Controls the `margin-left` CSS style of the panel.\n     *\n     * @protected\n     * @readonly\n     * @observable\n     * @member {String} #_marginLeft\n     */\n\n\n    _this.set('_marginLeft', null);\n    /**\n     * Set `true` if the sticky panel reached the bottom edge of the\n     * {@link #limiterElement}.\n     *\n     * @protected\n     * @readonly\n     * @observable\n     * @member {Boolean} #_isStickyToTheLimiter\n     */\n\n\n    _this.set('_isStickyToTheLimiter', false);\n    /**\n     * Set `true` if the sticky panel uses the {@link #viewportTopOffset},\n     * i.e. not {@link #_isStickyToTheLimiter} and the {@link #viewportTopOffset}\n     * is not `0`.\n     *\n     * @protected\n     * @readonly\n     * @observable\n     * @member {Boolean} #_hasViewportTopOffset\n     */\n\n\n    _this.set('_hasViewportTopOffset', false);\n    /**\n     * Collection of the child views which creates balloon panel contents.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n\n    _this.content = _this.createCollection();\n    /**\n     * The DOM bounding client rect of the {@link module:ui/view~View#element} of the panel.\n     *\n     * @protected\n     * @member {Object} #_panelRect\n     */\n\n    /**\n     * The DOM bounding client rect of the {@link #limiterElement}\n     * of the panel.\n     *\n     * @protected\n     * @member {Object} #_limiterRect\n     */\n\n    /**\n     * A dummy element which visually fills the space as long as the\n     * actual panel is sticky. It prevents flickering of the UI.\n     *\n     * @protected\n     * @property {HTMLElement}\n     */\n\n    _this._contentPanelPlaceholder = new Template({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-sticky-panel__placeholder'],\n        style: {\n          display: bind.to('isSticky', function (isSticky) {\n            return isSticky ? 'block' : 'none';\n          }),\n          height: bind.to('isSticky', function (isSticky) {\n            return isSticky ? toPx(_this._panelRect.height) : null;\n          })\n        }\n      }\n    }).render();\n    /**\n     * The panel which accepts children into {@link #content} collection.\n     * Also an element which is positioned when {@link #isSticky}.\n     *\n     * @protected\n     * @property {HTMLElement}\n     */\n\n    _this._contentPanel = new Template({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-sticky-panel__content', // Toggle class of the panel when \"sticky\" state changes in the view.\n        bind.if('isSticky', 'ck-sticky-panel__content_sticky'), bind.if('_isStickyToTheLimiter', 'ck-sticky-panel__content_sticky_bottom-limit')],\n        style: {\n          width: bind.to('isSticky', function (isSticky) {\n            return isSticky ? toPx(_this._contentPanelPlaceholder.getBoundingClientRect().width) : null;\n          }),\n          top: bind.to('_hasViewportTopOffset', function (_hasViewportTopOffset) {\n            return _hasViewportTopOffset ? toPx(_this.viewportTopOffset) : null;\n          }),\n          bottom: bind.to('_isStickyToTheLimiter', function (_isStickyToTheLimiter) {\n            return _isStickyToTheLimiter ? toPx(_this.limiterBottomOffset) : null;\n          }),\n          marginLeft: bind.to('_marginLeft')\n        }\n      },\n      children: _this.content\n    }).render();\n\n    _this.setTemplate({\n      tag: 'div',\n      attributes: {\n        class: ['ck', 'ck-sticky-panel']\n      },\n      children: [_this._contentPanelPlaceholder, _this._contentPanel]\n    });\n\n    return _this;\n  }\n  /**\n   * @inheritDoc\n   */\n\n\n  _createClass(StickyPanelView, [{\n    key: \"render\",\n    value: function render() {\n      var _this2 = this;\n\n      _get(_getPrototypeOf(StickyPanelView.prototype), \"render\", this).call(this); // Check if the panel should go into the sticky state immediately.\n\n\n      this._checkIfShouldBeSticky(); // Update sticky state of the panel as the window is being scrolled.\n\n\n      this.listenTo(global.window, 'scroll', function () {\n        _this2._checkIfShouldBeSticky();\n      }); // Synchronize with `model.isActive` because sticking an inactive panel is pointless.\n\n      this.listenTo(this, 'change:isActive', function () {\n        _this2._checkIfShouldBeSticky();\n      });\n    }\n    /**\n     * Analyzes the environment to decide whether the panel should\n     * be sticky or not.\n     *\n     * @protected\n     */\n\n  }, {\n    key: \"_checkIfShouldBeSticky\",\n    value: function _checkIfShouldBeSticky() {\n      var panelRect = this._panelRect = this._contentPanel.getBoundingClientRect();\n\n      var limiterRect;\n\n      if (!this.limiterElement) {\n        this.isSticky = false;\n      } else {\n        limiterRect = this._limiterRect = this.limiterElement.getBoundingClientRect(); // The panel must be active to become sticky.\n\n        this.isSticky = this.isActive && // The limiter's top edge must be beyond the upper edge of the visible viewport (+the viewportTopOffset).\n        limiterRect.top < this.viewportTopOffset && // The model#limiterElement's height mustn't be smaller than the panel's height and model#limiterBottomOffset.\n        // There's no point in entering the sticky mode if the model#limiterElement is very, very small, because\n        // it would immediately set model#_isStickyToTheLimiter true and, given model#limiterBottomOffset, the panel\n        // would be positioned before the model#limiterElement.\n        this._panelRect.height + this.limiterBottomOffset < limiterRect.height;\n      } // Stick the panel to the top edge of the viewport simulating CSS position:sticky.\n      // TODO: Possibly replaced by CSS in the future http://caniuse.com/#feat=css-sticky\n\n\n      if (this.isSticky) {\n        this._isStickyToTheLimiter = limiterRect.bottom < panelRect.height + this.limiterBottomOffset + this.viewportTopOffset;\n        this._hasViewportTopOffset = !this._isStickyToTheLimiter && !!this.viewportTopOffset;\n        this._marginLeft = this._isStickyToTheLimiter ? null : toPx(-global.window.scrollX);\n      } // Detach the panel from the top edge of the viewport.\n      else {\n          this._isStickyToTheLimiter = false;\n          this._hasViewportTopOffset = false;\n          this._marginLeft = null;\n        }\n    }\n  }]);\n\n  return StickyPanelView;\n}(View);\n\nexport { StickyPanelView as default };","import \"core-js/modules/es6.reflect.construct\";\nimport _toConsumableArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/toConsumableArray\";\nimport _get from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.regexp.split\";\nimport _slicedToArray from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"regenerator-runtime/runtime\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/template\n */\n\n/* global document */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport EmitterMixin from '@ckeditor/ckeditor5-utils/src/emittermixin';\nimport View from \"./view\";\nimport ViewCollection from \"./viewcollection\";\nimport isNode from '@ckeditor/ckeditor5-utils/src/dom/isnode';\nimport { isObject, cloneDeepWith } from 'lodash-es';\nvar xhtmlNs = 'http://www.w3.org/1999/xhtml';\n/**\n * A basic Template class. It renders a DOM HTML element or text from a\n * {@link module:ui/template~TemplateDefinition definition} and supports element attributes, children,\n * bindings to {@link module:utils/observablemixin~Observable observables} and DOM event propagation.\n *\n * A simple template can look like this:\n *\n *\t\tconst bind = Template.bind( observable, emitter );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tattributes: {\n *\t\t\t\tclass: 'foo',\n *\t\t\t\tstyle: {\n *\t\t\t\t\tbackgroundColor: 'yellow'\n *\t\t\t\t}\n *\t\t\t},\n *\t\t\ton: {\n *\t\t\t\tclick: bind.to( 'clicked' )\n *\t\t\t},\n *\t\t\tchildren: [\n *\t\t\t\t'A paragraph.'\n *\t\t\t]\n *\t\t} ).render();\n *\n * and it will render the following HTML element:\n *\n *\t\t<p class=\"foo\" style=\"background-color: yellow;\">A paragraph.</p>\n *\n * Additionally, the `observable` will always fire `clicked` upon clicking `<p>` in the DOM.\n *\n * See {@link module:ui/template~TemplateDefinition} to know more about templates and complex\n * template definitions.\n *\n* @mixes module:utils/emittermixin~EmitterMixin\n */\n\nvar Template = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the {@link ~Template} class.\n   *\n   * @param {module:ui/template~TemplateDefinition} def The definition of the template.\n   */\n  function Template(def) {\n    _classCallCheck(this, Template);\n\n    Object.assign(this, normalize(clone(def)));\n    /**\n     * Indicates whether this particular Template instance has been\n     * {@link #render rendered}.\n     *\n     * @readonly\n     * @protected\n     * @member {Boolean}\n     */\n\n    this._isRendered = false;\n    /**\n     * The tag (`tagName`) of this template, e.g. `div`. It also indicates that the template\n     * renders to an HTML element.\n     *\n     * @member {String} #tag\n     */\n\n    /**\n     * The text of the template. It also indicates that the template renders to a DOM text node.\n     *\n     * @member {Array.<String|module:ui/template~TemplateValueSchema>} #text\n     */\n\n    /**\n     * The attributes of the template, e.g. `{ id: [ 'ck-id' ] }`, corresponding with\n     * the attributes of an HTML element.\n     *\n     * **Note**: This property only makes sense when {@link #tag} is defined.\n     *\n     * @member {Object} #attributes\n     */\n\n    /**\n     * The children of the template. They can be either:\n     * * independent instances of {@link ~Template} (sub–templates),\n     * * native DOM Nodes.\n     *\n     * **Note**: This property only makes sense when {@link #tag} is defined.\n     *\n     * @member {Array.<module:ui/template~Template|Node>} #children\n     */\n\n    /**\n     * The DOM event listeners of the template.\n     *\n     * @member {Object} #eventListeners\n     */\n\n    /**\n     * The data used by the {@link #revert} method to restore a node to its original state.\n     *\n     * See: {@link #apply}.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/template~RenderData}\n     */\n\n    this._revertData = null;\n  }\n  /**\n   * Renders a DOM Node (an HTML element or text) out of the template.\n   *\n   *\t\tconst domNode = new Template( { ... } ).render();\n   *\n   * See: {@link #apply}.\n   *\n   * @returns {HTMLElement|Text}\n   */\n\n\n  _createClass(Template, [{\n    key: \"render\",\n    value: function render() {\n      var node = this._renderNode({\n        intoFragment: true\n      });\n\n      this._isRendered = true;\n      return node;\n    }\n    /**\n     * Applies the template to an existing DOM Node, either HTML element or text.\n     *\n     * **Note:** No new DOM nodes will be created. Applying extends:\n     *\n     * {@link module:ui/template~TemplateDefinition attributes},\n     * {@link module:ui/template~TemplateDefinition event listeners}, and\n     * `textContent` of {@link module:ui/template~TemplateDefinition children} only.\n     *\n     * **Note:** Existing `class` and `style` attributes are extended when a template\n     * is applied to an HTML element, while other attributes and `textContent` are overridden.\n     *\n     * **Note:** The process of applying a template can be easily reverted using the\n     * {@link module:ui/template~Template#revert} method.\n     *\n     *\t\tconst element = document.createElement( 'div' );\n     *\t\tconst observable = new Model( { divClass: 'my-div' } );\n     *\t\tconst emitter = Object.create( EmitterMixin );\n     *\t\tconst bind = Template.bind( observable, emitter );\n     *\n     *\t\tnew Template( {\n     *\t\t\tattributes: {\n     *\t\t\t\tid: 'first-div',\n     *\t\t\t\tclass: bind.to( 'divClass' )\n     *\t\t\t},\n     *\t\t\ton: {\n     *\t\t\t\tclick: bind( 'elementClicked' ) // Will be fired by the observable.\n     *\t\t\t},\n     *\t\t\tchildren: [\n     *\t\t\t\t'Div text.'\n     *\t\t\t]\n     *\t\t} ).apply( element );\n     *\n     *\t\tconsole.log( element.outerHTML ); // -> '<div id=\"first-div\" class=\"my-div\"></div>'\n     *\n     * @see module:ui/template~Template#render\n     * @see module:ui/template~Template#revert\n     * @param {Node} node Root node for the template to apply.\n     */\n\n  }, {\n    key: \"apply\",\n    value: function apply(node) {\n      this._revertData = getEmptyRevertData();\n\n      this._renderNode({\n        node: node,\n        isApplying: true,\n        revertData: this._revertData\n      });\n\n      return node;\n    }\n    /**\n     * Reverts a template {@link module:ui/template~Template#apply applied} to a DOM node.\n     *\n     * @param {Node} node The root node for the template to revert. In most of the cases, it is the\n     * same node used by {@link module:ui/template~Template#apply}.\n     */\n\n  }, {\n    key: \"revert\",\n    value: function revert(node) {\n      if (!this._revertData) {\n        /**\n         * Attempting to revert a template which has not been applied yet.\n         *\n         * @error ui-template-revert-not-applied\n         */\n        throw new CKEditorError('ui-template-revert-not-applied: Attempting to revert a template which has not been applied yet.', [this, node]);\n      }\n\n      this._revertTemplateFromNode(node, this._revertData);\n    }\n    /**\n     * Returns an iterator which traverses the template in search of {@link module:ui/view~View}\n     * instances and returns them one by one.\n     *\n     *\t\tconst viewFoo = new View();\n     *\t\tconst viewBar = new View();\n     *\t\tconst viewBaz = new View();\n     *\t\tconst template = new Template( {\n     *\t\t\ttag: 'div',\n     *\t\t\tchildren: [\n     *\t\t\t\tviewFoo,\n     *\t\t\t\t{\n     *\t\t\t\t\ttag: 'div',\n     *\t\t\t\t\tchildren: [\n     *\t\t\t\t\t\tviewBar\n     *\t\t\t\t\t]\n     *\t\t\t\t},\n     *\t\t\t\tviewBaz\n     *\t\t\t]\n     *\t\t} );\n     *\n     *\t\t// Logs: viewFoo, viewBar, viewBaz\n     *\t\tfor ( const view of template.getViews() ) {\n     *\t\t\tconsole.log( view );\n     *\t\t}\n     *\n     * @returns {Iterable.<module:ui/view~View>}\n     */\n\n  }, {\n    key: \"getViews\",\n    value: /*#__PURE__*/regeneratorRuntime.mark(function getViews() {\n      var _marked, search;\n\n      return regeneratorRuntime.wrap(function getViews$(_context2) {\n        while (1) {\n          switch (_context2.prev = _context2.next) {\n            case 0:\n              search = function _search(def) {\n                var _iterator, _step, child;\n\n                return regeneratorRuntime.wrap(function search$(_context) {\n                  while (1) {\n                    switch (_context.prev = _context.next) {\n                      case 0:\n                        if (!def.children) {\n                          _context.next = 23;\n                          break;\n                        }\n\n                        _iterator = _createForOfIteratorHelper(def.children);\n                        _context.prev = 2;\n\n                        _iterator.s();\n\n                      case 4:\n                        if ((_step = _iterator.n()).done) {\n                          _context.next = 15;\n                          break;\n                        }\n\n                        child = _step.value;\n\n                        if (!isView(child)) {\n                          _context.next = 11;\n                          break;\n                        }\n\n                        _context.next = 9;\n                        return child;\n\n                      case 9:\n                        _context.next = 13;\n                        break;\n\n                      case 11:\n                        if (!isTemplate(child)) {\n                          _context.next = 13;\n                          break;\n                        }\n\n                        return _context.delegateYield(search(child), \"t0\", 13);\n\n                      case 13:\n                        _context.next = 4;\n                        break;\n\n                      case 15:\n                        _context.next = 20;\n                        break;\n\n                      case 17:\n                        _context.prev = 17;\n                        _context.t1 = _context[\"catch\"](2);\n\n                        _iterator.e(_context.t1);\n\n                      case 20:\n                        _context.prev = 20;\n\n                        _iterator.f();\n\n                        return _context.finish(20);\n\n                      case 23:\n                      case \"end\":\n                        return _context.stop();\n                    }\n                  }\n                }, _marked, null, [[2, 17, 20, 23]]);\n              };\n\n              _marked = /*#__PURE__*/regeneratorRuntime.mark(search);\n              return _context2.delegateYield(search(this), \"t0\", 3);\n\n            case 3:\n            case \"end\":\n              return _context2.stop();\n          }\n        }\n      }, getViews, this);\n    })\n    /**\n     * An entry point to the interface which binds DOM nodes to\n     * {@link module:utils/observablemixin~Observable observables}.\n     * There are two types of bindings:\n     *\n     * * HTML element attributes or text `textContent` synchronized with attributes of an\n     * {@link module:utils/observablemixin~Observable}. Learn more about {@link module:ui/template~BindChain#to}\n     * and {@link module:ui/template~BindChain#if}.\n     *\n     *\t\tconst bind = Template.bind( observable, emitter );\n     *\n     *\t\tnew Template( {\n     *\t\t\tattributes: {\n     *\t\t\t\t// Binds the element \"class\" attribute to observable#classAttribute.\n     *\t\t\t\tclass: bind.to( 'classAttribute' )\n     *\t\t\t}\n     *\t\t} ).render();\n     *\n     * * DOM events fired on HTML element propagated through\n     * {@link module:utils/observablemixin~Observable}. Learn more about {@link module:ui/template~BindChain#to}.\n     *\n     *\t\tconst bind = Template.bind( observable, emitter );\n     *\n     *\t\tnew Template( {\n     *\t\t\ton: {\n     *\t\t\t\t// Will be fired by the observable.\n     *\t\t\t\tclick: bind( 'elementClicked' )\n     *\t\t\t}\n     *\t\t} ).render();\n     *\n     * Also see {@link module:ui/view~View#bindTemplate}.\n     *\n     * @param {module:utils/observablemixin~Observable} observable An observable which provides boundable attributes.\n     * @param {module:utils/emittermixin~Emitter} emitter An emitter that listens to observable attribute\n     * changes or DOM Events (depending on the kind of the binding). Usually, a {@link module:ui/view~View} instance.\n     * @returns {module:ui/template~BindChain}\n     */\n\n  }, {\n    key: \"_renderNode\",\n\n    /**\n     * Renders a DOM Node (either an HTML element or text) out of the template.\n     *\n     * @protected\n     * @param {module:ui/template~RenderData} data Rendering data.\n     */\n    value: function _renderNode(data) {\n      var isInvalid;\n\n      if (data.node) {\n        // When applying, a definition cannot have \"tag\" and \"text\" at the same time.\n        isInvalid = this.tag && this.text;\n      } else {\n        // When rendering, a definition must have either \"tag\" or \"text\": XOR( this.tag, this.text ).\n        isInvalid = this.tag ? this.text : !this.text;\n      }\n\n      if (isInvalid) {\n        /**\n         * Node definition cannot have the \"tag\" and \"text\" properties at the same time.\n         * Node definition must have either \"tag\" or \"text\" when rendering a new Node.\n         *\n         * @error ui-template-wrong-syntax\n         */\n        throw new CKEditorError('ui-template-wrong-syntax: Node definition must have either \"tag\" or \"text\" when rendering a new Node.', this);\n      }\n\n      if (this.text) {\n        return this._renderText(data);\n      } else {\n        return this._renderElement(data);\n      }\n    }\n    /**\n     * Renders an HTML element out of the template.\n     *\n     * @protected\n     * @param {module:ui/template~RenderData} data Rendering data.\n     */\n\n  }, {\n    key: \"_renderElement\",\n    value: function _renderElement(data) {\n      var node = data.node;\n\n      if (!node) {\n        node = data.node = document.createElementNS(this.ns || xhtmlNs, this.tag);\n      }\n\n      this._renderAttributes(data);\n\n      this._renderElementChildren(data);\n\n      this._setUpListeners(data);\n\n      return node;\n    }\n    /**\n     * Renders a text node out of {@link module:ui/template~Template#text}.\n     *\n     * @protected\n     * @param {module:ui/template~RenderData} data Rendering data.\n     */\n\n  }, {\n    key: \"_renderText\",\n    value: function _renderText(data) {\n      var node = data.node; // Save the original textContent to revert it in #revert().\n\n      if (node) {\n        data.revertData.text = node.textContent;\n      } else {\n        node = data.node = document.createTextNode('');\n      } // Check if this Text Node is bound to Observable. Cases:\n      //\n      //\t\ttext: [ Template.bind( ... ).to( ... ) ]\n      //\n      //\t\ttext: [\n      //\t\t\t'foo',\n      //\t\t\tTemplate.bind( ... ).to( ... ),\n      //\t\t\t...\n      //\t\t]\n      //\n\n\n      if (hasTemplateBinding(this.text)) {\n        this._bindToObservable({\n          schema: this.text,\n          updater: getTextUpdater(node),\n          data: data\n        });\n      } // Simply set text. Cases:\n      //\n      //\t\ttext: [ 'all', 'are', 'static' ]\n      //\n      //\t\ttext: [ 'foo' ]\n      //\n      else {\n          node.textContent = this.text.join('');\n        }\n\n      return node;\n    }\n    /**\n     * Renders HTML element attributes out of {@link module:ui/template~Template#attributes}.\n     *\n     * @protected\n     * @param {module:ui/template~RenderData} data Rendering data.\n     */\n\n  }, {\n    key: \"_renderAttributes\",\n    value: function _renderAttributes(data) {\n      var attrName, attrValue, domAttrValue, attrNs;\n\n      if (!this.attributes) {\n        return;\n      }\n\n      var node = data.node;\n      var revertData = data.revertData;\n\n      for (attrName in this.attributes) {\n        // Current attribute value in DOM.\n        domAttrValue = node.getAttribute(attrName); // The value to be set.\n\n        attrValue = this.attributes[attrName]; // Save revert data.\n\n        if (revertData) {\n          revertData.attributes[attrName] = domAttrValue;\n        } // Detect custom namespace:\n        //\n        //\t\tclass: {\n        //\t\t\tns: 'abc',\n        //\t\t\tvalue: Template.bind( ... ).to( ... )\n        //\t\t}\n        //\n\n\n        attrNs = isObject(attrValue[0]) && attrValue[0].ns ? attrValue[0].ns : null; // Activate binding if one is found. Cases:\n        //\n        //\t\tclass: [\n        //\t\t\tTemplate.bind( ... ).to( ... )\n        //\t\t]\n        //\n        //\t\tclass: [\n        //\t\t\t'bar',\n        //\t\t\tTemplate.bind( ... ).to( ... ),\n        //\t\t\t'baz'\n        //\t\t]\n        //\n        //\t\tclass: {\n        //\t\t\tns: 'abc',\n        //\t\t\tvalue: Template.bind( ... ).to( ... )\n        //\t\t}\n        //\n\n        if (hasTemplateBinding(attrValue)) {\n          // Normalize attributes with additional data like namespace:\n          //\n          //\t\tclass: {\n          //\t\t\tns: 'abc',\n          //\t\t\tvalue: [ ... ]\n          //\t\t}\n          //\n          var valueToBind = attrNs ? attrValue[0].value : attrValue; // Extend the original value of attributes like \"style\" and \"class\",\n          // don't override them.\n\n          if (revertData && shouldExtend(attrName)) {\n            valueToBind.unshift(domAttrValue);\n          }\n\n          this._bindToObservable({\n            schema: valueToBind,\n            updater: getAttributeUpdater(node, attrName, attrNs),\n            data: data\n          });\n        } // Style attribute could be an Object so it needs to be parsed in a specific way.\n        //\n        //\t\tstyle: {\n        //\t\t\twidth: '100px',\n        //\t\t\theight: Template.bind( ... ).to( ... )\n        //\t\t}\n        //\n        else if (attrName == 'style' && typeof attrValue[0] !== 'string') {\n            this._renderStyleAttribute(attrValue[0], data);\n          } // Otherwise simply set the static attribute:\n          //\n          //\t\tclass: [ 'foo' ]\n          //\n          //\t\tclass: [ 'all', 'are', 'static' ]\n          //\n          //\t\tclass: [\n          //\t\t\t{\n          //\t\t\t\tns: 'abc',\n          //\t\t\t\tvalue: [ 'foo' ]\n          //\t\t\t}\n          //\t\t]\n          //\n          else {\n              // Extend the original value of attributes like \"style\" and \"class\",\n              // don't override them.\n              if (revertData && domAttrValue && shouldExtend(attrName)) {\n                attrValue.unshift(domAttrValue);\n              }\n\n              attrValue = attrValue // Retrieve \"values\" from:\n              //\n              //\t\tclass: [\n              //\t\t\t{\n              //\t\t\t\tns: 'abc',\n              //\t\t\t\tvalue: [ ... ]\n              //\t\t\t}\n              //\t\t]\n              //\n              .map(function (val) {\n                return val ? val.value || val : val;\n              }) // Flatten the array.\n              .reduce(function (prev, next) {\n                return prev.concat(next);\n              }, []) // Convert into string.\n              .reduce(arrayValueReducer, '');\n\n              if (!isFalsy(attrValue)) {\n                node.setAttributeNS(attrNs, attrName, attrValue);\n              }\n            }\n      }\n    }\n    /**\n     * Renders the `style` attribute of an HTML element based on\n     * {@link module:ui/template~Template#attributes}.\n     *\n     * A style attribute is an {Object} with static values:\n     *\n     *\t\tattributes: {\n     *\t\t\tstyle: {\n     *\t\t\t\tcolor: 'red'\n     *\t\t\t}\n     *\t\t}\n     *\n     * or values bound to {@link module:ui/model~Model} properties:\n     *\n     *\t\tattributes: {\n     *\t\t\tstyle: {\n     *\t\t\t\tcolor: bind.to( ... )\n     *\t\t\t}\n     *\t\t}\n     *\n     * Note: The `style` attribute is rendered without setting the namespace. It does not seem to be\n     * needed.\n     *\n     * @private\n     * @param {Object} styles Styles located in `attributes.style` of {@link module:ui/template~TemplateDefinition}.\n     * @param {module:ui/template~RenderData} data Rendering data.\n     */\n\n  }, {\n    key: \"_renderStyleAttribute\",\n    value: function _renderStyleAttribute(styles, data) {\n      var node = data.node;\n\n      for (var styleName in styles) {\n        var styleValue = styles[styleName]; // Cases:\n        //\n        //\t\tstyle: {\n        //\t\t\tcolor: bind.to( 'attribute' )\n        //\t\t}\n        //\n\n        if (hasTemplateBinding(styleValue)) {\n          this._bindToObservable({\n            schema: [styleValue],\n            updater: getStyleUpdater(node, styleName),\n            data: data\n          });\n        } // Cases:\n        //\n        //\t\tstyle: {\n        //\t\t\tcolor: 'red'\n        //\t\t}\n        //\n        else {\n            node.style[styleName] = styleValue;\n          }\n      }\n    }\n    /**\n     * Recursively renders HTML element's children from {@link module:ui/template~Template#children}.\n     *\n     * @protected\n     * @param {module:ui/template~RenderData} data Rendering data.\n     */\n\n  }, {\n    key: \"_renderElementChildren\",\n    value: function _renderElementChildren(data) {\n      var node = data.node;\n      var container = data.intoFragment ? document.createDocumentFragment() : node;\n      var isApplying = data.isApplying;\n      var childIndex = 0;\n\n      var _iterator2 = _createForOfIteratorHelper(this.children),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var child = _step2.value;\n\n          if (isViewCollection(child)) {\n            if (!isApplying) {\n              child.setParent(node); // Note: ViewCollection renders its children.\n\n              var _iterator3 = _createForOfIteratorHelper(child),\n                  _step3;\n\n              try {\n                for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n                  var view = _step3.value;\n                  container.appendChild(view.element);\n                }\n              } catch (err) {\n                _iterator3.e(err);\n              } finally {\n                _iterator3.f();\n              }\n            }\n          } else if (isView(child)) {\n            if (!isApplying) {\n              if (!child.isRendered) {\n                child.render();\n              }\n\n              container.appendChild(child.element);\n            }\n          } else if (isNode(child)) {\n            container.appendChild(child);\n          } else {\n            if (isApplying) {\n              var revertData = data.revertData;\n              var childRevertData = getEmptyRevertData();\n              revertData.children.push(childRevertData);\n\n              child._renderNode({\n                node: container.childNodes[childIndex++],\n                isApplying: true,\n                revertData: childRevertData\n              });\n            } else {\n              container.appendChild(child.render());\n            }\n          }\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n\n      if (data.intoFragment) {\n        node.appendChild(container);\n      }\n    }\n    /**\n     * Activates `on` event listeners from the {@link module:ui/template~TemplateDefinition}\n     * on an HTML element.\n     *\n     * @protected\n     * @param {module:ui/template~RenderData} data Rendering data.\n     */\n\n  }, {\n    key: \"_setUpListeners\",\n    value: function _setUpListeners(data) {\n      var _this = this;\n\n      if (!this.eventListeners) {\n        return;\n      }\n\n      var _loop = function _loop(key) {\n        var revertBindings = _this.eventListeners[key].map(function (schemaItem) {\n          var _key$split = key.split('@'),\n              _key$split2 = _slicedToArray(_key$split, 2),\n              domEvtName = _key$split2[0],\n              domSelector = _key$split2[1];\n\n          return schemaItem.activateDomEventListener(domEvtName, domSelector, data);\n        });\n\n        if (data.revertData) {\n          data.revertData.bindings.push(revertBindings);\n        }\n      };\n\n      for (var key in this.eventListeners) {\n        _loop(key);\n      }\n    }\n    /**\n     * For a given {@link module:ui/template~TemplateValueSchema} containing {@link module:ui/template~TemplateBinding}\n     * activates the binding and sets its initial value.\n     *\n     * Note: {@link module:ui/template~TemplateValueSchema} can be for HTML element attributes or\n     * text node `textContent`.\n     *\n     * @protected\n     * @param {Object} options Binding options.\n     * @param {module:ui/template~TemplateValueSchema} options.schema\n     * @param {Function} options.updater A function which updates the DOM (like attribute or text).\n     * @param {module:ui/template~RenderData} options.data Rendering data.\n     */\n\n  }, {\n    key: \"_bindToObservable\",\n    value: function _bindToObservable(_ref) {\n      var schema = _ref.schema,\n          updater = _ref.updater,\n          data = _ref.data;\n      var revertData = data.revertData; // Set initial values.\n\n      syncValueSchemaValue(schema, updater, data);\n      var revertBindings = schema // Filter \"falsy\" (false, undefined, null, '') value schema components out.\n      .filter(function (item) {\n        return !isFalsy(item);\n      }) // Filter inactive bindings from schema, like static strings ('foo'), numbers (42), etc.\n      .filter(function (item) {\n        return item.observable;\n      }) // Once only the actual binding are left, let the emitter listen to observable change:attribute event.\n      // TODO: Reduce the number of listeners attached as many bindings may listen\n      // to the same observable attribute.\n      .map(function (templateBinding) {\n        return templateBinding.activateAttributeListener(schema, updater, data);\n      });\n\n      if (revertData) {\n        revertData.bindings.push(revertBindings);\n      }\n    }\n    /**\n     * Reverts {@link module:ui/template~RenderData#revertData template data} from a node to\n     * return it to the original state.\n     *\n     * @protected\n     * @param {HTMLElement|Text} node A node to be reverted.\n     * @param {Object} revertData An object that stores information about what changes have been made by\n     * {@link #apply} to the node. See {@link module:ui/template~RenderData#revertData} for more information.\n     */\n\n  }, {\n    key: \"_revertTemplateFromNode\",\n    value: function _revertTemplateFromNode(node, revertData) {\n      var _iterator4 = _createForOfIteratorHelper(revertData.bindings),\n          _step4;\n\n      try {\n        for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n          var binding = _step4.value;\n\n          // Each binding may consist of several observable+observable#attribute.\n          // like the following has 2:\n          //\n          //\t\tclass: [\n          //\t\t\t'x',\n          //\t\t\tbind.to( 'foo' ),\n          //\t\t\t'y',\n          //\t\t\tbind.to( 'bar' )\n          //\t\t]\n          //\n          var _iterator5 = _createForOfIteratorHelper(binding),\n              _step5;\n\n          try {\n            for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n              var revertBinding = _step5.value;\n              revertBinding();\n            }\n          } catch (err) {\n            _iterator5.e(err);\n          } finally {\n            _iterator5.f();\n          }\n        }\n      } catch (err) {\n        _iterator4.e(err);\n      } finally {\n        _iterator4.f();\n      }\n\n      if (revertData.text) {\n        node.textContent = revertData.text;\n        return;\n      }\n\n      for (var attrName in revertData.attributes) {\n        var attrValue = revertData.attributes[attrName]; // When the attribute has **not** been set before #apply().\n\n        if (attrValue === null) {\n          node.removeAttribute(attrName);\n        } else {\n          node.setAttribute(attrName, attrValue);\n        }\n      }\n\n      for (var i = 0; i < revertData.children.length; ++i) {\n        this._revertTemplateFromNode(node.childNodes[i], revertData.children[i]);\n      }\n    }\n  }], [{\n    key: \"bind\",\n    value: function bind(observable, emitter) {\n      return {\n        to: function to(eventNameOrFunctionOrAttribute, callback) {\n          return new TemplateToBinding({\n            eventNameOrFunction: eventNameOrFunctionOrAttribute,\n            attribute: eventNameOrFunctionOrAttribute,\n            observable: observable,\n            emitter: emitter,\n            callback: callback\n          });\n        },\n        if: function _if(attribute, valueIfTrue, callback) {\n          return new TemplateIfBinding({\n            observable: observable,\n            emitter: emitter,\n            attribute: attribute,\n            valueIfTrue: valueIfTrue,\n            callback: callback\n          });\n        }\n      };\n    }\n    /**\n     * Extends an existing {@link module:ui/template~Template} instance with some additional content\n     * from another {@link module:ui/template~TemplateDefinition}.\n     *\n     *\t\tconst bind = Template.bind( observable, emitter );\n     *\n     *\t\tconst template = new Template( {\n     *\t\t\ttag: 'p',\n     *\t\t\tattributes: {\n     *\t\t\t\tclass: 'a',\n     *\t\t\t\tdata-x: bind.to( 'foo' )\n     *\t\t\t},\n     *\t\t\tchildren: [\n     *\t\t\t\t{\n     *\t\t\t\t\ttag: 'span',\n     *\t\t\t\t\tattributes: {\n     *\t\t\t\t\t\tclass: 'b'\n     *\t\t\t\t\t},\n     *\t\t\t\t\tchildren: [\n     *\t\t\t\t\t\t'Span'\n     *\t\t\t\t\t]\n     *\t\t\t\t}\n     *\t\t\t]\n     *\t\t } );\n     *\n     *\t\t// Instance-level extension.\n     *\t\tTemplate.extend( template, {\n     *\t\t\tattributes: {\n     *\t\t\t\tclass: 'b',\n     *\t\t\t\tdata-x: bind.to( 'bar' )\n     *\t\t\t},\n     *\t\t\tchildren: [\n     *\t\t\t\t{\n     *\t\t\t\t\tattributes: {\n     *\t\t\t\t\t\tclass: 'c'\n     *\t\t\t\t\t}\n     *\t\t\t\t}\n     *\t\t\t]\n     *\t\t} );\n     *\n     *\t\t// Child extension.\n     *\t\tTemplate.extend( template.children[ 0 ], {\n     *\t\t\tattributes: {\n     *\t\t\t\tclass: 'd'\n     *\t\t\t}\n     *\t\t} );\n     *\n     * the `outerHTML` of `template.render()` is:\n     *\n     *\t\t<p class=\"a b\" data-x=\"{ observable.foo } { observable.bar }\">\n     *\t\t\t<span class=\"b c d\">Span</span>\n     *\t\t</p>\n     *\n     * @param {module:ui/template~Template} template An existing template instance to be extended.\n     * @param {module:ui/template~TemplateDefinition} def Additional definition to be applied to a template.\n     */\n\n  }, {\n    key: \"extend\",\n    value: function extend(template, def) {\n      if (template._isRendered) {\n        /**\n         * Extending a template after rendering may not work as expected. To make sure\n         * the {@link module:ui/template~Template.extend extending} works for an element,\n         * make sure it happens before {@link #render} is called.\n         *\n         * @error template-extend-render\n         */\n        throw new CKEditorError('template-extend-render: Attempting to extend a template which has already been rendered.', [this, template]);\n      }\n\n      extendTemplate(template, normalize(clone(def)));\n    }\n  }]);\n\n  return Template;\n}();\n\nexport { Template as default };\nmix(Template, EmitterMixin);\n/**\n * Describes a binding created by the {@link module:ui/template~Template.bind} interface.\n *\n * @protected\n */\n\nexport var TemplateBinding = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the {@link module:ui/template~TemplateBinding} class.\n   *\n   * @param {module:ui/template~TemplateDefinition} def The definition of the binding.\n   */\n  function TemplateBinding(def) {\n    _classCallCheck(this, TemplateBinding);\n\n    Object.assign(this, def);\n    /**\n     * An observable instance of the binding. It either:\n     *\n     * * provides the attribute with the value,\n     * * or passes the event when a corresponding DOM event is fired.\n     *\n     * @member {module:utils/observablemixin~ObservableMixin} module:ui/template~TemplateBinding#observable\n     */\n\n    /**\n     * An {@link module:utils/emittermixin~Emitter} used by the binding to:\n     *\n     * * listen to the attribute change in the {@link module:ui/template~TemplateBinding#observable},\n     * * or listen to the event in the DOM.\n     *\n     * @member {module:utils/emittermixin~EmitterMixin} module:ui/template~TemplateBinding#emitter\n     */\n\n    /**\n     * The name of the {@link module:ui/template~TemplateBinding#observable observed attribute}.\n     *\n     * @member {String} module:ui/template~TemplateBinding#attribute\n     */\n\n    /**\n     * A custom function to process the value of the {@link module:ui/template~TemplateBinding#attribute}.\n     *\n     * @member {Function} [module:ui/template~TemplateBinding#callback]\n     */\n  }\n  /**\n   * Returns the value of the binding. It is the value of the {@link module:ui/template~TemplateBinding#attribute} in\n   * {@link module:ui/template~TemplateBinding#observable}. The value may be processed by the\n   * {@link module:ui/template~TemplateBinding#callback}, if such has been passed to the binding.\n   *\n   * @param {Node} [node] A native DOM node, passed to the custom {@link module:ui/template~TemplateBinding#callback}.\n   * @returns {*} The value of {@link module:ui/template~TemplateBinding#attribute} in\n   * {@link module:ui/template~TemplateBinding#observable}.\n   */\n\n\n  _createClass(TemplateBinding, [{\n    key: \"getValue\",\n    value: function getValue(node) {\n      var value = this.observable[this.attribute];\n      return this.callback ? this.callback(value, node) : value;\n    }\n    /**\n     * Activates the listener which waits for changes of the {@link module:ui/template~TemplateBinding#attribute} in\n     * {@link module:ui/template~TemplateBinding#observable}, then updates the DOM with the aggregated\n     * value of {@link module:ui/template~TemplateValueSchema}.\n     *\n     * @param {module:ui/template~TemplateValueSchema} schema A full schema to generate an attribute or text in the DOM.\n     * @param {Function} updater A DOM updater function used to update the native DOM attribute or text.\n     * @param {module:ui/template~RenderData} data Rendering data.\n     * @returns {Function} A function to sever the listener binding.\n     */\n\n  }, {\n    key: \"activateAttributeListener\",\n    value: function activateAttributeListener(schema, updater, data) {\n      var _this2 = this;\n\n      var callback = function callback() {\n        return syncValueSchemaValue(schema, updater, data);\n      };\n\n      this.emitter.listenTo(this.observable, 'change:' + this.attribute, callback); // Allows revert of the listener.\n\n      return function () {\n        _this2.emitter.stopListening(_this2.observable, 'change:' + _this2.attribute, callback);\n      };\n    }\n  }]);\n\n  return TemplateBinding;\n}();\n/**\n * Describes either:\n *\n * * a binding to an {@link module:utils/observablemixin~Observable},\n * * or a native DOM event binding.\n *\n * It is created by the {@link module:ui/template~BindChain#to} method.\n *\n * @protected\n */\n\nexport var TemplateToBinding = /*#__PURE__*/function (_TemplateBinding) {\n  _inherits(TemplateToBinding, _TemplateBinding);\n\n  var _super = _createSuper(TemplateToBinding);\n\n  function TemplateToBinding() {\n    _classCallCheck(this, TemplateToBinding);\n\n    return _super.apply(this, arguments);\n  }\n\n  _createClass(TemplateToBinding, [{\n    key: \"activateDomEventListener\",\n\n    /**\n     * Activates the listener for the native DOM event, which when fired, is propagated by\n     * the {@link module:ui/template~TemplateBinding#emitter}.\n     *\n     * @param {String} domEvtName The name of the native DOM event.\n     * @param {String} domSelector The selector in the DOM to filter delegated events.\n     * @param {module:ui/template~RenderData} data Rendering data.\n     * @returns {Function} A function to sever the listener binding.\n     */\n    value: function activateDomEventListener(domEvtName, domSelector, data) {\n      var _this3 = this;\n\n      var callback = function callback(evt, domEvt) {\n        if (!domSelector || domEvt.target.matches(domSelector)) {\n          if (typeof _this3.eventNameOrFunction == 'function') {\n            _this3.eventNameOrFunction(domEvt);\n          } else {\n            _this3.observable.fire(_this3.eventNameOrFunction, domEvt);\n          }\n        }\n      };\n\n      this.emitter.listenTo(data.node, domEvtName, callback); // Allows revert of the listener.\n\n      return function () {\n        _this3.emitter.stopListening(data.node, domEvtName, callback);\n      };\n    }\n  }]);\n\n  return TemplateToBinding;\n}(TemplateBinding);\n/**\n * Describes a binding to {@link module:utils/observablemixin~ObservableMixin} created by the {@link module:ui/template~BindChain#if}\n * method.\n *\n * @protected\n */\n\nexport var TemplateIfBinding = /*#__PURE__*/function (_TemplateBinding2) {\n  _inherits(TemplateIfBinding, _TemplateBinding2);\n\n  var _super2 = _createSuper(TemplateIfBinding);\n\n  function TemplateIfBinding() {\n    _classCallCheck(this, TemplateIfBinding);\n\n    return _super2.apply(this, arguments);\n  }\n\n  _createClass(TemplateIfBinding, [{\n    key: \"getValue\",\n\n    /**\n     * @inheritDoc\n     */\n    value: function getValue(node) {\n      var value = _get(_getPrototypeOf(TemplateIfBinding.prototype), \"getValue\", this).call(this, node);\n\n      return isFalsy(value) ? false : this.valueIfTrue || true;\n    }\n    /**\n     * The value of the DOM attribute or text to be set if the {@link module:ui/template~TemplateBinding#attribute} in\n     * {@link module:ui/template~TemplateBinding#observable} is `true`.\n     *\n     * @member {String} [module:ui/template~TemplateIfBinding#valueIfTrue]\n     */\n\n  }]);\n\n  return TemplateIfBinding;\n}(TemplateBinding); // Checks whether given {@link module:ui/template~TemplateValueSchema} contains a\n// {@link module:ui/template~TemplateBinding}.\n//\n// @param {module:ui/template~TemplateValueSchema} schema\n// @returns {Boolean}\n\nfunction hasTemplateBinding(schema) {\n  if (!schema) {\n    return false;\n  } // Normalize attributes with additional data like namespace:\n  //\n  //\t\tclass: {\n  //\t\t\tns: 'abc',\n  //\t\t\tvalue: [ ... ]\n  //\t\t}\n  //\n\n\n  if (schema.value) {\n    schema = schema.value;\n  }\n\n  if (Array.isArray(schema)) {\n    return schema.some(hasTemplateBinding);\n  } else if (schema instanceof TemplateBinding) {\n    return true;\n  }\n\n  return false;\n} // Assembles the value using {@link module:ui/template~TemplateValueSchema} and stores it in a form of\n// an Array. Each entry of the Array corresponds to one of {@link module:ui/template~TemplateValueSchema}\n// items.\n//\n// @param {module:ui/template~TemplateValueSchema} schema\n// @param {Node} node DOM Node updated when {@link module:utils/observablemixin~ObservableMixin} changes.\n// @returns {Array}\n\n\nfunction getValueSchemaValue(schema, node) {\n  return schema.map(function (schemaItem) {\n    // Process {@link module:ui/template~TemplateBinding} bindings.\n    if (schemaItem instanceof TemplateBinding) {\n      return schemaItem.getValue(node);\n    } // All static values like strings, numbers, and \"falsy\" values (false, null, undefined, '', etc.) just pass.\n\n\n    return schemaItem;\n  });\n} // A function executed each time the bound Observable attribute changes, which updates the DOM with a value\n// constructed from {@link module:ui/template~TemplateValueSchema}.\n//\n// @param {module:ui/template~TemplateValueSchema} schema\n// @param {Function} updater A function which updates the DOM (like attribute or text).\n// @param {Node} node DOM Node updated when {@link module:utils/observablemixin~ObservableMixin} changes.\n\n\nfunction syncValueSchemaValue(schema, updater, _ref2) {\n  var node = _ref2.node;\n  var value = getValueSchemaValue(schema, node); // Check if schema is a single Template.bind.if, like:\n  //\n  //\t\tclass: Template.bind.if( 'foo' )\n  //\n\n  if (schema.length == 1 && schema[0] instanceof TemplateIfBinding) {\n    value = value[0];\n  } else {\n    value = value.reduce(arrayValueReducer, '');\n  }\n\n  if (isFalsy(value)) {\n    updater.remove();\n  } else {\n    updater.set(value);\n  }\n} // Returns an object consisting of `set` and `remove` functions, which\n// can be used in the context of DOM Node to set or reset `textContent`.\n// @see module:ui/view~View#_bindToObservable\n//\n// @param {Node} node DOM Node to be modified.\n// @returns {Object}\n\n\nfunction getTextUpdater(node) {\n  return {\n    set: function set(value) {\n      node.textContent = value;\n    },\n    remove: function remove() {\n      node.textContent = '';\n    }\n  };\n} // Returns an object consisting of `set` and `remove` functions, which\n// can be used in the context of DOM Node to set or reset an attribute.\n// @see module:ui/view~View#_bindToObservable\n//\n// @param {Node} node DOM Node to be modified.\n// @param {String} attrName Name of the attribute to be modified.\n// @param {String} [ns=null] Namespace to use.\n// @returns {Object}\n\n\nfunction getAttributeUpdater(el, attrName, ns) {\n  return {\n    set: function set(value) {\n      el.setAttributeNS(ns, attrName, value);\n    },\n    remove: function remove() {\n      el.removeAttributeNS(ns, attrName);\n    }\n  };\n} // Returns an object consisting of `set` and `remove` functions, which\n// can be used in the context of CSSStyleDeclaration to set or remove a style.\n// @see module:ui/view~View#_bindToObservable\n//\n// @param {Node} node DOM Node to be modified.\n// @param {String} styleName Name of the style to be modified.\n// @returns {Object}\n\n\nfunction getStyleUpdater(el, styleName) {\n  return {\n    set: function set(value) {\n      el.style[styleName] = value;\n    },\n    remove: function remove() {\n      el.style[styleName] = null;\n    }\n  };\n} // Clones definition of the template.\n//\n// @param {module:ui/template~TemplateDefinition} def\n// @returns {module:ui/template~TemplateDefinition}\n\n\nfunction clone(def) {\n  var clone = cloneDeepWith(def, function (value) {\n    // Don't clone the `Template.bind`* bindings because of the references to Observable\n    // and DomEmitterMixin instances inside, which would also be traversed and cloned by greedy\n    // cloneDeepWith algorithm. There's no point in cloning Observable/DomEmitterMixins\n    // along with the definition.\n    //\n    // Don't clone Template instances if provided as a child. They're simply #render()ed\n    // and nothing should interfere.\n    //\n    // Also don't clone View instances if provided as a child of the Template. The template\n    // instance will be extracted from the View during the normalization and there's no need\n    // to clone it.\n    if (value && (value instanceof TemplateBinding || isTemplate(value) || isView(value) || isViewCollection(value))) {\n      return value;\n    }\n  });\n  return clone;\n} // Normalizes given {@link module:ui/template~TemplateDefinition}.\n//\n// See:\n//  * {@link normalizeAttributes}\n//  * {@link normalizeListeners}\n//  * {@link normalizePlainTextDefinition}\n//  * {@link normalizeTextDefinition}\n//\n// @param {module:ui/template~TemplateDefinition} def\n// @returns {module:ui/template~TemplateDefinition} Normalized definition.\n\n\nfunction normalize(def) {\n  if (typeof def == 'string') {\n    def = normalizePlainTextDefinition(def);\n  } else if (def.text) {\n    normalizeTextDefinition(def);\n  }\n\n  if (def.on) {\n    def.eventListeners = normalizeListeners(def.on); // Template mixes EmitterMixin, so delete #on to avoid collision.\n\n    delete def.on;\n  }\n\n  if (!def.text) {\n    if (def.attributes) {\n      normalizeAttributes(def.attributes);\n    }\n\n    var children = [];\n\n    if (def.children) {\n      if (isViewCollection(def.children)) {\n        children.push(def.children);\n      } else {\n        var _iterator6 = _createForOfIteratorHelper(def.children),\n            _step6;\n\n        try {\n          for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n            var child = _step6.value;\n\n            if (isTemplate(child) || isView(child) || isNode(child)) {\n              children.push(child);\n            } else {\n              children.push(new Template(child));\n            }\n          }\n        } catch (err) {\n          _iterator6.e(err);\n        } finally {\n          _iterator6.f();\n        }\n      }\n    }\n\n    def.children = children;\n  }\n\n  return def;\n} // Normalizes \"attributes\" section of {@link module:ui/template~TemplateDefinition}.\n//\n//\t\tattributes: {\n//\t\t\ta: 'bar',\n//\t\t\tb: {@link module:ui/template~TemplateBinding},\n//\t\t\tc: {\n//\t\t\t\tvalue: 'bar'\n//\t\t\t}\n//\t\t}\n//\n// becomes\n//\n//\t\tattributes: {\n//\t\t\ta: [ 'bar' ],\n//\t\t\tb: [ {@link module:ui/template~TemplateBinding} ],\n//\t\t\tc: {\n//\t\t\t\tvalue: [ 'bar' ]\n//\t\t\t}\n//\t\t}\n//\n// @param {Object} attributes\n\n\nfunction normalizeAttributes(attributes) {\n  for (var a in attributes) {\n    if (attributes[a].value) {\n      attributes[a].value = [].concat(attributes[a].value);\n    }\n\n    arrayify(attributes, a);\n  }\n} // Normalizes \"on\" section of {@link module:ui/template~TemplateDefinition}.\n//\n//\t\ton: {\n//\t\t\ta: 'bar',\n//\t\t\tb: {@link module:ui/template~TemplateBinding},\n//\t\t\tc: [ {@link module:ui/template~TemplateBinding}, () => { ... } ]\n//\t\t}\n//\n// becomes\n//\n//\t\ton: {\n//\t\t\ta: [ 'bar' ],\n//\t\t\tb: [ {@link module:ui/template~TemplateBinding} ],\n//\t\t\tc: [ {@link module:ui/template~TemplateBinding}, () => { ... } ]\n//\t\t}\n//\n// @param {Object} listeners\n// @returns {Object} Object containing normalized listeners.\n\n\nfunction normalizeListeners(listeners) {\n  for (var l in listeners) {\n    arrayify(listeners, l);\n  }\n\n  return listeners;\n} // Normalizes \"string\" {@link module:ui/template~TemplateDefinition}.\n//\n//\t\t\"foo\"\n//\n// becomes\n//\n//\t\t{ text: [ 'foo' ] },\n//\n// @param {String} def\n// @returns {module:ui/template~TemplateDefinition} Normalized template definition.\n\n\nfunction normalizePlainTextDefinition(def) {\n  return {\n    text: [def]\n  };\n} // Normalizes text {@link module:ui/template~TemplateDefinition}.\n//\n//\t\tchildren: [\n//\t\t\t{ text: 'def' },\n//\t\t\t{ text: {@link module:ui/template~TemplateBinding} }\n//\t\t]\n//\n// becomes\n//\n//\t\tchildren: [\n//\t\t\t{ text: [ 'def' ] },\n//\t\t\t{ text: [ {@link module:ui/template~TemplateBinding} ] }\n//\t\t]\n//\n// @param {module:ui/template~TemplateDefinition} def\n\n\nfunction normalizeTextDefinition(def) {\n  if (!Array.isArray(def.text)) {\n    def.text = [def.text];\n  }\n} // Wraps an entry in Object in an Array, if not already one.\n//\n//\t\t{\n//\t\t\tx: 'y',\n//\t\t\ta: [ 'b' ]\n//\t\t}\n//\n// becomes\n//\n//\t\t{\n//\t\t\tx: [ 'y' ],\n//\t\t\ta: [ 'b' ]\n//\t\t}\n//\n// @param {Object} obj\n// @param {String} key\n\n\nfunction arrayify(obj, key) {\n  if (!Array.isArray(obj[key])) {\n    obj[key] = [obj[key]];\n  }\n} // A helper which concatenates the value avoiding unwanted\n// leading white spaces.\n//\n// @param {String} prev\n// @param {String} cur\n// @returns {String}\n\n\nfunction arrayValueReducer(prev, cur) {\n  if (isFalsy(cur)) {\n    return prev;\n  } else if (isFalsy(prev)) {\n    return cur;\n  } else {\n    return \"\".concat(prev, \" \").concat(cur);\n  }\n} // Extends one object defined in the following format:\n//\n//\t\t{\n//\t\t\tkey1: [Array1],\n//\t\t\tkey2: [Array2],\n//\t\t\t...\n//\t\t\tkeyN: [ArrayN]\n//\t\t}\n//\n// with another object of the same data format.\n//\n// @param {Object} obj Base object.\n// @param {Object} ext Object extending base.\n// @returns {String}\n\n\nfunction extendObjectValueArray(obj, ext) {\n  for (var a in ext) {\n    if (obj[a]) {\n      var _obj$a;\n\n      (_obj$a = obj[a]).push.apply(_obj$a, _toConsumableArray(ext[a]));\n    } else {\n      obj[a] = ext[a];\n    }\n  }\n} // A helper for {@link module:ui/template~Template#extend}. Recursively extends {@link module:ui/template~Template} instance\n// with content from {@link module:ui/template~TemplateDefinition}. See {@link module:ui/template~Template#extend} to learn more.\n//\n// @param {module:ui/template~Template} def A template instance to be extended.\n// @param {module:ui/template~TemplateDefinition} def A definition which is to extend the template instance.\n// @param {Object} Error context.\n\n\nfunction extendTemplate(template, def) {\n  if (def.attributes) {\n    if (!template.attributes) {\n      template.attributes = {};\n    }\n\n    extendObjectValueArray(template.attributes, def.attributes);\n  }\n\n  if (def.eventListeners) {\n    if (!template.eventListeners) {\n      template.eventListeners = {};\n    }\n\n    extendObjectValueArray(template.eventListeners, def.eventListeners);\n  }\n\n  if (def.text) {\n    var _template$text;\n\n    (_template$text = template.text).push.apply(_template$text, _toConsumableArray(def.text));\n  }\n\n  if (def.children && def.children.length) {\n    if (template.children.length != def.children.length) {\n      /**\n       * The number of children in extended definition does not match.\n       *\n       * @error ui-template-extend-children-mismatch\n       */\n      throw new CKEditorError('ui-template-extend-children-mismatch: The number of children in extended definition does not match.', template);\n    }\n\n    var childIndex = 0;\n\n    var _iterator7 = _createForOfIteratorHelper(def.children),\n        _step7;\n\n    try {\n      for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n        var childDef = _step7.value;\n        extendTemplate(template.children[childIndex++], childDef);\n      }\n    } catch (err) {\n      _iterator7.e(err);\n    } finally {\n      _iterator7.f();\n    }\n  }\n} // Checks if value is \"falsy\".\n// Note: 0 (Number) is not \"falsy\" in this context.\n//\n// @private\n// @param {*} value Value to be checked.\n\n\nfunction isFalsy(value) {\n  return !value && value !== 0;\n} // Checks if the item is an instance of {@link module:ui/view~View}\n//\n// @private\n// @param {*} value Value to be checked.\n\n\nfunction isView(item) {\n  return item instanceof View;\n} // Checks if the item is an instance of {@link module:ui/template~Template}\n//\n// @private\n// @param {*} value Value to be checked.\n\n\nfunction isTemplate(item) {\n  return item instanceof Template;\n} // Checks if the item is an instance of {@link module:ui/viewcollection~ViewCollection}\n//\n// @private\n// @param {*} value Value to be checked.\n\n\nfunction isViewCollection(item) {\n  return item instanceof ViewCollection;\n} // Creates an empty skeleton for {@link module:ui/template~Template#revert}\n// data.\n//\n// @private\n\n\nfunction getEmptyRevertData() {\n  return {\n    children: [],\n    bindings: [],\n    attributes: {}\n  };\n} // Checks whether an attribute should be extended when\n// {@link module:ui/template~Template#apply} is called.\n//\n// @private\n// @param {String} attrName Attribute name to check.\n\n\nfunction shouldExtend(attrName) {\n  return attrName == 'class' || attrName == 'style';\n}\n/**\n * A definition of the {@link module:ui/template~Template}. It describes what kind of\n * node a template will render (HTML element or text), attributes of an element, DOM event\n * listeners and children.\n *\n * Also see:\n * * {@link module:ui/template~TemplateValueSchema} to learn about HTML element attributes,\n * * {@link module:ui/template~TemplateListenerSchema} to learn about DOM event listeners.\n *\n * A sample definition on an HTML element can look like this:\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tchildren: [\n *\t\t\t\t{\n *\t\t\t\t\ttag: 'span',\n *\t\t\t\t\tattributes: { ... },\n *\t\t\t\t\tchildren: [ ... ],\n *\t\t\t\t},\n *\t\t\t\t{\n *\t\t\t\t\ttext: 'static–text'\n *\t\t\t\t},\n *\t\t\t\t'also-static–text',\n *\t\t\t],\n *\t\t\tattributes: {\n *\t\t\t\tclass: {@link module:ui/template~TemplateValueSchema},\n *\t\t\t\tid: {@link module:ui/template~TemplateValueSchema},\n *\t\t\t\tstyle: {@link module:ui/template~TemplateValueSchema}\n *\n *\t\t\t\t// ...\n *\t\t\t},\n *\t\t\ton: {\n *\t\t\t\t'click': {@link module:ui/template~TemplateListenerSchema}\n *\n *\t\t\t\t// Document.querySelector format is also accepted.\n *\t\t\t\t'keyup@a.some-class': {@link module:ui/template~TemplateListenerSchema}\n *\n *\t\t\t\t// ...\n *\t\t\t}\n *\t\t} );\n *\n * A {@link module:ui/view~View}, another {@link module:ui/template~Template} or a native DOM node\n * can also become a child of a template. When a view is passed, its {@link module:ui/view~View#element} is used:\n *\n *\t\tconst view = new SomeView();\n *\t\tconst childTemplate = new Template( { ... } );\n *\t\tconst childNode = document.createElement( 'b' );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\n *\t\t\tchildren: [\n *\t\t\t\t// view#element will be added as a child of this <p>.\n *\t\t\t\tview,\n *\n * \t\t\t\t// The output of childTemplate.render() will be added here.\n *\t\t\t\tchildTemplate,\n *\n *\t\t\t\t// Native DOM nodes are included directly in the rendered output.\n *\t\t\t\tchildNode\n *\t\t\t]\n *\t\t} );\n *\n * An entire {@link module:ui/viewcollection~ViewCollection} can be used as a child in the definition:\n *\n *\t\tconst collection = new ViewCollection();\n *\t\tcollection.add( someView );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\n *\t\t\tchildren: collection\n *\t\t} );\n *\n * @typedef module:ui/template~TemplateDefinition\n * @type Object\n *\n * @property {String} tag See the template {@link module:ui/template~Template#tag} property.\n *\n * @property {Array.<module:ui/template~TemplateDefinition>} [children]\n * See the template {@link module:ui/template~Template#children} property.\n *\n * @property {Object.<String, module:ui/template~TemplateValueSchema>} [attributes]\n * See the template {@link module:ui/template~Template#attributes} property.\n *\n * @property {String|module:ui/template~TemplateValueSchema|Array.<String|module:ui/template~TemplateValueSchema>} [text]\n * See the template {@link module:ui/template~Template#text} property.\n *\n * @property {Object.<String, module:ui/template~TemplateListenerSchema>} [on]\n * See the template {@link module:ui/template~Template#eventListeners} property.\n */\n\n/**\n * Describes a value of an HTML element attribute or `textContent`. It allows combining multiple\n * data sources like static values and {@link module:utils/observablemixin~Observable} attributes.\n *\n * Also see:\n * * {@link module:ui/template~TemplateDefinition} to learn where to use it,\n * * {@link module:ui/template~Template.bind} to learn how to configure\n * {@link module:utils/observablemixin~Observable} attribute bindings,\n * * {@link module:ui/template~Template#render} to learn how to render a template,\n * * {@link module:ui/template~BindChain#to `to()`} and {@link module:ui/template~BindChain#if `if()`}\n * methods to learn more about bindings.\n *\n * Attribute values can be described in many different ways:\n *\n *\t\t// Bind helper will create bindings to attributes of the observable.\n *\t\tconst bind = Template.bind( observable, emitter );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tattributes: {\n *\t\t\t\t// A plain string schema.\n *\t\t\t\t'class': 'static-text',\n *\n *\t\t\t\t// An object schema, binds to the \"foo\" attribute of the\n *\t\t\t\t// observable and follows its value.\n *\t\t\t\t'class': bind.to( 'foo' ),\n *\n *\t\t\t\t// An array schema, combines the above.\n *\t\t\t\t'class': [\n *\t\t\t\t\t'static-text',\n *\t\t\t\t\tbind.to( 'bar', () => { ... } ),\n *\n * \t\t\t\t\t// Bindings can also be conditional.\n *\t\t\t\t\tbind.if( 'baz', 'class-when-baz-is-true' )\n *\t\t\t\t],\n *\n *\t\t\t\t// An array schema, with a custom namespace, e.g. useful for creating SVGs.\n *\t\t\t\t'class': {\n *\t\t\t\t\tns: 'http://ns.url',\n *\t\t\t\t\tvalue: [\n *\t\t\t\t\t\tbind.if( 'baz', 'value-when-true' ),\n *\t\t\t\t\t\t'static-text'\n *\t\t\t\t\t]\n *\t\t\t\t},\n *\n *\t\t\t\t// An object schema, specific for styles.\n *\t\t\t\tstyle: {\n *\t\t\t\t\tcolor: 'red',\n *\t\t\t\t\tbackgroundColor: bind.to( 'qux', () => { ... } )\n *\t\t\t\t}\n *\t\t\t}\n *\t\t} );\n *\n * Text nodes can also have complex values:\n *\n *\t\tconst bind = Template.bind( observable, emitter );\n *\n *\t\t// Will render a \"foo\" text node.\n *\t\tnew Template( {\n *\t\t\ttext: 'foo'\n *\t\t} );\n *\n *\t\t// Will render a \"static text: {observable.foo}\" text node.\n *\t\t// The text of the node will be updated as the \"foo\" attribute changes.\n *\t\tnew Template( {\n *\t\t\ttext: [\n *\t\t\t\t'static text: ',\n *\t\t\t\tbind.to( 'foo', () => { ... } )\n *\t\t\t]\n *\t\t} );\n *\n * @typedef module:ui/template~TemplateValueSchema\n * @type {Object|String|Array}\n */\n\n/**\n * Describes an event listener attached to an HTML element. Such listener can propagate DOM events\n * through an {@link module:utils/observablemixin~Observable} instance, execute custom callbacks\n * or both, if necessary.\n *\n * Also see:\n * * {@link module:ui/template~TemplateDefinition} to learn more about template definitions,\n * * {@link module:ui/template~BindChain#to `to()`} method to learn more about bindings.\n *\n * Check out different ways of attaching event listeners below:\n *\n *\t\t// Bind helper will propagate events through the observable.\n *\t\tconst bind = Template.bind( observable, emitter );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\ton: {\n *\t\t\t\t// An object schema. The observable will fire the \"clicked\" event upon DOM \"click\".\n *\t\t\t\tclick: bind.to( 'clicked' )\n *\n *\t\t\t\t// An object schema. It will work for \"click\" event on \"a.foo\" children only.\n *\t\t\t\t'click@a.foo': bind.to( 'clicked' )\n *\n *\t\t\t\t// An array schema, makes the observable propagate multiple events.\n *\t\t\t\tclick: [\n *\t\t\t\t\tbind.to( 'clicked' ),\n *\t\t\t\t\tbind.to( 'executed' )\n *\t\t\t\t],\n *\n *\t\t\t\t// An array schema with a custom callback.\n *\t\t\t\t'click@a.foo': {\n *\t\t\t\t\tbind.to( 'clicked' ),\n *\t\t\t\t\tbind.to( evt => {\n *\t\t\t\t\t\tconsole.log( `${ evt.target } has been clicked!` );\n *\t\t\t\t\t} }\n *\t\t\t\t}\n *\t\t\t}\n *\t\t} );\n *\n * @typedef module:ui/template~TemplateListenerSchema\n * @type {Object|String|Array}\n */\n\n/**\n * The return value of {@link ~Template.bind `Template.bind()`}. It provides `to()` and `if()`\n * methods to create the {@link module:utils/observablemixin~Observable observable} attribute and event bindings.\n *\n * @interface module:ui/template~BindChain\n */\n\n/**\n * Binds an {@link module:utils/observablemixin~Observable observable} to either:\n *\n * * an HTML element attribute or a text node `textContent`, so it remains in sync with the observable\n * attribute as it changes,\n * * or an HTML element DOM event, so the DOM events are propagated through an observable.\n *\n * Some common use cases of `to()` bindings are presented below:\n *\n *\t\tconst bind = Template.bind( observable, emitter );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'p',\n *\t\t\tattributes: {\n *\t\t\t\t// class=\"...\" attribute gets bound to `observable#a`\n *\t\t\t\tclass: bind.to( 'a' )\n *\t\t\t},\n *\t\t\tchildren: [\n *\t\t\t\t// <p>...</p> gets bound to observable#b; always `toUpperCase()`.\n *\t\t\t\t{\n *\t\t\t\t\ttext: bind.to( 'b', ( value, node ) => value.toUpperCase() )\n *\t\t\t\t}\n *\t\t\t],\n *\t\t\ton: {\n *\t\t\t\tclick: [\n *\t\t\t\t\t// An observable will fire \"clicked\" upon \"click\" in the DOM.\n *\t\t\t\t\tbind.to( 'clicked' ),\n *\n *\t\t\t\t\t// A custom callback will be executed upon \"click\" in the DOM.\n *\t\t\t\t\tbind.to( () => {\n *\t\t\t\t\t\t...\n *\t\t\t\t\t} )\n *\t\t\t\t]\n *\t\t\t}\n *\t\t} ).render();\n *\n * Learn more about using `to()` in the {@link module:ui/template~TemplateValueSchema} and\n * {@link module:ui/template~TemplateListenerSchema}.\n *\n * @method #to\n * @param {String|Function} eventNameOrFunctionOrAttribute An attribute name of\n * {@link module:utils/observablemixin~Observable} or a DOM event name or an event callback.\n * @param {Function} [callback] Allows for processing of the value. Accepts `Node` and `value` as arguments.\n * @returns {module:ui/template~TemplateBinding}\n */\n\n/**\n * Binds an {@link module:utils/observablemixin~Observable observable} to an HTML element attribute or a text\n * node `textContent` so it remains in sync with the observable attribute as it changes.\n *\n * Unlike {@link module:ui/template~BindChain#to}, it controls the presence of the attribute or `textContent`\n * depending on the \"falseness\" of an {@link module:utils/observablemixin~Observable} attribute.\n *\n *\t\tconst bind = Template.bind( observable, emitter );\n *\n *\t\tnew Template( {\n *\t\t\ttag: 'input',\n *\t\t\tattributes: {\n *\t\t\t\t// <input checked> when `observable#a` is not undefined/null/false/''\n *\t\t\t\t// <input> when `observable#a` is undefined/null/false\n *\t\t\t\tchecked: bind.if( 'a' )\n *\t\t\t},\n *\t\t\tchildren: [\n *\t\t\t\t{\n *\t\t\t\t\t// <input>\"b-is-not-set\"</input> when `observable#b` is undefined/null/false/''\n *\t\t\t\t\t// <input></input> when `observable#b` is not \"falsy\"\n *\t\t\t\t\ttext: bind.if( 'b', 'b-is-not-set', ( value, node ) => !value )\n *\t\t\t\t}\n *\t\t\t]\n *\t\t} ).render();\n *\n * Learn more about using `if()` in the {@link module:ui/template~TemplateValueSchema}.\n *\n * @method #if\n * @param {String} attribute An attribute name of {@link module:utils/observablemixin~Observable} used in the binding.\n * @param {String} [valueIfTrue] Value set when the {@link module:utils/observablemixin~Observable} attribute is not\n * undefined/null/false/'' (empty string).\n * @param {Function} [callback] Allows for processing of the value. Accepts `Node` and `value` as arguments.\n * @returns {module:ui/template~TemplateBinding}\n */\n\n/**\n * The {@link module:ui/template~Template#_renderNode} configuration.\n *\n * @private\n * @interface module:ui/template~RenderData\n */\n\n/**\n * Tells {@link module:ui/template~Template#_renderNode} to render\n * children into `DocumentFragment` first and then append the fragment\n * to the parent element. It is a speed optimization.\n *\n * @member {Boolean} #intoFragment\n */\n\n/**\n * A node which is being rendered.\n *\n * @member {HTMLElement|Text} #node\n */\n\n/**\n * Indicates whether the {@module:ui/template~RenderNodeOptions#node} has\n * been provided by {@module:ui/template~Template#apply}.\n *\n * @member {Boolean} #isApplying\n */\n\n/**\n * An object storing the data that helps {@module:ui/template~Template#revert}\n * bringing back an element to its initial state, i.e. before\n * {@module:ui/template~Template#apply} was called.\n *\n * @member {Object} #revertData\n */","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/toolbar/enabletoolbarkeyboardfocus\n */\n\n/**\n * Enables focus/blur toolbar navigation using `Alt+F10` and `Esc` keystrokes.\n *\n * @param {Object} options Options of the utility.\n * @param {*} options.origin A view to which the focus will return when `Esc` is pressed and\n * `options.toolbar` is focused.\n * @param {module:utils/keystrokehandler~KeystrokeHandler} options.originKeystrokeHandler A keystroke\n * handler to register `Alt+F10` keystroke.\n * @param {module:utils/focustracker~FocusTracker} options.originFocusTracker A focus tracker\n * for `options.origin`.\n * @param {module:ui/toolbar/toolbarview~ToolbarView} options.toolbar A toolbar which is to gain\n * focus when `Alt+F10` is pressed.\n * @param {Function} [options.beforeFocus] A callback executed before the `options.toolbar` gains focus\n * upon the `Alt+F10` keystroke.\n * @param {Function} [options.afterBlur] A callback executed after `options.toolbar` loses focus upon\n * `Esc` keystroke but before the focus goes back to `options.origin`.\n */\nexport default function enableToolbarKeyboardFocus(_ref) {\n  var origin = _ref.origin,\n      originKeystrokeHandler = _ref.originKeystrokeHandler,\n      originFocusTracker = _ref.originFocusTracker,\n      toolbar = _ref.toolbar,\n      beforeFocus = _ref.beforeFocus,\n      afterBlur = _ref.afterBlur;\n  // Because toolbar items can get focus, the overall state of the toolbar must\n  // also be tracked.\n  originFocusTracker.add(toolbar.element); // Focus the toolbar on the keystroke, if not already focused.\n\n  originKeystrokeHandler.set('Alt+F10', function (data, cancel) {\n    if (originFocusTracker.isFocused && !toolbar.focusTracker.isFocused) {\n      if (beforeFocus) {\n        beforeFocus();\n      }\n\n      toolbar.focus();\n      cancel();\n    }\n  }); // Blur the toolbar and bring the focus back to origin.\n\n  toolbar.keystrokes.set('Esc', function (data, cancel) {\n    if (toolbar.focusTracker.isFocused) {\n      origin.focus();\n\n      if (afterBlur) {\n        afterBlur();\n      }\n\n      cancel();\n    }\n  });\n}","/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/toolbar/normalizetoolbarconfig\n */\n\n/**\n * Normalizes the toolbar configuration (`config.toolbar`), which:\n *\n * * may be defined as an `Array`:\n *\n * \t\ttoolbar: [ 'heading', 'bold', 'italic', 'link', ... ]\n *\n * * or an `Object`:\n *\n *\t\ttoolbar: {\n *\t\t\titems: [ 'heading', 'bold', 'italic', 'link', ... ],\n *\t\t\t...\n *\t\t}\n *\n * * or may not be defined at all (`undefined`)\n *\n * and returns it in the object form.\n *\n * @param {Array|Object|undefined} config The value of `config.toolbar`.\n * @returns {Object} A normalized toolbar config object.\n */\nexport default function normalizeToolbarConfig(config) {\n  if (Array.isArray(config)) {\n    return {\n      items: config\n    };\n  }\n\n  if (!config) {\n    return {\n      items: []\n    };\n  }\n\n  return Object.assign({\n    items: []\n  }, config);\n}","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/toolbar/toolbarseparatorview\n */\nimport View from \"../view\";\n/**\n * The toolbar separator view class.\n *\n * @extends module:ui/view~View\n */\n\nvar ToolbarSeparatorView = /*#__PURE__*/function (_View) {\n  _inherits(ToolbarSeparatorView, _View);\n\n  var _super = _createSuper(ToolbarSeparatorView);\n\n  /**\n   * @inheritDoc\n   */\n  function ToolbarSeparatorView(locale) {\n    var _this;\n\n    _classCallCheck(this, ToolbarSeparatorView);\n\n    _this = _super.call(this, locale);\n\n    _this.setTemplate({\n      tag: 'span',\n      attributes: {\n        class: ['ck', 'ck-toolbar__separator']\n      }\n    });\n\n    return _this;\n  }\n\n  return ToolbarSeparatorView;\n}(View);\n\nexport { ToolbarSeparatorView as default };","import 'core-js/modules/es6.number.constructor';\nimport 'core-js/modules/es6.number.parse-int';\nimport _slicedToArray from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/slicedToArray';\nimport 'core-js/modules/web.dom.iterable';\nimport 'core-js/modules/es7.symbol.async-iterator';\nimport 'core-js/modules/es6.symbol';\nimport 'core-js/modules/es6.string.iterator';\nimport 'core-js/modules/es6.array.from';\nimport 'core-js/modules/es6.function.name';\nimport 'core-js/modules/es6.regexp.to-string';\nimport 'core-js/modules/es6.reflect.construct';\nimport _classCallCheck from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck';\nimport _createClass from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass';\nimport _assertThisInitialized from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/assertThisInitialized';\nimport _get from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/get';\nimport _inherits from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits';\nimport _possibleConstructorReturn from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn';\nimport _getPrototypeOf from '/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf';\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n    var it;\n    if (typeof Symbol === 'undefined' || o[Symbol.iterator] == null) {\n        if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === 'number') {\n            if (it)\n                o = it;\n            var i = 0;\n            var F = function F() {\n            };\n            return {\n                s: F,\n                n: function n() {\n                    if (i >= o.length)\n                        return { done: true };\n                    return {\n                        done: false,\n                        value: o[i++]\n                    };\n                },\n                e: function e(_e) {\n                    throw _e;\n                },\n                f: F\n            };\n        }\n        throw new TypeError('Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.');\n    }\n    var normalCompletion = true, didErr = false, err;\n    return {\n        s: function s() {\n            it = o[Symbol.iterator]();\n        },\n        n: function n() {\n            var step = it.next();\n            normalCompletion = step.done;\n            return step;\n        },\n        e: function e(_e2) {\n            didErr = true;\n            err = _e2;\n        },\n        f: function f() {\n            try {\n                if (!normalCompletion && it.return != null)\n                    it.return();\n            } finally {\n                if (didErr)\n                    throw err;\n            }\n        }\n    };\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n    if (!o)\n        return;\n    if (typeof o === 'string')\n        return _arrayLikeToArray(o, minLen);\n    var n = Object.prototype.toString.call(o).slice(8, -1);\n    if (n === 'Object' && o.constructor)\n        n = o.constructor.name;\n    if (n === 'Map' || n === 'Set')\n        return Array.from(o);\n    if (n === 'Arguments' || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))\n        return _arrayLikeToArray(o, minLen);\n}\nfunction _arrayLikeToArray(arr, len) {\n    if (len == null || len > arr.length)\n        len = arr.length;\n    for (var i = 0, arr2 = new Array(len); i < len; i++) {\n        arr2[i] = arr[i];\n    }\n    return arr2;\n}\nfunction _createSuper(Derived) {\n    var hasNativeReflectConstruct = _isNativeReflectConstruct();\n    return function _createSuperInternal() {\n        var Super = _getPrototypeOf(Derived), result;\n        if (hasNativeReflectConstruct) {\n            var NewTarget = _getPrototypeOf(this).constructor;\n            result = Reflect.construct(Super, arguments, NewTarget);\n        } else {\n            result = Super.apply(this, arguments);\n        }\n        return _possibleConstructorReturn(this, result);\n    };\n}\nfunction _isNativeReflectConstruct() {\n    if (typeof Reflect === 'undefined' || !Reflect.construct)\n        return false;\n    if (Reflect.construct.sham)\n        return false;\n    if (typeof Proxy === 'function')\n        return true;\n    try {\n        Date.prototype.toString.call(Reflect.construct(Date, [], function () {\n        }));\n        return true;\n    } catch (e) {\n        return false;\n    }\n}\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n/**\n * @module ui/toolbar/toolbarview\n */\n/* globals console */\nimport View from '../view';\nimport FocusTracker from '@ckeditor/ckeditor5-utils/src/focustracker';\nimport FocusCycler from '../focuscycler';\nimport KeystrokeHandler from '@ckeditor/ckeditor5-utils/src/keystrokehandler';\nimport ToolbarSeparatorView from './toolbarseparatorview';\nimport getResizeObserver from '@ckeditor/ckeditor5-utils/src/dom/getresizeobserver';\nimport preventDefault from '../bindings/preventdefault.js';\nimport Rect from '@ckeditor/ckeditor5-utils/src/dom/rect';\nimport global from '@ckeditor/ckeditor5-utils/src/dom/global';\nimport {\n    createDropdown,\n    addToolbarToDropdown\n} from '../dropdown/utils';\nimport { attachLinkToDocumentation } from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport verticalDotsIcon from '@ckeditor/ckeditor5-core/theme/icons/three-vertical-dots.svg';\nimport '../../theme/components/toolbar/toolbar.css';\n/**\n * The toolbar view class.\n *\n * @extends module:ui/view~View\n * @implements module:ui/dropdown/dropdownpanelfocusable~DropdownPanelFocusable\n */\nvar ToolbarView = /*#__PURE__*/\nfunction (_View) {\n    _inherits(ToolbarView, _View);\n    var _super = _createSuper(ToolbarView);\n    /**\n   * Creates an instance of the {@link module:ui/toolbar/toolbarview~ToolbarView} class.\n   *\n   * Also see {@link #render}.\n   *\n   * @param {module:utils/locale~Locale} locale The localization services instance.\n   * @param {module:ui/toolbar/toolbarview~ToolbarOptions} [options] Configuration options of the toolbar.\n   */\n    function ToolbarView(locale, options) {\n        var _this;\n        _classCallCheck(this, ToolbarView);\n        _this = _super.call(this, locale);\n        var bind = _this.bindTemplate;\n        var t = _this.t;\n        /**\n     * A reference to the options object passed to the constructor.\n     *\n     * @readonly\n     * @member {module:ui/toolbar/toolbarview~ToolbarOptions}\n     */\n        _this.options = options || {};\n        /**\n     * Label used by assistive technologies to describe this toolbar element.\n     *\n     * @default 'Editor toolbar'\n     * @member {String} #ariaLabel\n     */\n        _this.set('ariaLabel', t('Editor toolbar'));\n        /**\n     * A collection of toolbar items (buttons, dropdowns, etc.).\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this.items = _this.createCollection();\n        /**\n     * Tracks information about the DOM focus in the toolbar.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n        _this.focusTracker = new FocusTracker();\n        /**\n     * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}\n     * to handle keyboard navigation in the toolbar.\n     *\n     * @readonly\n     * @member {module:utils/keystrokehandler~KeystrokeHandler}\n     */\n        _this.keystrokes = new KeystrokeHandler();\n        /**\n     * An additional CSS class added to the {@link #element}.\n     *\n     * @observable\n     * @member {String} #class\n     */\n        _this.set('class');\n        /**\n     * A (child) view containing {@link #items toolbar items}.\n     *\n     * @readonly\n     * @member {module:ui/toolbar/toolbarview~ItemsView}\n     */\n        _this.itemsView = new ItemsView(locale);\n        /**\n     * A top–level collection aggregating building blocks of the toolbar.\n     *\n     *\t┌───────────────── ToolbarView ─────────────────┐\n     *\t| ┌──────────────── #children ────────────────┐ |\n     *\t| |   ┌──────────── #itemsView ───────────┐   | |\n     *\t| |   | [ item1 ] [ item2 ] ... [ itemN ] |   | |\n     *\t| |   └──────────────────────────────────-┘   | |\n     *\t| └───────────────────────────────────────────┘ |\n     *\t└───────────────────────────────────────────────┘\n     *\n     * By default, it contains the {@link #itemsView} but it can be extended with additional\n     * UI elements when necessary.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this.children = _this.createCollection();\n        _this.children.add(_this.itemsView);\n        /**\n     * A collection of {@link #items} that take part in the focus cycling\n     * (i.e. navigation using the keyboard). Usually, it contains a subset of {@link #items} with\n     * some optional UI elements that also belong to the toolbar and should be focusable\n     * by the user.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this.focusables = _this.createCollection();\n        /**\n     * Controls the orientation of toolbar items. Only available when\n     * {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull dynamic items grouping}\n     * is **disabled**.\n     *\n     * @observable\n     * @member {Boolean} #isVertical\n     */\n        /**\n     * Helps cycling over {@link #focusables focusable items} in the toolbar.\n     *\n     * @readonly\n     * @protected\n     * @member {module:ui/focuscycler~FocusCycler}\n     */\n        _this._focusCycler = new FocusCycler({\n            focusables: _this.focusables,\n            focusTracker: _this.focusTracker,\n            keystrokeHandler: _this.keystrokes,\n            actions: {\n                // Navigate toolbar items backwards using the arrow[left,up] keys.\n                focusPrevious: [\n                    'arrowleft',\n                    'arrowup'\n                ],\n                // Navigate toolbar items forwards using the arrow[right,down] keys.\n                focusNext: [\n                    'arrowright',\n                    'arrowdown'\n                ]\n            }\n        });\n        _this.setTemplate({\n            tag: 'div',\n            attributes: {\n                class: [\n                    'ck',\n                    'ck-toolbar',\n                    bind.to('class')\n                ],\n                role: 'toolbar',\n                'aria-label': bind.to('ariaLabel')\n            },\n            children: _this.children,\n            on: {\n                // https://github.com/ckeditor/ckeditor5-ui/issues/206\n                mousedown: preventDefault(_assertThisInitialized(_this))\n            }\n        });\n        /**\n     * An instance of the active toolbar behavior that shapes its look and functionality.\n     *\n     * See {@link module:ui/toolbar/toolbarview~ToolbarBehavior} to learn more.\n     *\n     * @protected\n     * @readonly\n     * @member {module:ui/toolbar/toolbarview~ToolbarBehavior}\n     */\n        _this._behavior = _this.options.shouldGroupWhenFull ? new DynamicGrouping(_assertThisInitialized(_this)) : new StaticLayout(_assertThisInitialized(_this));\n        return _this;\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(ToolbarView, [\n        {\n            key: 'render',\n            value: function render() {\n                var _this2 = this;\n                _get(_getPrototypeOf(ToolbarView.prototype), 'render', this).call(this);\n                // Children added before rendering should be known to the #focusTracker.\n                var _iterator = _createForOfIteratorHelper(this.items), _step;\n                try {\n                    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n                        var item = _step.value;\n                        this.focusTracker.add(item.element);\n                    }\n                } catch (err) {\n                    _iterator.e(err);\n                } finally {\n                    _iterator.f();\n                }\n                this.items.on('add', function (evt, item) {\n                    _this2.focusTracker.add(item.element);\n                });\n                this.items.on('remove', function (evt, item) {\n                    _this2.focusTracker.remove(item.element);\n                });\n                // Start listening for the keystrokes coming from #element.\n                this.keystrokes.listenTo(this.element);\n                this._behavior.render(this);\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n                this._behavior.destroy();\n                return _get(_getPrototypeOf(ToolbarView.prototype), 'destroy', this).call(this);\n            }    /**\n     * Focuses the first focusable in {@link #focusables}.\n     */\n        },\n        {\n            key: 'focus',\n            value: function focus() {\n                this._focusCycler.focusFirst();\n            }    /**\n     * Focuses the last focusable in {@link #focusables}.\n     */\n        },\n        {\n            key: 'focusLast',\n            value: function focusLast() {\n                this._focusCycler.focusLast();\n            }    /**\n     * A utility that expands the plain toolbar configuration into\n     * {@link module:ui/toolbar/toolbarview~ToolbarView#items} using a given component factory.\n     *\n     * @param {Array.<String>} config The toolbar items configuration.\n     * @param {module:ui/componentfactory~ComponentFactory} factory A factory producing toolbar items.\n     */\n        },\n        {\n            key: 'fillFromConfig',\n            value: function fillFromConfig(config, factory) {\n                var _this3 = this;\n                config.map(function (name) {\n                    if (name == '|') {\n                        _this3.items.add(new ToolbarSeparatorView());\n                    } else if (factory.has(name)) {\n                        _this3.items.add(factory.create(name));\n                    } else {\n                        /**\n           * There was a problem processing the configuration of the toolbar. The item with the given\n           * name does not exist so it was omitted when rendering the toolbar.\n           *\n           * This warning usually shows up when the {@link module:core/plugin~Plugin} which is supposed\n           * to provide a toolbar item has not been loaded or there is a typo in the configuration.\n           *\n           * Make sure the plugin responsible for this toolbar item is loaded and the toolbar configuration\n           * is correct, e.g. {@link module:basic-styles/bold~Bold} is loaded for the `'bold'` toolbar item.\n           *\n           * You can use the following snippet to retrieve all available toolbar items:\n           *\n           *\t\tArray.from( editor.ui.componentFactory.names() );\n           *\n           * @error toolbarview-item-unavailable\n           * @param {String} name The name of the component.\n           */\n                        console.warn(attachLinkToDocumentation('toolbarview-item-unavailable: The requested toolbar item is unavailable.'), { name: name });\n                    }\n                });\n            }\n        }\n    ]);\n    return ToolbarView;\n}(View);\n/**\n * An inner block of the {@link module:ui/toolbar/toolbarview~ToolbarView} hosting its\n * {@link module:ui/toolbar/toolbarview~ToolbarView#items}.\n *\n * @private\n * @extends module:ui/view~View\n */\nexport {\n    ToolbarView as default\n};\nvar ItemsView = /*#__PURE__*/\nfunction (_View2) {\n    _inherits(ItemsView, _View2);\n    var _super2 = _createSuper(ItemsView);\n    /**\n   * @inheritDoc\n   */\n    function ItemsView(locale) {\n        var _this4;\n        _classCallCheck(this, ItemsView);\n        _this4 = _super2.call(this, locale);\n        /**\n     * A collection of items (buttons, dropdowns, etc.).\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        _this4.children = _this4.createCollection();\n        _this4.setTemplate({\n            tag: 'div',\n            attributes: {\n                class: [\n                    'ck',\n                    'ck-toolbar__items'\n                ]\n            },\n            children: _this4.children\n        });\n        return _this4;\n    }\n    return ItemsView;\n}(View);\n/**\n * A toolbar behavior that makes it static and unresponsive to the changes of the environment.\n * At the same time, it also makes it possible to display a toolbar with a vertical layout\n * using the {@link module:ui/toolbar/toolbarview~ToolbarView#isVertical} property.\n *\n * @private\n * @implements module:ui/toolbar/toolbarview~ToolbarBehavior\n */\nvar StaticLayout = /*#__PURE__*/\nfunction () {\n    /**\n   * Creates an instance of the {@link module:ui/toolbar/toolbarview~StaticLayout} toolbar\n   * behavior.\n   *\n   * @param {module:ui/toolbar/toolbarview~ToolbarView} view An instance of the toolbar that this behavior\n   * is added to.\n   */\n    function StaticLayout(view) {\n        _classCallCheck(this, StaticLayout);\n        var bind = view.bindTemplate;\n        // Static toolbar can be vertical when needed.\n        view.set('isVertical', false);\n        // 1:1 pass–through binding, all ToolbarView#items are visible.\n        view.itemsView.children.bindTo(view.items).using(function (item) {\n            return item;\n        });\n        // 1:1 pass–through binding, all ToolbarView#items are focusable.\n        view.focusables.bindTo(view.items).using(function (item) {\n            return item;\n        });\n        view.extendTemplate({\n            attributes: {\n                class: [// When vertical, the toolbar has an additional CSS class.\n                    bind.if('isVertical', 'ck-toolbar_vertical')]\n            }\n        });\n    }\n    /**\n   * @inheritDoc\n   */\n    _createClass(StaticLayout, [\n        {\n            key: 'render',\n            value: function render() {\n            }    /**\n     * @inheritDoc\n     */\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n            }\n        }\n    ]);\n    return StaticLayout;\n}();\n/**\n * A toolbar behavior that makes the items respond to changes in the geometry.\n *\n * In a nutshell, it groups {@link module:ui/toolbar/toolbarview~ToolbarView#items}\n * that do not fit visually into a single row of the toolbar (due to limited space).\n * Items that do not fit are aggregated in a dropdown displayed at the end of the toolbar.\n *\n *\t┌──────────────────────────────────────── ToolbarView ──────────────────────────────────────────┐\n *\t| ┌─────────────────────────────────────── #children ─────────────────────────────────────────┐ |\n *\t| |   ┌─────── #itemsView ────────┐ ┌──────────────────────┐ ┌── #groupedItemsDropdown ───┐   | |\n *\t| |   |       #ungroupedItems     | | ToolbarSeparatorView | |        #groupedItems       |   | |\n *\t| |   └──────────────────────────-┘ └──────────────────────┘ └────────────────────────────┘   | |\n *\t| |                                  \\---------- only when toolbar items overflow --------/    | |\n *\t| └───────────────────────────────────────────────────────────────────────────────────────────┘ |\n *\t└───────────────────────────────────────────────────────────────────────────────────────────────┘\n *\n * @private\n * @implements module:ui/toolbar/toolbarview~ToolbarBehavior\n */\nvar DynamicGrouping = /*#__PURE__*/\nfunction () {\n    /**\n   * Creates an instance of the {@link module:ui/toolbar/toolbarview~DynamicGrouping} toolbar\n   * behavior.\n   *\n   * @param {module:ui/toolbar/toolbarview~ToolbarView} view An instance of the toolbar that this behavior\n   * is added to.\n   */\n    function DynamicGrouping(view) {\n        var _this5 = this;\n        _classCallCheck(this, DynamicGrouping);\n        /**\n     * A collection of toolbar children.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        this.viewChildren = view.children;\n        /**\n     * A collection of focusable toolbar elements.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        this.viewFocusables = view.focusables;\n        /**\n     * A view containing toolbar items.\n     *\n     * @readonly\n     * @member {module:ui/toolbar/toolbarview~ItemsView}\n     */\n        this.viewItemsView = view.itemsView;\n        /**\n     * Toolbar focus tracker.\n     *\n     * @readonly\n     * @member {module:utils/focustracker~FocusTracker}\n     */\n        this.viewFocusTracker = view.focusTracker;\n        /**\n     * Toolbar locale.\n     *\n     * @readonly\n     * @member {module:utils/locale~Locale}\n     */\n        this.viewLocale = view.locale;\n        /**\n     * Toolbar element.\n     *\n     * @readonly\n     * @member {HTMLElement} #viewElement\n     */\n        /**\n     * A subset of toolbar {@link module:ui/toolbar/toolbarview~ToolbarView#items}.\n     * Aggregates items that fit into a single row of the toolbar and were not {@link #groupedItems grouped}\n     * into a {@link #groupedItemsDropdown dropdown}. Items of this collection are displayed in the\n     * {@link module:ui/toolbar/toolbarview~ToolbarView#itemsView}.\n     *\n     * When none of the {@link module:ui/toolbar/toolbarview~ToolbarView#items} were grouped, it\n     * matches the {@link module:ui/toolbar/toolbarview~ToolbarView#items} collection in size and order.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        this.ungroupedItems = view.createCollection();\n        /**\n     * A subset of toolbar {@link module:ui/toolbar/toolbarview~ToolbarView#items}.\n     * A collection of the toolbar items that do not fit into a single row of the toolbar.\n     * Grouped items are displayed in a dedicated {@link #groupedItemsDropdown dropdown}.\n     *\n     * When none of the {@link module:ui/toolbar/toolbarview~ToolbarView#items} were grouped,\n     * this collection is empty.\n     *\n     * @readonly\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n        this.groupedItems = view.createCollection();\n        /**\n     * The dropdown that aggregates {@link #groupedItems grouped items} that do not fit into a single\n     * row of the toolbar. It is displayed on demand as the last of\n     * {@link module:ui/toolbar/toolbarview~ToolbarView#children toolbar children} and offers another\n     * (nested) toolbar which displays items that would normally overflow.\n     *\n     * @readonly\n     * @member {module:ui/dropdown/dropdownview~DropdownView}\n     */\n        this.groupedItemsDropdown = this._createGroupedItemsDropdown();\n        /**\n     * An instance of the resize observer that helps dynamically determine the geometry of the toolbar\n     * and manage items that do not fit into a single row.\n     *\n     * **Note:** Created in {@link #_enableGroupingOnResize}.\n     *\n     * @readonly\n     * @member {module:utils/dom/getresizeobserver~ResizeObserver}\n     */\n        this.resizeObserver = null;\n        /**\n     * A cached value of the horizontal padding style used by {@link #_updateGrouping}\n     * to manage the {@link module:ui/toolbar/toolbarview~ToolbarView#items} that do not fit into\n     * a single toolbar line. This value can be reused between updates because it is unlikely that\n     * the padding will change and re–using `Window.getComputedStyle()` is expensive.\n     *\n     * @readonly\n     * @member {Number}\n     */\n        this.cachedPadding = null;\n        // Only those items that were not grouped are visible to the user.\n        view.itemsView.children.bindTo(this.ungroupedItems).using(function (item) {\n            return item;\n        });\n        // Make sure all #items visible in the main space of the toolbar are \"focuscycleable\".\n        this.ungroupedItems.on('add', this._updateFocusCycleableItems.bind(this));\n        this.ungroupedItems.on('remove', this._updateFocusCycleableItems.bind(this));\n        // Make sure the #groupedItemsDropdown is also included in cycling when it appears.\n        view.children.on('add', this._updateFocusCycleableItems.bind(this));\n        view.children.on('remove', this._updateFocusCycleableItems.bind(this));\n        // ToolbarView#items is dynamic. When an item is added, it should be automatically\n        // represented in either grouped or ungrouped items at the right index.\n        // In other words #items == concat( #ungroupedItems, #groupedItems )\n        // (in length and order).\n        view.items.on('add', function (evt, item, index) {\n            if (index > _this5.ungroupedItems.length) {\n                _this5.groupedItems.add(item, index - _this5.ungroupedItems.length);\n            } else {\n                _this5.ungroupedItems.add(item, index);\n            }\n            // When a new ungrouped item joins in and lands in #ungroupedItems, there's a chance it causes\n            // the toolbar to overflow.\n            _this5._updateGrouping();\n        });\n        // When an item is removed from ToolbarView#items, it should be automatically\n        // removed from either grouped or ungrouped items.\n        view.items.on('remove', function (evt, item, index) {\n            if (index > _this5.ungroupedItems.length) {\n                _this5.groupedItems.remove(item);\n            } else {\n                _this5.ungroupedItems.remove(item);\n            }\n            // Whether removed from grouped or ungrouped items, there is a chance\n            // some new space is available and we could do some ungrouping.\n            _this5._updateGrouping();\n        });\n        view.extendTemplate({\n            attributes: {\n                class: [// To group items dynamically, the toolbar needs a dedicated CSS class.\n                    'ck-toolbar_grouping']\n            }\n        });\n    }\n    /**\n   * Enables dynamic items grouping based on the dimensions of the toolbar.\n   *\n   * @param {module:ui/toolbar/toolbarview~ToolbarView} view An instance of the toolbar that this behavior\n   * is added to.\n   */\n    _createClass(DynamicGrouping, [\n        {\n            key: 'render',\n            value: function render(view) {\n                this.viewElement = view.element;\n                this._enableGroupingOnResize();\n            }    /**\n     * Cleans up the internals used by this behavior.\n     */\n        },\n        {\n            key: 'destroy',\n            value: function destroy() {\n                // The dropdown may not be in ToolbarView#children at the moment of toolbar destruction\n                // so let's make sure it's actually destroyed along with the toolbar.\n                this.groupedItemsDropdown.destroy();\n                this.resizeObserver.disconnect();\n            }    /**\n     * When called, it will check if any of the {@link #ungroupedItems} do not fit into a single row of the toolbar,\n     * and it will move them to the {@link #groupedItems} when it happens.\n     *\n     * At the same time, it will also check if there is enough space in the toolbar for the first of the\n     * {@link #groupedItems} to be returned back to {@link #ungroupedItems} and still fit into a single row\n     * without the toolbar wrapping.\n     *\n     * @protected\n     */\n        },\n        {\n            key: '_updateGrouping',\n            value: function _updateGrouping() {\n                // Do no grouping–related geometry analysis when the toolbar is detached from visible DOM,\n                // for instance before #render(), or after render but without a parent or a parent detached\n                // from DOM. DOMRects won't work anyway and there will be tons of warning in the console and\n                // nothing else.\n                if (!this.viewElement.ownerDocument.body.contains(this.viewElement)) {\n                    return;\n                }\n                var wereItemsGrouped;\n                // Group #items as long as some wrap to the next row. This will happen, for instance,\n                // when the toolbar is getting narrow and there is not enough space to display all items in\n                // a single row.\n                while (this._areItemsOverflowing) {\n                    this._groupLastItem();\n                    wereItemsGrouped = true;\n                }\n                // If none were grouped now but there were some items already grouped before,\n                // then, what the hell, maybe let's see if some of them can be ungrouped. This happens when,\n                // for instance, the toolbar is stretching and there's more space in it than before.\n                if (!wereItemsGrouped && this.groupedItems.length) {\n                    // Ungroup items as long as none are overflowing or there are none to ungroup left.\n                    while (this.groupedItems.length && !this._areItemsOverflowing) {\n                        this._ungroupFirstItem();\n                    }\n                    // If the ungrouping ended up with some item wrapping to the next row,\n                    // put it back to the group toolbar (\"undo the last ungroup\"). We don't know whether\n                    // an item will wrap or not until we ungroup it (that's a DOM/CSS thing) so this\n                    // clean–up is vital for the algorithm.\n                    if (this._areItemsOverflowing) {\n                        this._groupLastItem();\n                    }\n                }\n            }    /**\n     * Returns `true` when {@link module:ui/toolbar/toolbarview~ToolbarView#element} children visually overflow,\n     * for instance if the toolbar is narrower than its members. Returns `false` otherwise.\n     *\n     * @private\n     * @type {Boolean}\n     */\n        },\n        {\n            key: '_enableGroupingOnResize',\n            /**\n     * Enables the functionality that prevents {@link #ungroupedItems} from overflowing (wrapping to the next row)\n     * upon resize when there is little space available. Instead, the toolbar items are moved to the\n     * {@link #groupedItems} collection and displayed in a dropdown at the end of the row (which has its own nested toolbar).\n     *\n     * When called, the toolbar will automatically analyze the location of its {@link #ungroupedItems} and \"group\"\n     * them in the dropdown if necessary. It will also observe the browser window for size changes in\n     * the future and respond to them by grouping more items or reverting already grouped back, depending\n     * on the visual space available.\n     *\n     * @private\n     */\n            value: function _enableGroupingOnResize() {\n                var _this6 = this;\n                var previousWidth;\n                // TODO: Consider debounce.\n                this.resizeObserver = getResizeObserver(function (_ref) {\n                    var _ref2 = _slicedToArray(_ref, 1), entry = _ref2[0];\n                    if (!previousWidth || previousWidth !== entry.contentRect.width) {\n                        _this6._updateGrouping();\n                        previousWidth = entry.contentRect.width;\n                    }\n                });\n                this.resizeObserver.observe(this.viewElement);\n                this._updateGrouping();\n            }    /**\n     * When called, it will remove the last item from {@link #ungroupedItems} and move it back\n     * to the {@link #groupedItems} collection.\n     *\n     * The opposite of {@link #_ungroupFirstItem}.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_groupLastItem',\n            value: function _groupLastItem() {\n                if (!this.groupedItems.length) {\n                    this.viewChildren.add(new ToolbarSeparatorView());\n                    this.viewChildren.add(this.groupedItemsDropdown);\n                    this.viewFocusTracker.add(this.groupedItemsDropdown.element);\n                }\n                this.groupedItems.add(this.ungroupedItems.remove(this.ungroupedItems.last), 0);\n            }    /**\n     * Moves the very first item belonging to {@link #groupedItems} back\n     * to the {@link #ungroupedItems} collection.\n     *\n     * The opposite of {@link #_groupLastItem}.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_ungroupFirstItem',\n            value: function _ungroupFirstItem() {\n                this.ungroupedItems.add(this.groupedItems.remove(this.groupedItems.first));\n                if (!this.groupedItems.length) {\n                    this.viewChildren.remove(this.groupedItemsDropdown);\n                    this.viewChildren.remove(this.viewChildren.last);\n                    this.viewFocusTracker.remove(this.groupedItemsDropdown.element);\n                }\n            }    /**\n     * Creates the {@link #groupedItemsDropdown} that hosts the members of the {@link #groupedItems}\n     * collection when there is not enough space in the toolbar to display all items in a single row.\n     *\n     * @private\n     * @returns {module:ui/dropdown/dropdownview~DropdownView}\n     */\n        },\n        {\n            key: '_createGroupedItemsDropdown',\n            value: function _createGroupedItemsDropdown() {\n                var locale = this.viewLocale;\n                var t = locale.t;\n                var dropdown = createDropdown(locale);\n                dropdown.class = 'ck-toolbar__grouped-dropdown';\n                // Make sure the dropdown never sticks out to the left/right. It should be under the main toolbar.\n                // (https://github.com/ckeditor/ckeditor5/issues/5608)\n                dropdown.panelPosition = locale.uiLanguageDirection === 'ltr' ? 'sw' : 'se';\n                addToolbarToDropdown(dropdown, []);\n                dropdown.buttonView.set({\n                    label: t('Show more items'),\n                    tooltip: true,\n                    icon: verticalDotsIcon\n                });\n                // 1:1 pass–through binding.\n                dropdown.toolbarView.items.bindTo(this.groupedItems).using(function (item) {\n                    return item;\n                });\n                return dropdown;\n            }    /**\n     * Updates the {@link module:ui/toolbar/toolbarview~ToolbarView#focusables focus–cycleable items}\n     * collection so it represents the up–to–date state of the UI from the perspective of the user.\n     *\n     * For instance, the {@link #groupedItemsDropdown} can show up and hide but when it is visible,\n     * it must be subject to focus cycling in the toolbar.\n     *\n     * See the {@link module:ui/toolbar/toolbarview~ToolbarView#focusables collection} documentation\n     * to learn more about the purpose of this method.\n     *\n     * @private\n     */\n        },\n        {\n            key: '_updateFocusCycleableItems',\n            value: function _updateFocusCycleableItems() {\n                var _this7 = this;\n                this.viewFocusables.clear();\n                this.ungroupedItems.map(function (item) {\n                    _this7.viewFocusables.add(item);\n                });\n                if (this.groupedItems.length) {\n                    this.viewFocusables.add(this.groupedItemsDropdown);\n                }\n            }\n        },\n        {\n            key: '_areItemsOverflowing',\n            get: function get() {\n                // An empty toolbar cannot overflow.\n                if (!this.ungroupedItems.length) {\n                    return false;\n                }\n                var element = this.viewElement;\n                var uiLanguageDirection = this.viewLocale.uiLanguageDirection;\n                var lastChildRect = new Rect(element.lastChild);\n                var toolbarRect = new Rect(element);\n                if (!this.cachedPadding) {\n                    var computedStyle = global.window.getComputedStyle(element);\n                    var paddingProperty = uiLanguageDirection === 'ltr' ? 'paddingRight' : 'paddingLeft';\n                    // parseInt() is essential because of quirky floating point numbers logic and DOM.\n                    // If the padding turned out too big because of that, the grouped items dropdown would\n                    // always look (from the Rect perspective) like it overflows (while it's not).\n                    this.cachedPadding = Number.parseInt(computedStyle[paddingProperty]);\n                }\n                if (uiLanguageDirection === 'ltr') {\n                    return lastChildRect.right > toolbarRect.right - this.cachedPadding;\n                } else {\n                    return lastChildRect.left < toolbarRect.left + this.cachedPadding;\n                }\n            }\n        }\n    ]);\n    return DynamicGrouping;\n}();    /**\n * Options passed to the {@link module:ui/toolbar/toolbarview~ToolbarView#constructor} of the toolbar.\n *\n * @interface module:ui/toolbar/toolbarview~ToolbarOptions\n */\n        /**\n * When set to `true`, the toolbar will automatically group {@link module:ui/toolbar/toolbarview~ToolbarView#items} that\n * would normally wrap to the next line when there is not enough space to display them in a single row, for\n * instance, if the parent container of the toolbar is narrow.\n *\n * @member {Boolean} module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull\n */\n        /**\n * A class interface defining the behavior of the {@link module:ui/toolbar/toolbarview~ToolbarView}.\n *\n * Toolbar behaviors extend its look and functionality and have an impact on the\n * {@link module:ui/toolbar/toolbarview~ToolbarView#element} template or\n * {@link module:ui/toolbar/toolbarview~ToolbarView#render rendering}. They can be enabled\n * conditionally, e.g. depending on the configuration of the toolbar.\n *\n * @private\n * @interface module:ui/toolbar/toolbarview~ToolbarBehavior\n */\n        /**\n * Creates a new toolbar behavior instance.\n *\n * The instance is created in the {@link module:ui/toolbar/toolbarview~ToolbarView#constructor} of the toolbar.\n * This is the right place to extend the {@link module:ui/toolbar/toolbarview~ToolbarView#template} of\n * the toolbar, define extra toolbar properties, etc.\n *\n * @method #constructor\n * @param {module:ui/toolbar/toolbarview~ToolbarView} view An instance of the toolbar that this behavior is added to.\n */\n        /**\n * A method called after the toolbar has been {@link module:ui/toolbar/toolbarview~ToolbarView#render rendered}.\n * It can be used to, for example, customize the behavior of the toolbar when its {@link module:ui/toolbar/toolbarview~ToolbarView#element}\n * is available.\n *\n * @readonly\n * @member {Function} #render\n * @param {module:ui/toolbar/toolbarview~ToolbarView} view An instance of the toolbar being rendered.\n */\n        /**\n * A method called after the toolbar has been {@link module:ui/toolbar/toolbarview~ToolbarView#destroy destroyed}.\n * It allows cleaning up after the toolbar behavior, for instance, this is the right place to detach\n * event listeners, free up references, etc.\n *\n * @readonly\n * @member {Function} #destroy\n */","import \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/tooltip/tooltipview\n */\nimport View from \"../view\";\nimport \"../../theme/components/tooltip/tooltip.css\";\n/**\n * The tooltip view class.\n *\n * @extends module:ui/view~View\n */\n\nvar TooltipView = /*#__PURE__*/function (_View) {\n  _inherits(TooltipView, _View);\n\n  var _super = _createSuper(TooltipView);\n\n  /**\n   * @inheritDoc\n   */\n  function TooltipView(locale) {\n    var _this;\n\n    _classCallCheck(this, TooltipView);\n\n    _this = _super.call(this, locale);\n    /**\n     * The text of the tooltip visible to the user.\n     *\n     * @observable\n     * @member {String} #text\n     */\n\n    _this.set('text', '');\n    /**\n     * The position of the tooltip (south or north).\n     *\n     *\t\t+-----------+\n     *\t\t|   north   |\n     *\t\t+-----------+\n     *\t\t      V\n     *\t\t  [element]\n     *\n     *\t\t  [element]\n     *\t\t      ^\n     *\t\t+-----------+\n     *\t\t|   south   |\n     *\t\t+-----------+\n     *\n     * @observable\n     * @default 's'\n     * @member {'s'|'n'} #position\n     */\n\n\n    _this.set('position', 's');\n\n    var bind = _this.bindTemplate;\n\n    _this.setTemplate({\n      tag: 'span',\n      attributes: {\n        class: ['ck', 'ck-tooltip', bind.to('position', function (position) {\n          return 'ck-tooltip_' + position;\n        }), bind.if('text', 'ck-hidden', function (value) {\n          return !value.trim();\n        })]\n      },\n      children: [{\n        tag: 'span',\n        attributes: {\n          class: ['ck', 'ck-tooltip__text']\n        },\n        children: [{\n          text: bind.to('text')\n        }]\n      }]\n    });\n\n    return _this;\n  }\n\n  return TooltipView;\n}(View);\n\nexport { TooltipView as default };","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/view\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport ViewCollection from \"./viewcollection\";\nimport Template from \"./template\";\nimport DomEmitterMixin from '@ckeditor/ckeditor5-utils/src/dom/emittermixin';\nimport ObservableMixin from '@ckeditor/ckeditor5-utils/src/observablemixin';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\nimport mix from '@ckeditor/ckeditor5-utils/src/mix';\nimport isIterable from '@ckeditor/ckeditor5-utils/src/isiterable';\nimport \"../theme/globals/globals.css\";\n/**\n * The basic view class, which represents an HTML element created out of a\n * {@link module:ui/view~View#template}. Views are building blocks of the user interface and handle\n * interaction\n *\n * Views {@link module:ui/view~View#registerChild aggregate} children in\n * {@link module:ui/view~View#createCollection collections} and manage the life cycle of DOM\n * listeners e.g. by handling rendering and destruction.\n *\n * See the {@link module:ui/template~TemplateDefinition} syntax to learn more about shaping view\n * elements, attributes and listeners.\n *\n *\t\tclass SampleView extends View {\n *\t\t\tconstructor( locale ) {\n *\t\t\t\tsuper( locale );\n *\n *\t\t\t\tconst bind = this.bindTemplate;\n *\n *\t\t\t\t// Views define their interface (state) using observable attributes.\n *\t\t\t\tthis.set( 'elementClass', 'bar' );\n *\n *\t\t\t\tthis.setTemplate( {\n *\t\t\t\t\ttag: 'p',\n *\n *\t\t\t\t\t// The element of the view can be defined with its children.\n *\t\t\t\t\tchildren: [\n *\t\t\t\t\t\t'Hello',\n *\t\t\t\t\t\t{\n *\t\t\t\t\t\t\ttag: 'b',\n *\t\t\t\t\t\t\tchildren: [ 'world!' ]\n *\t\t\t\t\t\t}\n *\t\t\t\t\t],\n *\t\t\t\t\tattributes: {\n *\t\t\t\t\t\tclass: [\n *\t\t\t\t\t\t\t'foo',\n *\n *\t\t\t\t\t\t\t// Observable attributes control the state of the view in DOM.\n *\t\t\t\t\t\t\tbind.to( 'elementClass' )\n *\t\t\t\t\t\t]\n *\t\t\t\t\t},\n *\t\t\t\t\ton: {\n *\t\t\t\t\t\t// Views listen to DOM events and propagate them.\n *\t\t\t\t\t\tclick: bind.to( 'clicked' )\n *\t\t\t\t\t}\n *\t\t\t\t} );\n *\t\t\t}\n *\t\t}\n *\n *\t\tconst view = new SampleView( locale );\n *\n *\t\tview.render();\n *\n *\t\t// Append <p class=\"foo bar\">Hello<b>world</b></p> to the <body>\n *\t\tdocument.body.appendChild( view.element );\n *\n *\t\t// Change the class attribute to <p class=\"foo baz\">Hello<b>world</b></p>\n *\t\tview.elementClass = 'baz';\n *\n *\t\t// Respond to the \"click\" event in DOM by executing a custom action.\n *\t\tview.on( 'clicked', () => {\n *\t\t\tconsole.log( 'The view has been clicked!' );\n *\t\t} );\n *\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar View = /*#__PURE__*/function () {\n  /**\n   * Creates an instance of the {@link module:ui/view~View} class.\n   *\n   * Also see {@link #render}.\n   *\n   * @param {module:utils/locale~Locale} [locale] The localization services instance.\n   */\n  function View(locale) {\n    _classCallCheck(this, View);\n\n    /**\n     * An HTML element of the view. `null` until {@link #render rendered}\n     * from the {@link #template}.\n     *\n     *\t\tclass SampleView extends View {\n     *\t\t\tconstructor() {\n     *\t\t\t\tsuper();\n     *\n     *\t\t\t\t// A template instance the #element will be created from.\n     *\t\t\t\tthis.setTemplate( {\n     *\t\t\t\t\ttag: 'p'\n     *\n     *\t\t\t\t\t// ...\n     *\t\t\t\t} );\n     *\t\t\t}\n     *\t\t}\n     *\n     *\t\tconst view = new SampleView();\n     *\n     *\t\t// Renders the #template.\n     *\t\tview.render();\n     *\n     *\t\t// Append the HTML element of the view to <body>.\n     *\t\tdocument.body.appendChild( view.element );\n     *\n     * **Note**: The element of the view can also be assigned directly:\n     *\n     *\t\tview.element = document.querySelector( '#my-container' );\n     *\n     * @member {HTMLElement}\n     */\n    this.element = null;\n    /**\n     * Set `true` when the view has already been {@link module:ui/view~View#render rendered}.\n     *\n     * @readonly\n     * @member {Boolean} #isRendered\n     */\n\n    this.isRendered = false;\n    /**\n     * A set of tools to localize the user interface.\n     *\n     * Also see {@link module:core/editor/editor~Editor#locale}.\n     *\n     * @readonly\n     * @member {module:utils/locale~Locale}\n     */\n\n    this.locale = locale;\n    /**\n     * Shorthand for {@link module:utils/locale~Locale#t}.\n     *\n     * Note: If {@link #locale} instance hasn't been passed to the view this method may not\n     * be available.\n     *\n     * @see module:utils/locale~Locale#t\n     * @method\n     */\n\n    this.t = locale && locale.t;\n    /**\n     * Collections registered with {@link #createCollection}.\n     *\n     * @protected\n     * @member {Set.<module:ui/viewcollection~ViewCollection>}\n     */\n\n    this._viewCollections = new Collection();\n    /**\n     * A collection of view instances, which have been added directly\n     * into the {@link module:ui/template~Template#children}.\n     *\n     * @protected\n     * @member {module:ui/viewcollection~ViewCollection}\n     */\n\n    this._unboundChildren = this.createCollection(); // Pass parent locale to its children.\n\n    this._viewCollections.on('add', function (evt, collection) {\n      collection.locale = locale;\n    });\n    /**\n     * Template of this view. It provides the {@link #element} representing\n     * the view in DOM, which is {@link #render rendered}.\n     *\n     * @member {module:ui/template~Template} #template\n     */\n\n    /**\n     * Cached {@link module:ui/template~BindChain bind chain} object created by the\n     * {@link #template}. See {@link #bindTemplate}.\n     *\n     * @private\n     * @member {Object} #_bindTemplate\n     */\n\n\n    this.decorate('render');\n  }\n  /**\n   * Shorthand for {@link module:ui/template~Template.bind}, a binding\n   * {@link module:ui/template~BindChain interface} pre–configured for the view instance.\n   *\n   * It provides {@link module:ui/template~BindChain#to `to()`} and\n   * {@link module:ui/template~BindChain#if `if()`} methods that initialize bindings with\n   * observable attributes and attach DOM listeners.\n   *\n   *\t\tclass SampleView extends View {\n   *\t\t\tconstructor( locale ) {\n   *\t\t\t\tsuper( locale );\n   *\n   *\t\t\t\tconst bind = this.bindTemplate;\n   *\n   *\t\t\t\t// These {@link module:utils/observablemixin~Observable observable} attributes will control\n   *\t\t\t\t// the state of the view in DOM.\n   *\t\t\t\tthis.set( {\n   *\t\t\t\t\telementClass: 'foo',\n   *\t\t\t\t \tisEnabled: true\n   *\t\t\t\t } );\n   *\n   *\t\t\t\tthis.setTemplate( {\n   *\t\t\t\t\ttag: 'p',\n   *\n   *\t\t\t\t\tattributes: {\n   *\t\t\t\t\t\t// The class HTML attribute will follow elementClass\n   *\t\t\t\t\t\t// and isEnabled view attributes.\n   *\t\t\t\t\t\tclass: [\n   *\t\t\t\t\t\t\tbind.to( 'elementClass' )\n   *\t\t\t\t\t\t\tbind.if( 'isEnabled', 'present-when-enabled' )\n   *\t\t\t\t\t\t]\n   *\t\t\t\t\t},\n   *\n   *\t\t\t\t\ton: {\n   *\t\t\t\t\t\t// The view will fire the \"clicked\" event upon clicking <p> in DOM.\n   *\t\t\t\t\t\tclick: bind.to( 'clicked' )\n   *\t\t\t\t\t}\n   *\t\t\t\t} );\n   *\t\t\t}\n   *\t\t}\n   *\n   * @method #bindTemplate\n   */\n\n\n  _createClass(View, [{\n    key: \"createCollection\",\n\n    /**\n     * Creates a new collection of views, which can be used as\n     * {@link module:ui/template~Template#children} of this view.\n     *\n     *\t\tclass SampleView extends View {\n     *\t\t\tconstructor( locale ) {\n     *\t\t\t\tsuper( locale );\n     *\n     *\t\t\t\tthis.items = this.createCollection();\n    \t *\n     *\t\t\t\tthis.setTemplate( {\n     *\t\t\t\t\ttag: 'p',\n     *\n     *\t\t\t\t\t// `items` collection will render here.\n     *\t\t\t\t\tchildren: this.items\n     *\t\t\t\t} );\n     *\t\t\t}\n     *\t\t}\n     *\n     *\t\tconst view = new SampleView( locale );\n     *\t\tconst child = new ChildView( locale );\n     *\n     *\t\tview.render();\n     *\n     *\t\t// It will append <p></p> to the <body>.\n     *\t\tdocument.body.appendChild( view.element );\n     *\n     *\t\t// From now on the child is nested under its parent, which is also reflected in DOM.\n     *\t\t// <p><child#element></p>\n     *\t\tview.items.add( child );\n     *\n     * @returns {module:ui/viewcollection~ViewCollection} A new collection of view instances.\n     */\n    value: function createCollection() {\n      var collection = new ViewCollection();\n\n      this._viewCollections.add(collection);\n\n      return collection;\n    }\n    /**\n     * Registers a new child view under the view instance. Once registered, a child\n     * view is managed by its parent, including {@link #render rendering}\n     * and {@link #destroy destruction}.\n     *\n     * To revert this, use {@link #deregisterChild}.\n     *\n     *\t\tclass SampleView extends View {\n     *\t\t\tconstructor( locale ) {\n     *\t\t\t\tsuper( locale );\n     *\n     *\t\t\t\tthis.childA = new SomeChildView( locale );\n     *\t\t\t\tthis.childB = new SomeChildView( locale );\n     *\n     *\t\t\t\tthis.setTemplate( { tag: 'p' } );\n     *\n     *\t\t\t\t// Register the children.\n     *\t\t\t\tthis.registerChild( [ this.childA, this.childB ] );\n     *\t\t\t}\n     *\n     *\t\t\trender() {\n     *\t\t\t\tsuper.render();\n     *\n     *\t\t\t\tthis.element.appendChild( this.childA.element );\n     *\t\t\t\tthis.element.appendChild( this.childB.element );\n     *\t\t\t}\n     *\t\t}\n     *\n     *\t\tconst view = new SampleView( locale );\n     *\n     *\t\tview.render();\n     *\n     *\t\t// Will append <p><childA#element><b></b><childB#element></p>.\n     *\t\tdocument.body.appendChild( view.element );\n     *\n     * **Note**: There's no need to add child views if they're already referenced in the\n     * {@link #template}:\n     *\n     *\t\tclass SampleView extends View {\n     *\t\t\tconstructor( locale ) {\n     *\t\t\t\tsuper( locale );\n     *\n     *\t\t\t\tthis.childA = new SomeChildView( locale );\n     *\t\t\t\tthis.childB = new SomeChildView( locale );\n     *\n     *\t\t\t\tthis.setTemplate( {\n     *\t\t\t\t\ttag: 'p',\n     *\n    \t *\t\t\t\t\t// These children will be added automatically. There's no\n    \t *\t\t\t\t\t// need to call {@link #registerChild} for any of them.\n     *\t\t\t\t\tchildren: [ this.childA, this.childB ]\n     *\t\t\t\t} );\n     *\t\t\t}\n     *\n     *\t\t\t// ...\n     *\t\t}\n     *\n     * @param {module:ui/view~View|Iterable.<module:ui/view~View>} children Children views to be registered.\n     */\n\n  }, {\n    key: \"registerChild\",\n    value: function registerChild(children) {\n      if (!isIterable(children)) {\n        children = [children];\n      }\n\n      var _iterator = _createForOfIteratorHelper(children),\n          _step;\n\n      try {\n        for (_iterator.s(); !(_step = _iterator.n()).done;) {\n          var child = _step.value;\n\n          this._unboundChildren.add(child);\n        }\n      } catch (err) {\n        _iterator.e(err);\n      } finally {\n        _iterator.f();\n      }\n    }\n    /**\n     * The opposite of {@link #registerChild}. Removes a child view from this view instance.\n     * Once removed, the child is no longer managed by its parent, e.g. it can safely\n     * become a child of another parent view.\n     *\n     * @see #registerChild\n     * @param {module:ui/view~View|Iterable.<module:ui/view~View>} children Child views to be removed.\n     */\n\n  }, {\n    key: \"deregisterChild\",\n    value: function deregisterChild(children) {\n      if (!isIterable(children)) {\n        children = [children];\n      }\n\n      var _iterator2 = _createForOfIteratorHelper(children),\n          _step2;\n\n      try {\n        for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n          var child = _step2.value;\n\n          this._unboundChildren.remove(child);\n        }\n      } catch (err) {\n        _iterator2.e(err);\n      } finally {\n        _iterator2.f();\n      }\n    }\n    /**\n     * Sets the {@link #template} of the view with with given definition.\n     *\n     * A shorthand for:\n     *\n     *\t\tview.setTemplate( definition );\n     *\n     * @param {module:ui/template~TemplateDefinition} definition Definition of view's template.\n     */\n\n  }, {\n    key: \"setTemplate\",\n    value: function setTemplate(definition) {\n      this.template = new Template(definition);\n    }\n    /**\n     * {@link module:ui/template~Template.extend Extends} the {@link #template} of the view with\n     * with given definition.\n     *\n     * A shorthand for:\n     *\n     *\t\tTemplate.extend( view.template, definition );\n     *\n     * **Note**: Is requires the {@link #template} to be already set. See {@link #setTemplate}.\n     *\n     * @param {module:ui/template~TemplateDefinition} definition Definition which\n     * extends the {@link #template}.\n     */\n\n  }, {\n    key: \"extendTemplate\",\n    value: function extendTemplate(definition) {\n      Template.extend(this.template, definition);\n    }\n    /**\n     * Recursively renders the view.\n     *\n     * Once the view is rendered:\n     * * the {@link #element} becomes an HTML element out of {@link #template},\n     * * the {@link #isRendered} flag is set `true`.\n     *\n     * **Note**: The children of the view:\n     * * defined directly in the {@link #template}\n     * * residing in collections created by the {@link #createCollection} method,\n     * * and added by {@link #registerChild}\n     * are also rendered in the process.\n     *\n     * In general, `render()` method is the right place to keep the code which refers to the\n     * {@link #element} and should be executed at the very beginning of the view's life cycle.\n     *\n     * It is possible to {@link module:ui/template~Template.extend} the {@link #template} before\n     * the view is rendered. To allow an early customization of the view (e.g. by its parent),\n     * such references should be done in `render()`.\n     *\n     *\t\tclass SampleView extends View {\n     *\t\t\tconstructor() {\n     *\t\t\t\tthis.setTemplate( {\n     *\t\t\t\t\t// ...\n     *\t\t\t\t} );\n     *\t\t\t},\n     *\n     *\t\t\trender() {\n     *\t\t\t\t// View#element becomes available.\n     *\t\t\t\tsuper.render();\n     *\n     *\t\t\t\t// The \"scroll\" listener depends on #element.\n     *\t\t\t\tthis.listenTo( window, 'scroll', () => {\n     *\t\t\t\t\t// A reference to #element would render the #template and make it non-extendable.\n     *\t\t\t\t\tif ( window.scrollY > 0 ) {\n     *\t\t\t\t\t\tthis.element.scrollLeft = 100;\n     *\t\t\t\t\t} else {\n     *\t\t\t\t\t\tthis.element.scrollLeft = 0;\n     *\t\t\t\t\t}\n     *\t\t\t\t} );\n     *\t\t\t}\n     *\t\t}\n     *\n     *\t\tconst view = new SampleView();\n     *\n     *\t\t// Let's customize the view before it gets rendered.\n     *\t\tview.extendTemplate( {\n     *\t\t\tattributes: {\n     *\t\t\t\tclass: [\n     *\t\t\t\t\t'additional-class'\n     *\t\t\t\t]\n     *\t\t\t}\n     *\t\t} );\n     *\n     *\t\t// Late rendering allows customization of the view.\n     *\t\tview.render();\n     */\n\n  }, {\n    key: \"render\",\n    value: function render() {\n      if (this.isRendered) {\n        /**\n         * This View has already been rendered.\n         *\n         * @error ui-view-render-rendered\n         */\n        throw new CKEditorError('ui-view-render-already-rendered: This View has already been rendered.', this);\n      } // Render #element of the view.\n\n\n      if (this.template) {\n        this.element = this.template.render(); // Auto–register view children from #template.\n\n        this.registerChild(this.template.getViews());\n      }\n\n      this.isRendered = true;\n    }\n    /**\n     * Recursively destroys the view instance and child views added by {@link #registerChild} and\n     * residing in collections created by the {@link #createCollection}.\n     *\n     * Destruction disables all event listeners:\n     * * created on the view, e.g. `view.on( 'event', () => {} )`,\n     * * defined in the {@link #template} for DOM events.\n     */\n\n  }, {\n    key: \"destroy\",\n    value: function destroy() {\n      this.stopListening();\n\n      this._viewCollections.map(function (c) {\n        return c.destroy();\n      }); // Template isn't obligatory for views.\n\n\n      if (this.template && this.template._revertData) {\n        this.template.revert(this.element);\n      }\n    }\n    /**\n     * Event fired by the {@link #render} method. Actual rendering is executed as a listener to\n     * this event with the default priority.\n     *\n     * See {@link module:utils/observablemixin~ObservableMixin#decorate} for more information and samples.\n     *\n     * @event render\n     */\n\n  }, {\n    key: \"bindTemplate\",\n    get: function get() {\n      if (this._bindTemplate) {\n        return this._bindTemplate;\n      }\n\n      return this._bindTemplate = Template.bind(this, this);\n    }\n  }]);\n\n  return View;\n}();\n\nexport { View as default };\nmix(View, DomEmitterMixin);\nmix(View, ObservableMixin);","import \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es7.symbol.async-iterator\";\nimport \"core-js/modules/es6.symbol\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nimport \"core-js/modules/es6.function.name\";\nimport \"core-js/modules/es6.regexp.to-string\";\nimport \"core-js/modules/es6.reflect.construct\";\nimport _classCallCheck from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/classCallCheck\";\nimport _createClass from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/createClass\";\nimport _inherits from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/inherits\";\nimport _possibleConstructorReturn from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/possibleConstructorReturn\";\nimport _getPrototypeOf from \"/var/www/html/_limesurvey/assets/packages/questioneditor/node_modules/@babel/runtime-corejs2/helpers/esm/getPrototypeOf\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\n/**\n * @license Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.\n * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license\n */\n\n/**\n * @module ui/viewcollection\n */\nimport CKEditorError from '@ckeditor/ckeditor5-utils/src/ckeditorerror';\nimport Collection from '@ckeditor/ckeditor5-utils/src/collection';\n/**\n * Collects {@link module:ui/view~View} instances.\n *\n *\t\tconst parentView = new ParentView( locale );\n *\t\tconst collection = new ViewCollection( locale );\n *\n *\t\tcollection.setParent( parentView.element );\n *\n *\t\tconst viewA = new ChildView( locale );\n *\t\tconst viewB = new ChildView( locale );\n *\n * View collection renders and manages view {@link module:ui/view~View#element elements}:\n *\n *\t\tcollection.add( viewA );\n *\t\tcollection.add( viewB );\n *\n *\t\tconsole.log( parentView.element.firsChild ); // -> viewA.element\n *\t\tconsole.log( parentView.element.lastChild ); // -> viewB.element\n *\n * It {@link module:ui/viewcollection~ViewCollection#delegate propagates} DOM events too:\n *\n *\t\t// Delegate #click and #keydown events from viewA and viewB to the parentView.\n *\t\tcollection.delegate( 'click' ).to( parentView );\n *\n *\t\tparentView.on( 'click', ( evt ) => {\n *\t\t\tconsole.log( `${ evt.source } has been clicked.` );\n *\t\t} );\n *\n *\t\t// This event will be delegated to the parentView.\n *\t\tviewB.fire( 'click' );\n *\n * **Note**: A view collection can be used directly in the {@link module:ui/template~TemplateDefinition definition}\n * of a {@link module:ui/template~Template template}.\n *\n * @extends module:utils/collection~Collection\n * @mixes module:utils/observablemixin~ObservableMixin\n */\n\nvar ViewCollection = /*#__PURE__*/function (_Collection) {\n  _inherits(ViewCollection, _Collection);\n\n  var _super = _createSuper(ViewCollection);\n\n  /**\n   * Creates a new instance of the {@link module:ui/viewcollection~ViewCollection}.\n   *\n   * @param {module:utils/locale~Locale} [locale] The {@link module:core/editor/editor~Editor editor's locale} instance.\n   */\n  function ViewCollection(locale) {\n    var _this;\n\n    _classCallCheck(this, ViewCollection);\n\n    _this = _super.call(this, {\n      // An #id Number attribute should be legal and not break the `ViewCollection` instance.\n      // https://github.com/ckeditor/ckeditor5-ui/issues/93\n      idProperty: 'viewUid'\n    }); // Handle {@link module:ui/view~View#element} in DOM when a new view is added to the collection.\n\n    _this.on('add', function (evt, view, index) {\n      if (!view.isRendered) {\n        view.render();\n      }\n\n      if (view.element && _this._parentElement) {\n        _this._parentElement.insertBefore(view.element, _this._parentElement.children[index]);\n      }\n    }); // Handle {@link module:ui/view~View#element} in DOM when a view is removed from the collection.\n\n\n    _this.on('remove', function (evt, view) {\n      if (view.element && _this._parentElement) {\n        view.element.remove();\n      }\n    });\n    /**\n     * The {@link module:core/editor/editor~Editor#locale editor's locale} instance.\n     * See the view {@link module:ui/view~View#locale locale} property.\n     *\n     * @member {module:utils/locale~Locale}\n     */\n\n\n    _this.locale = locale;\n    /**\n     * A parent element within which child views are rendered and managed in DOM.\n     *\n     * @protected\n     * @member {HTMLElement}\n     */\n\n    _this._parentElement = null;\n    return _this;\n  }\n  /**\n   * Destroys the view collection along with child views.\n   * See the view {@link module:ui/view~View#destroy} method.\n   */\n\n\n  _createClass(ViewCollection, [{\n    key: \"destroy\",\n    value: function destroy() {\n      this.map(function (view) {\n        return view.destroy();\n      });\n    }\n    /**\n     * Sets the parent HTML element of this collection. When parent is set, {@link #add adding} and\n     * {@link #remove removing} views in the collection synchronizes their\n     * {@link module:ui/view~View#element elements} in the parent element.\n     *\n     * @param {HTMLElement} element A new parent element.\n     */\n\n  }, {\n    key: \"setParent\",\n    value: function setParent(elementOrDocFragment) {\n      this._parentElement = elementOrDocFragment;\n    }\n    /**\n     * Delegates selected events coming from within views in the collection to any\n     * {@link module:utils/emittermixin~Emitter}.\n     *\n     * For the following views and collection:\n     *\n     *\t\tconst viewA = new View();\n     *\t\tconst viewB = new View();\n     *\t\tconst viewC = new View();\n     *\n     *\t\tconst views = parentView.createCollection();\n     *\n     *\t\tviews.delegate( 'eventX' ).to( viewB );\n     *\t\tviews.delegate( 'eventX', 'eventY' ).to( viewC );\n     *\n     *\t\tviews.add( viewA );\n     *\n     * the `eventX` is delegated (fired by) `viewB` and `viewC` along with `customData`:\n     *\n     *\t\tviewA.fire( 'eventX', customData );\n     *\n     * and `eventY` is delegated (fired by) `viewC` along with `customData`:\n     *\n     *\t\tviewA.fire( 'eventY', customData );\n     *\n     * See {@link module:utils/emittermixin~Emitter#delegate}.\n     *\n     * @param {...String} events {@link module:ui/view~View} event names to be delegated to another\n     * {@link module:utils/emittermixin~Emitter}.\n     * @returns {Object}\n     * @returns {Function} return.to A function which accepts the destination of\n     * {@link module:utils/emittermixin~Emitter#delegate delegated} events.\n     */\n\n  }, {\n    key: \"delegate\",\n    value: function delegate() {\n      var _this2 = this;\n\n      for (var _len = arguments.length, events = new Array(_len), _key = 0; _key < _len; _key++) {\n        events[_key] = arguments[_key];\n      }\n\n      if (!events.length || !isStringArray(events)) {\n        /**\n         * All event names must be strings.\n         *\n         * @error ui-viewcollection-delegate-wrong-events\n         */\n        throw new CKEditorError('ui-viewcollection-delegate-wrong-events: All event names must be strings.', this);\n      }\n\n      return {\n        /**\n         * Selects destination for {@link module:utils/emittermixin~Emitter#delegate} events.\n         *\n         * @memberOf module:ui/viewcollection~ViewCollection#delegate\n         * @function module:ui/viewcollection~ViewCollection#delegate.to\n         * @param {module:utils/emittermixin~Emitter} dest An `Emitter` instance which is\n         * the destination for delegated events.\n         */\n        to: function to(dest) {\n          // Activate delegating on existing views in this collection.\n          var _iterator = _createForOfIteratorHelper(_this2),\n              _step;\n\n          try {\n            for (_iterator.s(); !(_step = _iterator.n()).done;) {\n              var view = _step.value;\n\n              var _iterator4 = _createForOfIteratorHelper(events),\n                  _step4;\n\n              try {\n                for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n                  var evtName = _step4.value;\n                  view.delegate(evtName).to(dest);\n                }\n              } catch (err) {\n                _iterator4.e(err);\n              } finally {\n                _iterator4.f();\n              }\n            } // Activate delegating on future views in this collection.\n\n          } catch (err) {\n            _iterator.e(err);\n          } finally {\n            _iterator.f();\n          }\n\n          _this2.on('add', function (evt, view) {\n            var _iterator2 = _createForOfIteratorHelper(events),\n                _step2;\n\n            try {\n              for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n                var evtName = _step2.value;\n                view.delegate(evtName).to(dest);\n              }\n            } catch (err) {\n              _iterator2.e(err);\n            } finally {\n              _iterator2.f();\n            }\n          }); // Deactivate delegating when view is removed from this collection.\n\n\n          _this2.on('remove', function (evt, view) {\n            var _iterator3 = _createForOfIteratorHelper(events),\n                _step3;\n\n            try {\n              for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n                var evtName = _step3.value;\n                view.stopDelegating(evtName, dest);\n              }\n            } catch (err) {\n              _iterator3.e(err);\n            } finally {\n              _iterator3.f();\n            }\n          });\n        }\n      };\n    }\n    /**\n     * Removes a child view from the collection. If the {@link #setParent parent element} of the\n     * collection has been set, the {@link module:ui/view~View#element element} of the view is also removed\n     * in DOM, reflecting the order of the collection.\n     *\n     * See the {@link #add} method.\n     *\n     * @method #remove\n     * @param {module:ui/view~View|Number|String} subject The view to remove, its id or index in the collection.\n     * @returns {Object} The removed view.\n     */\n\n  }]);\n\n  return ViewCollection;\n}(Collection); // Check if all entries of the array are of `String` type.\n//\n// @private\n// @param {Array} arr An array to be checked.\n// @returns {Boolean}\n\n\nexport { ViewCollection as default };\n\nfunction isStringArray(arr) {\n  return arr.every(function (a) {\n    return typeof a == 'string';\n  });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./button.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"120fb3ea\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./button.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./button.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./switchbutton.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"7a1d155c\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./switchbutton.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./switchbutton.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./colorgrid.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"25a1a37b\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./colorgrid.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./colorgrid.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./dropdown.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d10f49ae\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./dropdown.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./dropdown.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./listdropdown.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"953dd736\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./listdropdown.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./listdropdown.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./toolbardropdown.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"409c6a46\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./toolbardropdown.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./toolbardropdown.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./editorui.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5ef4144e\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./editorui.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./editorui.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./icon.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"5a38b1de\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./icon.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./icon.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./inputtext.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"e6868236\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./inputtext.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./inputtext.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./label.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"c884d748\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./label.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./label.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./labeledinput.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"a2f03122\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./labeledinput.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./labeledinput.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./list.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"731ede56\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./list.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./list.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./balloonpanel.css\");\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../../../../../../questioneditor/node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"4e643ca8\", content, false, {\"sourceMap\":false,\"shadowMode\":false});\n// Hot Module Replacement\nif(module.hot) {\n // When the styles change, update the <style> tags\n if(!content.locals) {\n   module.hot.accept(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./balloonpanel.css\", function() {\n     var newContent = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./balloonpanel.css\");\n     if(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n     update(newContent);\n   });\n }\n // When the module is disposed, remove the <style> tags\n module.hot.dispose(function() { update(); });\n}","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../../../../../../questioneditor/node_modules/css-loader/index.js??ref--6-oneOf-3-1!../../../../../../../../questioneditor/node_modules/postcss-loader/src/index.js??ref--6-oneOf-3-2!./balloonrotator.css\");\nif