diff --git a/package-lock.json b/package-lock.json index 2067c1e9e04..71c57129266 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,7 +42,7 @@ "@vue/compiler-sfc": "^3.2.6", "@vue/eslint-config-airbnb": "^5.3.0", "@vue/eslint-config-typescript": "^7.0.0", - "@vue/test-utils": "^2.4.6", + "@vue/test-utils": "2.4.6", "abortcontroller-polyfill": "^1.7.3", "babel-loader": "^8.2.2", "dompurify": "^3.3.2", @@ -15429,9 +15429,9 @@ ] }, "node_modules/dompurify": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.0.tgz", - "integrity": "sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.1.tgz", + "integrity": "sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==", "dev": true, "optionalDependencies": { "@types/trusted-types": "^2.0.7" @@ -48697,9 +48697,9 @@ } }, "dompurify": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.0.tgz", - "integrity": "sha512-nolgK9JcaUXMSmW+j1yaSvaEaoXYHwWyGJlkoCTghc97KgGDDSnpoU/PlEnw63Ah+TGKFOyY+X5LnxaWbCSfXg==", + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-3.4.1.tgz", + "integrity": "sha512-JahakDAIg1gyOm7dlgWSDjV4n7Ip2PKR55NIT6jrMfIgLFgWo81vdr1/QGqWtFNRqXP9UV71oVePtjqS2ebnPw==", "dev": true, "requires": { "@types/trusted-types": "^2.0.7" diff --git a/package.json b/package.json index eb482ee83c6..98a7ee10a5f 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,7 @@ "@vue/compiler-sfc": "^3.2.6", "@vue/eslint-config-airbnb": "^5.3.0", "@vue/eslint-config-typescript": "^7.0.0", - "@vue/test-utils": "^2.4.6", + "@vue/test-utils": "2.4.6", "abortcontroller-polyfill": "^1.7.3", "babel-loader": "^8.2.2", "dompurify": "^3.3.2", diff --git a/plugins/CoreVue/polyfills/dist/MatomoPolyfills.js b/plugins/CoreVue/polyfills/dist/MatomoPolyfills.js index 50359c7b267..fd30be37044 100644 --- a/plugins/CoreVue/polyfills/dist/MatomoPolyfills.js +++ b/plugins/CoreVue/polyfills/dist/MatomoPolyfills.js @@ -2047,7 +2047,7 @@ eval("\nvar globalThis = __webpack_require__(/*! ../internals/global-this */ \". /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { -eval("/*! @license DOMPurify 3.4.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.0/LICENSE */\n\n(function (global, factory) {\n true ? module.exports = factory() :\n undefined;\n})(this, (function () { 'use strict';\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n }\n if (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const arraySplice = unapply(Array.prototype.splice);\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n }\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n }\n /**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n /**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n /**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (Array.isArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns', 'slot']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n });\n\n /* eslint-disable @typescript-eslint/indent */\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n text: 3,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9};\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n const _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.4.0';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = cfg.ALLOWED_URI_REGEXP || IS_ALLOWED_URI;\n NAMESPACE = cfg.NAMESPACE || HTML_NAMESPACE;\n MATHML_TEXT_INTEGRATION_POINTS = cfg.MATHML_TEXT_INTEGRATION_POINTS || MATHML_TEXT_INTEGRATION_POINTS;\n HTML_INTEGRATION_POINTS = cfg.HTML_INTEGRATION_POINTS || HTML_INTEGRATION_POINTS;\n CUSTOM_ELEMENT_HANDLING = cfg.CUSTOM_ELEMENT_HANDLING || create(null);\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.tagNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && isRegexOrFunction(cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = cfg.CUSTOM_ELEMENT_HANDLING.attributeNameCheck;\n }\n if (cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = cfg.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements;\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = create(null);\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Always reset function-based ADD_TAGS / ADD_ATTR checks to prevent\n * leaking across calls when switching from function to array config */\n EXTRA_ELEMENT_HANDLING.tagCheck = null;\n EXTRA_ELEMENT_HANDLING.attributeCheck = null;\n /* Merge configuration parameters */\n if (cfg.ADD_TAGS) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (cfg.ADD_ATTR) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (cfg.ADD_URI_SAFE_ATTR) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (cfg.FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n if (cfg.ADD_FORBID_CONTENTS) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove risky CSS construction leading to mXSS */\n if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n childClone.__removalCount = (currentNode.__removalCount || 0) + 1;\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */\n if (FORBID_ATTR[lcName]) {\n return false;\n }\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return tagName !== 'annotation-xml' && stringMatch(tagName, CUSTOM_ELEMENT);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name')) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM2(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n if (typeof dirty.toString === 'function') {\n dirty = dirty.toString();\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n } else {\n throw typeErrorCreate('toString is not a function');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n if (dirty.nodeName) {\n const tagName = transformCaseFunc(dirty.nodeName);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM2(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (SAFE_FOR_TEMPLATES) {\n body.normalize();\n let html = body.innerHTML;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n html = stringReplace(html, expr, ' ');\n });\n body.innerHTML = html;\n }\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n\n\n//# sourceURL=webpack:///node_modules/dompurify/dist/purify.js"); +eval("/*! @license DOMPurify 3.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.1/LICENSE */\n\n(function (global, factory) {\n true ? module.exports = factory() :\n undefined;\n})(this, (function () { 'use strict';\n\n const {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n } = Object;\n let {\n freeze,\n seal,\n create\n } = Object; // eslint-disable-line import/no-mutable-exports\n let {\n apply,\n construct\n } = typeof Reflect !== 'undefined' && Reflect;\n if (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n }\n if (!seal) {\n seal = function seal(x) {\n return x;\n };\n }\n if (!apply) {\n apply = function apply(func, thisArg) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n return func.apply(thisArg, args);\n };\n }\n if (!construct) {\n construct = function construct(Func) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n return new Func(...args);\n };\n }\n const arrayForEach = unapply(Array.prototype.forEach);\n const arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\n const arrayPop = unapply(Array.prototype.pop);\n const arrayPush = unapply(Array.prototype.push);\n const arraySplice = unapply(Array.prototype.splice);\n const arrayIsArray = Array.isArray;\n const stringToLowerCase = unapply(String.prototype.toLowerCase);\n const stringToString = unapply(String.prototype.toString);\n const stringMatch = unapply(String.prototype.match);\n const stringReplace = unapply(String.prototype.replace);\n const stringIndexOf = unapply(String.prototype.indexOf);\n const stringTrim = unapply(String.prototype.trim);\n const numberToString = unapply(Number.prototype.toString);\n const booleanToString = unapply(Boolean.prototype.toString);\n const bigintToString = typeof BigInt === 'undefined' ? null : unapply(BigInt.prototype.toString);\n const symbolToString = typeof Symbol === 'undefined' ? null : unapply(Symbol.prototype.toString);\n const objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\n const objectToString = unapply(Object.prototype.toString);\n const regExpTest = unapply(RegExp.prototype.test);\n const typeErrorCreate = unconstruct(TypeError);\n /**\n * Creates a new function that calls the given function with a specified thisArg and arguments.\n *\n * @param func - The function to be wrapped and called.\n * @returns A new function that calls the given function with a specified thisArg and arguments.\n */\n function unapply(func) {\n return function (thisArg) {\n if (thisArg instanceof RegExp) {\n thisArg.lastIndex = 0;\n }\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n return apply(func, thisArg, args);\n };\n }\n /**\n * Creates a new function that constructs an instance of the given constructor function with the provided arguments.\n *\n * @param func - The constructor function to be wrapped and called.\n * @returns A new function that constructs an instance of the given constructor function with the provided arguments.\n */\n function unconstruct(Func) {\n return function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return construct(Func, args);\n };\n }\n /**\n * Add properties to a lookup table\n *\n * @param set - The set to which elements will be added.\n * @param array - The array containing elements to be added to the set.\n * @param transformCaseFunc - An optional function to transform the case of each element before adding to the set.\n * @returns The modified set with added elements.\n */\n function addToSet(set, array) {\n let transformCaseFunc = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : stringToLowerCase;\n if (setPrototypeOf) {\n // Make 'in' and truthy checks like Boolean(set.constructor)\n // independent of any properties defined on Object.prototype.\n // Prevent prototype setters from intercepting set as a this value.\n setPrototypeOf(set, null);\n }\n if (!arrayIsArray(array)) {\n return set;\n }\n let l = array.length;\n while (l--) {\n let element = array[l];\n if (typeof element === 'string') {\n const lcElement = transformCaseFunc(element);\n if (lcElement !== element) {\n // Config presets (e.g. tags.js, attrs.js) are immutable.\n if (!isFrozen(array)) {\n array[l] = lcElement;\n }\n element = lcElement;\n }\n }\n set[element] = true;\n }\n return set;\n }\n /**\n * Clean up an array to harden against CSPP\n *\n * @param array - The array to be cleaned.\n * @returns The cleaned version of the array\n */\n function cleanArray(array) {\n for (let index = 0; index < array.length; index++) {\n const isPropertyExist = objectHasOwnProperty(array, index);\n if (!isPropertyExist) {\n array[index] = null;\n }\n }\n return array;\n }\n /**\n * Shallow clone an object\n *\n * @param object - The object to be cloned.\n * @returns A new object that copies the original.\n */\n function clone(object) {\n const newObject = create(null);\n for (const [property, value] of entries(object)) {\n const isPropertyExist = objectHasOwnProperty(object, property);\n if (isPropertyExist) {\n if (arrayIsArray(value)) {\n newObject[property] = cleanArray(value);\n } else if (value && typeof value === 'object' && value.constructor === Object) {\n newObject[property] = clone(value);\n } else {\n newObject[property] = value;\n }\n }\n }\n return newObject;\n }\n /**\n * Convert non-node values into strings without depending on direct property access.\n *\n * @param value - The value to stringify.\n * @returns A string representation of the provided value.\n */\n function stringifyValue(value) {\n switch (typeof value) {\n case 'string':\n {\n return value;\n }\n case 'number':\n {\n return numberToString(value);\n }\n case 'boolean':\n {\n return booleanToString(value);\n }\n case 'bigint':\n {\n return bigintToString ? bigintToString(value) : '0';\n }\n case 'symbol':\n {\n return symbolToString ? symbolToString(value) : 'Symbol()';\n }\n case 'undefined':\n {\n return objectToString(value);\n }\n case 'function':\n case 'object':\n {\n if (value === null) {\n return objectToString(value);\n }\n const valueAsRecord = value;\n const valueToString = lookupGetter(valueAsRecord, 'toString');\n if (typeof valueToString === 'function') {\n const stringified = valueToString(valueAsRecord);\n return typeof stringified === 'string' ? stringified : objectToString(stringified);\n }\n return objectToString(value);\n }\n default:\n {\n return objectToString(value);\n }\n }\n }\n /**\n * This method automatically checks if the prop is function or getter and behaves accordingly.\n *\n * @param object - The object to look up the getter function in its prototype chain.\n * @param prop - The property name for which to find the getter function.\n * @returns The getter function found in the prototype chain or a fallback function.\n */\n function lookupGetter(object, prop) {\n while (object !== null) {\n const desc = getOwnPropertyDescriptor(object, prop);\n if (desc) {\n if (desc.get) {\n return unapply(desc.get);\n }\n if (typeof desc.value === 'function') {\n return unapply(desc.value);\n }\n }\n object = getPrototypeOf(object);\n }\n function fallbackValue() {\n return null;\n }\n return fallbackValue;\n }\n function isRegex(value) {\n try {\n regExpTest(value, '');\n return true;\n } catch (_unused) {\n return false;\n }\n }\n\n const html$1 = freeze(['a', 'abbr', 'acronym', 'address', 'area', 'article', 'aside', 'audio', 'b', 'bdi', 'bdo', 'big', 'blink', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'center', 'cite', 'code', 'col', 'colgroup', 'content', 'data', 'datalist', 'dd', 'decorator', 'del', 'details', 'dfn', 'dialog', 'dir', 'div', 'dl', 'dt', 'element', 'em', 'fieldset', 'figcaption', 'figure', 'font', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'img', 'input', 'ins', 'kbd', 'label', 'legend', 'li', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meter', 'nav', 'nobr', 'ol', 'optgroup', 'option', 'output', 'p', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'search', 'section', 'select', 'shadow', 'slot', 'small', 'source', 'spacer', 'span', 'strike', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'template', 'textarea', 'tfoot', 'th', 'thead', 'time', 'tr', 'track', 'tt', 'u', 'ul', 'var', 'video', 'wbr']);\n const svg$1 = freeze(['svg', 'a', 'altglyph', 'altglyphdef', 'altglyphitem', 'animatecolor', 'animatemotion', 'animatetransform', 'circle', 'clippath', 'defs', 'desc', 'ellipse', 'enterkeyhint', 'exportparts', 'filter', 'font', 'g', 'glyph', 'glyphref', 'hkern', 'image', 'inputmode', 'line', 'lineargradient', 'marker', 'mask', 'metadata', 'mpath', 'part', 'path', 'pattern', 'polygon', 'polyline', 'radialgradient', 'rect', 'stop', 'style', 'switch', 'symbol', 'text', 'textpath', 'title', 'tref', 'tspan', 'view', 'vkern']);\n const svgFilters = freeze(['feBlend', 'feColorMatrix', 'feComponentTransfer', 'feComposite', 'feConvolveMatrix', 'feDiffuseLighting', 'feDisplacementMap', 'feDistantLight', 'feDropShadow', 'feFlood', 'feFuncA', 'feFuncB', 'feFuncG', 'feFuncR', 'feGaussianBlur', 'feImage', 'feMerge', 'feMergeNode', 'feMorphology', 'feOffset', 'fePointLight', 'feSpecularLighting', 'feSpotLight', 'feTile', 'feTurbulence']);\n // List of SVG elements that are disallowed by default.\n // We still need to know them so that we can do namespace\n // checks properly in case one wants to add them to\n // allow-list.\n const svgDisallowed = freeze(['animate', 'color-profile', 'cursor', 'discard', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'foreignobject', 'hatch', 'hatchpath', 'mesh', 'meshgradient', 'meshpatch', 'meshrow', 'missing-glyph', 'script', 'set', 'solidcolor', 'unknown', 'use']);\n const mathMl$1 = freeze(['math', 'menclose', 'merror', 'mfenced', 'mfrac', 'mglyph', 'mi', 'mlabeledtr', 'mmultiscripts', 'mn', 'mo', 'mover', 'mpadded', 'mphantom', 'mroot', 'mrow', 'ms', 'mspace', 'msqrt', 'mstyle', 'msub', 'msup', 'msubsup', 'mtable', 'mtd', 'mtext', 'mtr', 'munder', 'munderover', 'mprescripts']);\n // Similarly to SVG, we want to know all MathML elements,\n // even those that we disallow by default.\n const mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\n const text = freeze(['#text']);\n\n const html = freeze(['accept', 'action', 'align', 'alt', 'autocapitalize', 'autocomplete', 'autopictureinpicture', 'autoplay', 'background', 'bgcolor', 'border', 'capture', 'cellpadding', 'cellspacing', 'checked', 'cite', 'class', 'clear', 'color', 'cols', 'colspan', 'controls', 'controlslist', 'coords', 'crossorigin', 'datetime', 'decoding', 'default', 'dir', 'disabled', 'disablepictureinpicture', 'disableremoteplayback', 'download', 'draggable', 'enctype', 'enterkeyhint', 'exportparts', 'face', 'for', 'headers', 'height', 'hidden', 'high', 'href', 'hreflang', 'id', 'inert', 'inputmode', 'integrity', 'ismap', 'kind', 'label', 'lang', 'list', 'loading', 'loop', 'low', 'max', 'maxlength', 'media', 'method', 'min', 'minlength', 'multiple', 'muted', 'name', 'nonce', 'noshade', 'novalidate', 'nowrap', 'open', 'optimum', 'part', 'pattern', 'placeholder', 'playsinline', 'popover', 'popovertarget', 'popovertargetaction', 'poster', 'preload', 'pubdate', 'radiogroup', 'readonly', 'rel', 'required', 'rev', 'reversed', 'role', 'rows', 'rowspan', 'spellcheck', 'scope', 'selected', 'shape', 'size', 'sizes', 'slot', 'span', 'srclang', 'start', 'src', 'srcset', 'step', 'style', 'summary', 'tabindex', 'title', 'translate', 'type', 'usemap', 'valign', 'value', 'width', 'wrap', 'xmlns']);\n const svg = freeze(['accent-height', 'accumulate', 'additive', 'alignment-baseline', 'amplitude', 'ascent', 'attributename', 'attributetype', 'azimuth', 'basefrequency', 'baseline-shift', 'begin', 'bias', 'by', 'class', 'clip', 'clippathunits', 'clip-path', 'clip-rule', 'color', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'cx', 'cy', 'd', 'dx', 'dy', 'diffuseconstant', 'direction', 'display', 'divisor', 'dur', 'edgemode', 'elevation', 'end', 'exponent', 'fill', 'fill-opacity', 'fill-rule', 'filter', 'filterunits', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'fx', 'fy', 'g1', 'g2', 'glyph-name', 'glyphref', 'gradientunits', 'gradienttransform', 'height', 'href', 'id', 'image-rendering', 'in', 'in2', 'intercept', 'k', 'k1', 'k2', 'k3', 'k4', 'kerning', 'keypoints', 'keysplines', 'keytimes', 'lang', 'lengthadjust', 'letter-spacing', 'kernelmatrix', 'kernelunitlength', 'lighting-color', 'local', 'marker-end', 'marker-mid', 'marker-start', 'markerheight', 'markerunits', 'markerwidth', 'maskcontentunits', 'maskunits', 'max', 'mask', 'mask-type', 'media', 'method', 'mode', 'min', 'name', 'numoctaves', 'offset', 'operator', 'opacity', 'order', 'orient', 'orientation', 'origin', 'overflow', 'paint-order', 'path', 'pathlength', 'patterncontentunits', 'patterntransform', 'patternunits', 'points', 'preservealpha', 'preserveaspectratio', 'primitiveunits', 'r', 'rx', 'ry', 'radius', 'refx', 'refy', 'repeatcount', 'repeatdur', 'restart', 'result', 'rotate', 'scale', 'seed', 'shape-rendering', 'slope', 'specularconstant', 'specularexponent', 'spreadmethod', 'startoffset', 'stddeviation', 'stitchtiles', 'stop-color', 'stop-opacity', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke', 'stroke-width', 'style', 'surfacescale', 'systemlanguage', 'tabindex', 'tablevalues', 'targetx', 'targety', 'transform', 'transform-origin', 'text-anchor', 'text-decoration', 'text-rendering', 'textlength', 'type', 'u1', 'u2', 'unicode', 'values', 'viewbox', 'visibility', 'version', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'width', 'word-spacing', 'wrap', 'writing-mode', 'xchannelselector', 'ychannelselector', 'x', 'x1', 'x2', 'xmlns', 'y', 'y1', 'y2', 'z', 'zoomandpan']);\n const mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnalign', 'columnlines', 'columnspacing', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lquote', 'lspace', 'mathbackground', 'mathcolor', 'mathsize', 'mathvariant', 'maxsize', 'minsize', 'movablelimits', 'notation', 'numalign', 'open', 'rowalign', 'rowlines', 'rowspacing', 'rowspan', 'rspace', 'rquote', 'scriptlevel', 'scriptminsize', 'scriptsizemultiplier', 'selection', 'separator', 'separators', 'stretchy', 'subscriptshift', 'supscriptshift', 'symmetric', 'voffset', 'width', 'xmlns']);\n const xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n // eslint-disable-next-line unicorn/better-regex\n const MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\n const ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\n const TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\n const DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\n const ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\n const IS_ALLOWED_URI = seal(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\\-]+(?:[^a-z+.\\-:]|$))/i // eslint-disable-line no-useless-escape\n );\n const IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\n const ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n );\n const DOCTYPE_NAME = seal(/^html$/i);\n const CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\n var EXPRESSIONS = /*#__PURE__*/Object.freeze({\n __proto__: null,\n ARIA_ATTR: ARIA_ATTR,\n ATTR_WHITESPACE: ATTR_WHITESPACE,\n CUSTOM_ELEMENT: CUSTOM_ELEMENT,\n DATA_ATTR: DATA_ATTR,\n DOCTYPE_NAME: DOCTYPE_NAME,\n ERB_EXPR: ERB_EXPR,\n IS_ALLOWED_URI: IS_ALLOWED_URI,\n IS_SCRIPT_OR_DATA: IS_SCRIPT_OR_DATA,\n MUSTACHE_EXPR: MUSTACHE_EXPR,\n TMPLIT_EXPR: TMPLIT_EXPR\n });\n\n /* eslint-disable @typescript-eslint/indent */\n // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const NODE_TYPE = {\n element: 1,\n text: 3,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9};\n const getGlobal = function getGlobal() {\n return typeof window === 'undefined' ? null : window;\n };\n /**\n * Creates a no-op policy for internal use only.\n * Don't export this function outside this module!\n * @param trustedTypes The policy factory.\n * @param purifyHostElement The Script element used to load DOMPurify (to determine policy name suffix).\n * @return The policy created (or null, if Trusted Types\n * are not supported or creating the policy failed).\n */\n const _createTrustedTypesPolicy = function _createTrustedTypesPolicy(trustedTypes, purifyHostElement) {\n if (typeof trustedTypes !== 'object' || typeof trustedTypes.createPolicy !== 'function') {\n return null;\n }\n // Allow the callers to control the unique policy name\n // by adding a data-tt-policy-suffix to the script element with the DOMPurify.\n // Policy creation with duplicate names throws in Trusted Types.\n let suffix = null;\n const ATTR_NAME = 'data-tt-policy-suffix';\n if (purifyHostElement && purifyHostElement.hasAttribute(ATTR_NAME)) {\n suffix = purifyHostElement.getAttribute(ATTR_NAME);\n }\n const policyName = 'dompurify' + (suffix ? '#' + suffix : '');\n try {\n return trustedTypes.createPolicy(policyName, {\n createHTML(html) {\n return html;\n },\n createScriptURL(scriptUrl) {\n return scriptUrl;\n }\n });\n } catch (_) {\n // Policy creation failed (most likely another DOMPurify script has\n // already run). Skip creating the policy, as this will only cause errors\n // if TT are enforced.\n console.warn('TrustedTypes policy ' + policyName + ' could not be created.');\n return null;\n }\n };\n const _createHooksMap = function _createHooksMap() {\n return {\n afterSanitizeAttributes: [],\n afterSanitizeElements: [],\n afterSanitizeShadowDOM: [],\n beforeSanitizeAttributes: [],\n beforeSanitizeElements: [],\n beforeSanitizeShadowDOM: [],\n uponSanitizeAttribute: [],\n uponSanitizeElement: [],\n uponSanitizeShadowNode: []\n };\n };\n function createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.4.1';\n DOMPurify.removed = [];\n if (!window || !window.document || window.document.nodeType !== NODE_TYPE.document || !window.Element) {\n // Not running in a browser, provide a factory function\n // so that you can pass your own Window\n DOMPurify.isSupported = false;\n return DOMPurify;\n }\n let {\n document\n } = window;\n const originalDocument = document;\n const currentScript = originalDocument.currentScript;\n const {\n DocumentFragment,\n HTMLTemplateElement,\n Node,\n Element,\n NodeFilter,\n NamedNodeMap = window.NamedNodeMap || window.MozNamedAttrMap,\n HTMLFormElement,\n DOMParser,\n trustedTypes\n } = window;\n const ElementPrototype = Element.prototype;\n const cloneNode = lookupGetter(ElementPrototype, 'cloneNode');\n const remove = lookupGetter(ElementPrototype, 'remove');\n const getNextSibling = lookupGetter(ElementPrototype, 'nextSibling');\n const getChildNodes = lookupGetter(ElementPrototype, 'childNodes');\n const getParentNode = lookupGetter(ElementPrototype, 'parentNode');\n // As per issue #47, the web-components registry is inherited by a\n // new document created via createHTMLDocument. As per the spec\n // (http://w3c.github.io/webcomponents/spec/custom/#creating-and-passing-registries)\n // a new empty registry is used when creating a template contents owner\n // document, so we use that as our parent document to ensure nothing\n // is inherited.\n if (typeof HTMLTemplateElement === 'function') {\n const template = document.createElement('template');\n if (template.content && template.content.ownerDocument) {\n document = template.content.ownerDocument;\n }\n }\n let trustedTypesPolicy;\n let emptyHTML = '';\n const {\n implementation,\n createNodeIterator,\n createDocumentFragment,\n getElementsByTagName\n } = document;\n const {\n importNode\n } = originalDocument;\n let hooks = _createHooksMap();\n /**\n * Expose whether this browser supports running the full DOMPurify.\n */\n DOMPurify.isSupported = typeof entries === 'function' && typeof getParentNode === 'function' && implementation && implementation.createHTMLDocument !== undefined;\n const {\n MUSTACHE_EXPR,\n ERB_EXPR,\n TMPLIT_EXPR,\n DATA_ATTR,\n ARIA_ATTR,\n IS_SCRIPT_OR_DATA,\n ATTR_WHITESPACE,\n CUSTOM_ELEMENT\n } = EXPRESSIONS;\n let {\n IS_ALLOWED_URI: IS_ALLOWED_URI$1\n } = EXPRESSIONS;\n /**\n * We consider the elements and attributes below to be safe. Ideally\n * don't add any new ones but feel free to remove unwanted ones.\n */\n /* allowed element names */\n let ALLOWED_TAGS = null;\n const DEFAULT_ALLOWED_TAGS = addToSet({}, [...html$1, ...svg$1, ...svgFilters, ...mathMl$1, ...text]);\n /* Allowed attribute names */\n let ALLOWED_ATTR = null;\n const DEFAULT_ALLOWED_ATTR = addToSet({}, [...html, ...svg, ...mathMl, ...xml]);\n /*\n * Configure how DOMPurify should handle custom elements and their attributes as well as customized built-in elements.\n * @property {RegExp|Function|null} tagNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any custom elements)\n * @property {RegExp|Function|null} attributeNameCheck one of [null, regexPattern, predicate]. Default: `null` (disallow any attributes not on the allow list)\n * @property {boolean} allowCustomizedBuiltInElements allow custom elements derived from built-ins if they pass CUSTOM_ELEMENT_HANDLING.tagNameCheck. Default: `false`.\n */\n let CUSTOM_ELEMENT_HANDLING = Object.seal(create(null, {\n tagNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeNameCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n allowCustomizedBuiltInElements: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: false\n }\n }));\n /* Explicitly forbidden tags (overrides ALLOWED_TAGS/ADD_TAGS) */\n let FORBID_TAGS = null;\n /* Explicitly forbidden attributes (overrides ALLOWED_ATTR/ADD_ATTR) */\n let FORBID_ATTR = null;\n /* Config object to store ADD_TAGS/ADD_ATTR functions (when used as functions) */\n const EXTRA_ELEMENT_HANDLING = Object.seal(create(null, {\n tagCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n },\n attributeCheck: {\n writable: true,\n configurable: false,\n enumerable: true,\n value: null\n }\n }));\n /* Decide if ARIA attributes are okay */\n let ALLOW_ARIA_ATTR = true;\n /* Decide if custom data attributes are okay */\n let ALLOW_DATA_ATTR = true;\n /* Decide if unknown protocols are okay */\n let ALLOW_UNKNOWN_PROTOCOLS = false;\n /* Decide if self-closing tags in attributes are allowed.\n * Usually removed due to a mXSS issue in jQuery 3.0 */\n let ALLOW_SELF_CLOSE_IN_ATTR = true;\n /* Output should be safe for common template engines.\n * This means, DOMPurify removes data attributes, mustaches and ERB\n */\n let SAFE_FOR_TEMPLATES = false;\n /* Output should be safe even for XML used within HTML and alike.\n * This means, DOMPurify removes comments when containing risky content.\n */\n let SAFE_FOR_XML = true;\n /* Decide if document with ... should be returned */\n let WHOLE_DOCUMENT = false;\n /* Track whether config is already set on this instance of DOMPurify. */\n let SET_CONFIG = false;\n /* Decide if all elements (e.g. style, script) must be children of\n * document.body. By default, browsers might move them to document.head */\n let FORCE_BODY = false;\n /* Decide if a DOM `HTMLBodyElement` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported).\n * If `WHOLE_DOCUMENT` is enabled a `HTMLHtmlElement` will be returned instead\n */\n let RETURN_DOM = false;\n /* Decide if a DOM `DocumentFragment` should be returned, instead of a html\n * string (or a TrustedHTML object if Trusted Types are supported) */\n let RETURN_DOM_FRAGMENT = false;\n /* Try to return a Trusted Type object instead of a string, return a string in\n * case Trusted Types are not supported */\n let RETURN_TRUSTED_TYPE = false;\n /* Output should be free from DOM clobbering attacks?\n * This sanitizes markups named with colliding, clobberable built-in DOM APIs.\n */\n let SANITIZE_DOM = true;\n /* Achieve full DOM Clobbering protection by isolating the namespace of named\n * properties and JS variables, mitigating attacks that abuse the HTML/DOM spec rules.\n *\n * HTML/DOM spec rules that enable DOM Clobbering:\n * - Named Access on Window (§7.3.3)\n * - DOM Tree Accessors (§3.1.5)\n * - Form Element Parent-Child Relations (§4.10.3)\n * - Iframe srcdoc / Nested WindowProxies (§4.8.5)\n * - HTMLCollection (§4.2.10.2)\n *\n * Namespace isolation is implemented by prefixing `id` and `name` attributes\n * with a constant string, i.e., `user-content-`\n */\n let SANITIZE_NAMED_PROPS = false;\n const SANITIZE_NAMED_PROPS_PREFIX = 'user-content-';\n /* Keep element content when removing element? */\n let KEEP_CONTENT = true;\n /* If a `Node` is passed to sanitize(), then performs sanitization in-place instead\n * of importing it into a new Document and returning a sanitized copy */\n let IN_PLACE = false;\n /* Allow usage of profiles like html, svg and mathMl */\n let USE_PROFILES = {};\n /* Tags to ignore content of when KEEP_CONTENT is true */\n let FORBID_CONTENTS = null;\n const DEFAULT_FORBID_CONTENTS = addToSet({}, ['annotation-xml', 'audio', 'colgroup', 'desc', 'foreignobject', 'head', 'iframe', 'math', 'mi', 'mn', 'mo', 'ms', 'mtext', 'noembed', 'noframes', 'noscript', 'plaintext', 'script', 'style', 'svg', 'template', 'thead', 'title', 'video', 'xmp']);\n /* Tags that are safe for data: URIs */\n let DATA_URI_TAGS = null;\n const DEFAULT_DATA_URI_TAGS = addToSet({}, ['audio', 'video', 'img', 'source', 'image', 'track']);\n /* Attributes safe for values like \"javascript:\" */\n let URI_SAFE_ATTRIBUTES = null;\n const DEFAULT_URI_SAFE_ATTRIBUTES = addToSet({}, ['alt', 'class', 'for', 'id', 'label', 'name', 'pattern', 'placeholder', 'role', 'summary', 'title', 'value', 'style', 'xmlns']);\n const MATHML_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';\n const SVG_NAMESPACE = 'http://www.w3.org/2000/svg';\n const HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';\n /* Document namespace */\n let NAMESPACE = HTML_NAMESPACE;\n let IS_EMPTY_INPUT = false;\n /* Allowed XHTML+XML namespaces */\n let ALLOWED_NAMESPACES = null;\n const DEFAULT_ALLOWED_NAMESPACES = addToSet({}, [MATHML_NAMESPACE, SVG_NAMESPACE, HTML_NAMESPACE], stringToString);\n let MATHML_TEXT_INTEGRATION_POINTS = addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']);\n let HTML_INTEGRATION_POINTS = addToSet({}, ['annotation-xml']);\n // Certain elements are allowed in both SVG and HTML\n // namespace. We need to specify them explicitly\n // so that they don't get erroneously deleted from\n // HTML namespace.\n const COMMON_SVG_AND_HTML_ELEMENTS = addToSet({}, ['title', 'style', 'font', 'a', 'script']);\n /* Parsing of strict XHTML documents */\n let PARSER_MEDIA_TYPE = null;\n const SUPPORTED_PARSER_MEDIA_TYPES = ['application/xhtml+xml', 'text/html'];\n const DEFAULT_PARSER_MEDIA_TYPE = 'text/html';\n let transformCaseFunc = null;\n /* Keep a reference to config to pass to hooks */\n let CONFIG = null;\n /* Ideally, do not touch anything below this line */\n /* ______________________________________________ */\n const formElement = document.createElement('form');\n const isRegexOrFunction = function isRegexOrFunction(testValue) {\n return testValue instanceof RegExp || testValue instanceof Function;\n };\n /**\n * _parseConfig\n *\n * @param cfg optional config literal\n */\n // eslint-disable-next-line complexity\n const _parseConfig = function _parseConfig() {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (CONFIG && CONFIG === cfg) {\n return;\n }\n /* Shield configuration object from tampering */\n if (!cfg || typeof cfg !== 'object') {\n cfg = {};\n }\n /* Shield configuration object from prototype pollution */\n cfg = clone(cfg);\n PARSER_MEDIA_TYPE =\n // eslint-disable-next-line unicorn/prefer-includes\n SUPPORTED_PARSER_MEDIA_TYPES.indexOf(cfg.PARSER_MEDIA_TYPE) === -1 ? DEFAULT_PARSER_MEDIA_TYPE : cfg.PARSER_MEDIA_TYPE;\n // HTML tags and attributes are not case-sensitive, converting to lowercase. Keeping XHTML as is.\n transformCaseFunc = PARSER_MEDIA_TYPE === 'application/xhtml+xml' ? stringToString : stringToLowerCase;\n /* Set configuration parameters */\n ALLOWED_TAGS = objectHasOwnProperty(cfg, 'ALLOWED_TAGS') && arrayIsArray(cfg.ALLOWED_TAGS) ? addToSet({}, cfg.ALLOWED_TAGS, transformCaseFunc) : DEFAULT_ALLOWED_TAGS;\n ALLOWED_ATTR = objectHasOwnProperty(cfg, 'ALLOWED_ATTR') && arrayIsArray(cfg.ALLOWED_ATTR) ? addToSet({}, cfg.ALLOWED_ATTR, transformCaseFunc) : DEFAULT_ALLOWED_ATTR;\n ALLOWED_NAMESPACES = objectHasOwnProperty(cfg, 'ALLOWED_NAMESPACES') && arrayIsArray(cfg.ALLOWED_NAMESPACES) ? addToSet({}, cfg.ALLOWED_NAMESPACES, stringToString) : DEFAULT_ALLOWED_NAMESPACES;\n URI_SAFE_ATTRIBUTES = objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') && arrayIsArray(cfg.ADD_URI_SAFE_ATTR) ? addToSet(clone(DEFAULT_URI_SAFE_ATTRIBUTES), cfg.ADD_URI_SAFE_ATTR, transformCaseFunc) : DEFAULT_URI_SAFE_ATTRIBUTES;\n DATA_URI_TAGS = objectHasOwnProperty(cfg, 'ADD_DATA_URI_TAGS') && arrayIsArray(cfg.ADD_DATA_URI_TAGS) ? addToSet(clone(DEFAULT_DATA_URI_TAGS), cfg.ADD_DATA_URI_TAGS, transformCaseFunc) : DEFAULT_DATA_URI_TAGS;\n FORBID_CONTENTS = objectHasOwnProperty(cfg, 'FORBID_CONTENTS') && arrayIsArray(cfg.FORBID_CONTENTS) ? addToSet({}, cfg.FORBID_CONTENTS, transformCaseFunc) : DEFAULT_FORBID_CONTENTS;\n FORBID_TAGS = objectHasOwnProperty(cfg, 'FORBID_TAGS') && arrayIsArray(cfg.FORBID_TAGS) ? addToSet({}, cfg.FORBID_TAGS, transformCaseFunc) : clone({});\n FORBID_ATTR = objectHasOwnProperty(cfg, 'FORBID_ATTR') && arrayIsArray(cfg.FORBID_ATTR) ? addToSet({}, cfg.FORBID_ATTR, transformCaseFunc) : clone({});\n USE_PROFILES = objectHasOwnProperty(cfg, 'USE_PROFILES') ? cfg.USE_PROFILES && typeof cfg.USE_PROFILES === 'object' ? clone(cfg.USE_PROFILES) : cfg.USE_PROFILES : false;\n ALLOW_ARIA_ATTR = cfg.ALLOW_ARIA_ATTR !== false; // Default true\n ALLOW_DATA_ATTR = cfg.ALLOW_DATA_ATTR !== false; // Default true\n ALLOW_UNKNOWN_PROTOCOLS = cfg.ALLOW_UNKNOWN_PROTOCOLS || false; // Default false\n ALLOW_SELF_CLOSE_IN_ATTR = cfg.ALLOW_SELF_CLOSE_IN_ATTR !== false; // Default true\n SAFE_FOR_TEMPLATES = cfg.SAFE_FOR_TEMPLATES || false; // Default false\n SAFE_FOR_XML = cfg.SAFE_FOR_XML !== false; // Default true\n WHOLE_DOCUMENT = cfg.WHOLE_DOCUMENT || false; // Default false\n RETURN_DOM = cfg.RETURN_DOM || false; // Default false\n RETURN_DOM_FRAGMENT = cfg.RETURN_DOM_FRAGMENT || false; // Default false\n RETURN_TRUSTED_TYPE = cfg.RETURN_TRUSTED_TYPE || false; // Default false\n FORCE_BODY = cfg.FORCE_BODY || false; // Default false\n SANITIZE_DOM = cfg.SANITIZE_DOM !== false; // Default true\n SANITIZE_NAMED_PROPS = cfg.SANITIZE_NAMED_PROPS || false; // Default false\n KEEP_CONTENT = cfg.KEEP_CONTENT !== false; // Default true\n IN_PLACE = cfg.IN_PLACE || false; // Default false\n IS_ALLOWED_URI$1 = isRegex(cfg.ALLOWED_URI_REGEXP) ? cfg.ALLOWED_URI_REGEXP : IS_ALLOWED_URI; // Default regexp\n NAMESPACE = typeof cfg.NAMESPACE === 'string' ? cfg.NAMESPACE : HTML_NAMESPACE; // Default HTML namespace\n MATHML_TEXT_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'MATHML_TEXT_INTEGRATION_POINTS') && cfg.MATHML_TEXT_INTEGRATION_POINTS && typeof cfg.MATHML_TEXT_INTEGRATION_POINTS === 'object' ? clone(cfg.MATHML_TEXT_INTEGRATION_POINTS) : addToSet({}, ['mi', 'mo', 'mn', 'ms', 'mtext']); // Default built-in map\n HTML_INTEGRATION_POINTS = objectHasOwnProperty(cfg, 'HTML_INTEGRATION_POINTS') && cfg.HTML_INTEGRATION_POINTS && typeof cfg.HTML_INTEGRATION_POINTS === 'object' ? clone(cfg.HTML_INTEGRATION_POINTS) : addToSet({}, ['annotation-xml']); // Default built-in map\n const customElementHandling = objectHasOwnProperty(cfg, 'CUSTOM_ELEMENT_HANDLING') && cfg.CUSTOM_ELEMENT_HANDLING && typeof cfg.CUSTOM_ELEMENT_HANDLING === 'object' ? clone(cfg.CUSTOM_ELEMENT_HANDLING) : create(null);\n CUSTOM_ELEMENT_HANDLING = create(null);\n if (objectHasOwnProperty(customElementHandling, 'tagNameCheck') && isRegexOrFunction(customElementHandling.tagNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.tagNameCheck = customElementHandling.tagNameCheck; // Default undefined\n }\n if (objectHasOwnProperty(customElementHandling, 'attributeNameCheck') && isRegexOrFunction(customElementHandling.attributeNameCheck)) {\n CUSTOM_ELEMENT_HANDLING.attributeNameCheck = customElementHandling.attributeNameCheck; // Default undefined\n }\n if (objectHasOwnProperty(customElementHandling, 'allowCustomizedBuiltInElements') && typeof customElementHandling.allowCustomizedBuiltInElements === 'boolean') {\n CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements = customElementHandling.allowCustomizedBuiltInElements; // Default undefined\n }\n if (SAFE_FOR_TEMPLATES) {\n ALLOW_DATA_ATTR = false;\n }\n if (RETURN_DOM_FRAGMENT) {\n RETURN_DOM = true;\n }\n /* Parse profile info */\n if (USE_PROFILES) {\n ALLOWED_TAGS = addToSet({}, text);\n ALLOWED_ATTR = create(null);\n if (USE_PROFILES.html === true) {\n addToSet(ALLOWED_TAGS, html$1);\n addToSet(ALLOWED_ATTR, html);\n }\n if (USE_PROFILES.svg === true) {\n addToSet(ALLOWED_TAGS, svg$1);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.svgFilters === true) {\n addToSet(ALLOWED_TAGS, svgFilters);\n addToSet(ALLOWED_ATTR, svg);\n addToSet(ALLOWED_ATTR, xml);\n }\n if (USE_PROFILES.mathMl === true) {\n addToSet(ALLOWED_TAGS, mathMl$1);\n addToSet(ALLOWED_ATTR, mathMl);\n addToSet(ALLOWED_ATTR, xml);\n }\n }\n /* Always reset function-based ADD_TAGS / ADD_ATTR checks to prevent\n * leaking across calls when switching from function to array config */\n EXTRA_ELEMENT_HANDLING.tagCheck = null;\n EXTRA_ELEMENT_HANDLING.attributeCheck = null;\n /* Merge configuration parameters */\n if (objectHasOwnProperty(cfg, 'ADD_TAGS')) {\n if (typeof cfg.ADD_TAGS === 'function') {\n EXTRA_ELEMENT_HANDLING.tagCheck = cfg.ADD_TAGS;\n } else if (arrayIsArray(cfg.ADD_TAGS)) {\n if (ALLOWED_TAGS === DEFAULT_ALLOWED_TAGS) {\n ALLOWED_TAGS = clone(ALLOWED_TAGS);\n }\n addToSet(ALLOWED_TAGS, cfg.ADD_TAGS, transformCaseFunc);\n }\n }\n if (objectHasOwnProperty(cfg, 'ADD_ATTR')) {\n if (typeof cfg.ADD_ATTR === 'function') {\n EXTRA_ELEMENT_HANDLING.attributeCheck = cfg.ADD_ATTR;\n } else if (arrayIsArray(cfg.ADD_ATTR)) {\n if (ALLOWED_ATTR === DEFAULT_ALLOWED_ATTR) {\n ALLOWED_ATTR = clone(ALLOWED_ATTR);\n }\n addToSet(ALLOWED_ATTR, cfg.ADD_ATTR, transformCaseFunc);\n }\n }\n if (objectHasOwnProperty(cfg, 'ADD_URI_SAFE_ATTR') && arrayIsArray(cfg.ADD_URI_SAFE_ATTR)) {\n addToSet(URI_SAFE_ATTRIBUTES, cfg.ADD_URI_SAFE_ATTR, transformCaseFunc);\n }\n if (objectHasOwnProperty(cfg, 'FORBID_CONTENTS') && arrayIsArray(cfg.FORBID_CONTENTS)) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.FORBID_CONTENTS, transformCaseFunc);\n }\n if (objectHasOwnProperty(cfg, 'ADD_FORBID_CONTENTS') && arrayIsArray(cfg.ADD_FORBID_CONTENTS)) {\n if (FORBID_CONTENTS === DEFAULT_FORBID_CONTENTS) {\n FORBID_CONTENTS = clone(FORBID_CONTENTS);\n }\n addToSet(FORBID_CONTENTS, cfg.ADD_FORBID_CONTENTS, transformCaseFunc);\n }\n /* Add #text in case KEEP_CONTENT is set to true */\n if (KEEP_CONTENT) {\n ALLOWED_TAGS['#text'] = true;\n }\n /* Add html, head and body to ALLOWED_TAGS in case WHOLE_DOCUMENT is true */\n if (WHOLE_DOCUMENT) {\n addToSet(ALLOWED_TAGS, ['html', 'head', 'body']);\n }\n /* Add tbody to ALLOWED_TAGS in case tables are permitted, see #286, #365 */\n if (ALLOWED_TAGS.table) {\n addToSet(ALLOWED_TAGS, ['tbody']);\n delete FORBID_TAGS.tbody;\n }\n if (cfg.TRUSTED_TYPES_POLICY) {\n if (typeof cfg.TRUSTED_TYPES_POLICY.createHTML !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createHTML\" hook.');\n }\n if (typeof cfg.TRUSTED_TYPES_POLICY.createScriptURL !== 'function') {\n throw typeErrorCreate('TRUSTED_TYPES_POLICY configuration option must provide a \"createScriptURL\" hook.');\n }\n // Overwrite existing TrustedTypes policy.\n trustedTypesPolicy = cfg.TRUSTED_TYPES_POLICY;\n // Sign local variables required by `sanitize`.\n emptyHTML = trustedTypesPolicy.createHTML('');\n } else {\n // Uninitialized policy, attempt to initialize the internal dompurify policy.\n if (trustedTypesPolicy === undefined) {\n trustedTypesPolicy = _createTrustedTypesPolicy(trustedTypes, currentScript);\n }\n // If creating the internal policy succeeded sign internal variables.\n if (trustedTypesPolicy !== null && typeof emptyHTML === 'string') {\n emptyHTML = trustedTypesPolicy.createHTML('');\n }\n }\n // Prevent further manipulation of configuration.\n // Not available in IE8, Safari 5, etc.\n if (freeze) {\n freeze(cfg);\n }\n CONFIG = cfg;\n };\n /* Keep track of all possible SVG and MathML tags\n * so that we can perform the namespace checks\n * correctly. */\n const ALL_SVG_TAGS = addToSet({}, [...svg$1, ...svgFilters, ...svgDisallowed]);\n const ALL_MATHML_TAGS = addToSet({}, [...mathMl$1, ...mathMlDisallowed]);\n /**\n * @param element a DOM element whose namespace is being checked\n * @returns Return false if the element has a\n * namespace that a spec-compliant parser would never\n * return. Return true otherwise.\n */\n const _checkValidNamespace = function _checkValidNamespace(element) {\n let parent = getParentNode(element);\n // In JSDOM, if we're inside shadow DOM, then parentNode\n // can be null. We just simulate parent in this case.\n if (!parent || !parent.tagName) {\n parent = {\n namespaceURI: NAMESPACE,\n tagName: 'template'\n };\n }\n const tagName = stringToLowerCase(element.tagName);\n const parentTagName = stringToLowerCase(parent.tagName);\n if (!ALLOWED_NAMESPACES[element.namespaceURI]) {\n return false;\n }\n if (element.namespaceURI === SVG_NAMESPACE) {\n // The only way to switch from HTML namespace to SVG\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'svg';\n }\n // The only way to switch from MathML to SVG is via`\n // svg if parent is either or MathML\n // text integration points.\n if (parent.namespaceURI === MATHML_NAMESPACE) {\n return tagName === 'svg' && (parentTagName === 'annotation-xml' || MATHML_TEXT_INTEGRATION_POINTS[parentTagName]);\n }\n // We only allow elements that are defined in SVG\n // spec. All others are disallowed in SVG namespace.\n return Boolean(ALL_SVG_TAGS[tagName]);\n }\n if (element.namespaceURI === MATHML_NAMESPACE) {\n // The only way to switch from HTML namespace to MathML\n // is via . If it happens via any other tag, then\n // it should be killed.\n if (parent.namespaceURI === HTML_NAMESPACE) {\n return tagName === 'math';\n }\n // The only way to switch from SVG to MathML is via\n // and HTML integration points\n if (parent.namespaceURI === SVG_NAMESPACE) {\n return tagName === 'math' && HTML_INTEGRATION_POINTS[parentTagName];\n }\n // We only allow elements that are defined in MathML\n // spec. All others are disallowed in MathML namespace.\n return Boolean(ALL_MATHML_TAGS[tagName]);\n }\n if (element.namespaceURI === HTML_NAMESPACE) {\n // The only way to switch from SVG to HTML is via\n // HTML integration points, and from MathML to HTML\n // is via MathML text integration points\n if (parent.namespaceURI === SVG_NAMESPACE && !HTML_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n if (parent.namespaceURI === MATHML_NAMESPACE && !MATHML_TEXT_INTEGRATION_POINTS[parentTagName]) {\n return false;\n }\n // We disallow tags that are specific for MathML\n // or SVG and should never appear in HTML namespace\n return !ALL_MATHML_TAGS[tagName] && (COMMON_SVG_AND_HTML_ELEMENTS[tagName] || !ALL_SVG_TAGS[tagName]);\n }\n // For XHTML and XML documents that support custom namespaces\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && ALLOWED_NAMESPACES[element.namespaceURI]) {\n return true;\n }\n // The code should never reach this place (this means\n // that the element somehow got namespace that is not\n // HTML, SVG, MathML or allowed via ALLOWED_NAMESPACES).\n // Return false just in case.\n return false;\n };\n /**\n * _forceRemove\n *\n * @param node a DOM node\n */\n const _forceRemove = function _forceRemove(node) {\n arrayPush(DOMPurify.removed, {\n element: node\n });\n try {\n // eslint-disable-next-line unicorn/prefer-dom-node-remove\n getParentNode(node).removeChild(node);\n } catch (_) {\n remove(node);\n }\n };\n /**\n * _removeAttribute\n *\n * @param name an Attribute name\n * @param element a DOM node\n */\n const _removeAttribute = function _removeAttribute(name, element) {\n try {\n arrayPush(DOMPurify.removed, {\n attribute: element.getAttributeNode(name),\n from: element\n });\n } catch (_) {\n arrayPush(DOMPurify.removed, {\n attribute: null,\n from: element\n });\n }\n element.removeAttribute(name);\n // We void attribute values for unremovable \"is\" attributes\n if (name === 'is') {\n if (RETURN_DOM || RETURN_DOM_FRAGMENT) {\n try {\n _forceRemove(element);\n } catch (_) {}\n } else {\n try {\n element.setAttribute(name, '');\n } catch (_) {}\n }\n }\n };\n /**\n * _initDocument\n *\n * @param dirty - a string of dirty markup\n * @return a DOM, filled with the dirty markup\n */\n const _initDocument = function _initDocument(dirty) {\n /* Create a HTML document */\n let doc = null;\n let leadingWhitespace = null;\n if (FORCE_BODY) {\n dirty = '' + dirty;\n } else {\n /* If FORCE_BODY isn't used, leading whitespace needs to be preserved manually */\n const matches = stringMatch(dirty, /^[\\r\\n\\t ]+/);\n leadingWhitespace = matches && matches[0];\n }\n if (PARSER_MEDIA_TYPE === 'application/xhtml+xml' && NAMESPACE === HTML_NAMESPACE) {\n // Root of XHTML doc must contain xmlns declaration (see https://www.w3.org/TR/xhtml1/normative.html#strict)\n dirty = '' + dirty + '';\n }\n const dirtyPayload = trustedTypesPolicy ? trustedTypesPolicy.createHTML(dirty) : dirty;\n /*\n * Use the DOMParser API by default, fallback later if needs be\n * DOMParser not work for svg when has multiple root element.\n */\n if (NAMESPACE === HTML_NAMESPACE) {\n try {\n doc = new DOMParser().parseFromString(dirtyPayload, PARSER_MEDIA_TYPE);\n } catch (_) {}\n }\n /* Use createHTMLDocument in case DOMParser is not available */\n if (!doc || !doc.documentElement) {\n doc = implementation.createDocument(NAMESPACE, 'template', null);\n try {\n doc.documentElement.innerHTML = IS_EMPTY_INPUT ? emptyHTML : dirtyPayload;\n } catch (_) {\n // Syntax error if dirtyPayload is invalid xml\n }\n }\n const body = doc.body || doc.documentElement;\n if (dirty && leadingWhitespace) {\n body.insertBefore(document.createTextNode(leadingWhitespace), body.childNodes[0] || null);\n }\n /* Work on whole document or just its body */\n if (NAMESPACE === HTML_NAMESPACE) {\n return getElementsByTagName.call(doc, WHOLE_DOCUMENT ? 'html' : 'body')[0];\n }\n return WHOLE_DOCUMENT ? doc.documentElement : body;\n };\n /**\n * Creates a NodeIterator object that you can use to traverse filtered lists of nodes or elements in a document.\n *\n * @param root The root element or node to start traversing on.\n * @return The created NodeIterator\n */\n const _createNodeIterator = function _createNodeIterator(root) {\n return createNodeIterator.call(root.ownerDocument || root, root,\n // eslint-disable-next-line no-bitwise\n NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_COMMENT | NodeFilter.SHOW_TEXT | NodeFilter.SHOW_PROCESSING_INSTRUCTION | NodeFilter.SHOW_CDATA_SECTION, null);\n };\n /**\n * _isClobbered\n *\n * @param element element to check for clobbering attacks\n * @return true if clobbered, false if safe\n */\n const _isClobbered = function _isClobbered(element) {\n return element instanceof HTMLFormElement && (typeof element.nodeName !== 'string' || typeof element.textContent !== 'string' || typeof element.removeChild !== 'function' || !(element.attributes instanceof NamedNodeMap) || typeof element.removeAttribute !== 'function' || typeof element.setAttribute !== 'function' || typeof element.namespaceURI !== 'string' || typeof element.insertBefore !== 'function' || typeof element.hasChildNodes !== 'function');\n };\n /**\n * Checks whether the given object is a DOM node.\n *\n * @param value object to check whether it's a DOM node\n * @return true is object is a DOM node\n */\n const _isNode = function _isNode(value) {\n return typeof Node === 'function' && value instanceof Node;\n };\n function _executeHooks(hooks, currentNode, data) {\n arrayForEach(hooks, hook => {\n hook.call(DOMPurify, currentNode, data, CONFIG);\n });\n }\n /**\n * _sanitizeElements\n *\n * @protect nodeName\n * @protect textContent\n * @protect removeChild\n * @param currentNode to check for permission to exist\n * @return true if node was killed, false if left alive\n */\n const _sanitizeElements = function _sanitizeElements(currentNode) {\n let content = null;\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeElements, currentNode, null);\n /* Check if element is clobbered or can clobber */\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Now let's check the element's type and name */\n const tagName = transformCaseFunc(currentNode.nodeName);\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeElement, currentNode, {\n tagName,\n allowedTags: ALLOWED_TAGS\n });\n /* Detect mXSS attempts abusing namespace confusion */\n if (SAFE_FOR_XML && currentNode.hasChildNodes() && !_isNode(currentNode.firstElementChild) && regExpTest(/<[/\\w!]/g, currentNode.innerHTML) && regExpTest(/<[/\\w!]/g, currentNode.textContent)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove risky CSS construction leading to mXSS */\n if (SAFE_FOR_XML && currentNode.namespaceURI === HTML_NAMESPACE && tagName === 'style' && _isNode(currentNode.firstElementChild)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any occurrence of processing instructions */\n if (currentNode.nodeType === NODE_TYPE.progressingInstruction) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove any kind of possibly harmful comments */\n if (SAFE_FOR_XML && currentNode.nodeType === NODE_TYPE.comment && regExpTest(/<[/\\w]/g, currentNode.data)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Remove element if anything forbids its presence */\n if (FORBID_TAGS[tagName] || !(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && !ALLOWED_TAGS[tagName]) {\n /* Check if we have a custom element to handle */\n if (!FORBID_TAGS[tagName] && _isBasicCustomElement(tagName)) {\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, tagName)) {\n return false;\n }\n if (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(tagName)) {\n return false;\n }\n }\n /* Keep content except for bad-listed elements */\n if (KEEP_CONTENT && !FORBID_CONTENTS[tagName]) {\n const parentNode = getParentNode(currentNode) || currentNode.parentNode;\n const childNodes = getChildNodes(currentNode) || currentNode.childNodes;\n if (childNodes && parentNode) {\n const childCount = childNodes.length;\n for (let i = childCount - 1; i >= 0; --i) {\n const childClone = cloneNode(childNodes[i], true);\n parentNode.insertBefore(childClone, getNextSibling(currentNode));\n }\n }\n }\n _forceRemove(currentNode);\n return true;\n }\n /* Check whether element has a valid namespace */\n if (currentNode instanceof Element && !_checkValidNamespace(currentNode)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Make sure that older browsers don't get fallback-tag mXSS */\n if ((tagName === 'noscript' || tagName === 'noembed' || tagName === 'noframes') && regExpTest(/<\\/no(script|embed|frames)/i, currentNode.innerHTML)) {\n _forceRemove(currentNode);\n return true;\n }\n /* Sanitize element content to be template-safe */\n if (SAFE_FOR_TEMPLATES && currentNode.nodeType === NODE_TYPE.text) {\n /* Get the element's text content */\n content = currentNode.textContent;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n content = stringReplace(content, expr, ' ');\n });\n if (currentNode.textContent !== content) {\n arrayPush(DOMPurify.removed, {\n element: currentNode.cloneNode()\n });\n currentNode.textContent = content;\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeElements, currentNode, null);\n return false;\n };\n /**\n * _isValidAttribute\n *\n * @param lcTag Lowercase tag name of containing element.\n * @param lcName Lowercase attribute name.\n * @param value Attribute value.\n * @return Returns true if `value` is valid, otherwise false.\n */\n // eslint-disable-next-line complexity\n const _isValidAttribute = function _isValidAttribute(lcTag, lcName, value) {\n /* FORBID_ATTR must always win, even if ADD_ATTR predicate would allow it */\n if (FORBID_ATTR[lcName]) {\n return false;\n }\n /* Make sure attribute cannot clobber */\n if (SANITIZE_DOM && (lcName === 'id' || lcName === 'name') && (value in document || value in formElement)) {\n return false;\n }\n /* Allow valid data-* attributes: At least one character after \"-\"\n (https://html.spec.whatwg.org/multipage/dom.html#embedding-custom-non-visible-data-with-the-data-*-attributes)\n XML-compatible (https://html.spec.whatwg.org/multipage/infrastructure.html#xml-compatible and http://www.w3.org/TR/xml/#d0e804)\n We don't need to check the value; it's always URI safe. */\n if (ALLOW_DATA_ATTR && !FORBID_ATTR[lcName] && regExpTest(DATA_ATTR, lcName)) ; else if (ALLOW_ARIA_ATTR && regExpTest(ARIA_ATTR, lcName)) ; else if (EXTRA_ELEMENT_HANDLING.attributeCheck instanceof Function && EXTRA_ELEMENT_HANDLING.attributeCheck(lcName, lcTag)) ; else if (!ALLOWED_ATTR[lcName] || FORBID_ATTR[lcName]) {\n if (\n // First condition does a very basic check if a) it's basically a valid custom element tagname AND\n // b) if the tagName passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n // and c) if the attribute name passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.attributeNameCheck\n _isBasicCustomElement(lcTag) && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, lcTag) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(lcTag)) && (CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.attributeNameCheck, lcName) || CUSTOM_ELEMENT_HANDLING.attributeNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.attributeNameCheck(lcName, lcTag)) ||\n // Alternative, second condition checks if it's an `is`-attribute, AND\n // the value passes whatever the user has configured for CUSTOM_ELEMENT_HANDLING.tagNameCheck\n lcName === 'is' && CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof RegExp && regExpTest(CUSTOM_ELEMENT_HANDLING.tagNameCheck, value) || CUSTOM_ELEMENT_HANDLING.tagNameCheck instanceof Function && CUSTOM_ELEMENT_HANDLING.tagNameCheck(value))) ; else {\n return false;\n }\n /* Check value is safe. First, is attr inert? If so, is safe */\n } else if (URI_SAFE_ATTRIBUTES[lcName]) ; else if (regExpTest(IS_ALLOWED_URI$1, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if ((lcName === 'src' || lcName === 'xlink:href' || lcName === 'href') && lcTag !== 'script' && stringIndexOf(value, 'data:') === 0 && DATA_URI_TAGS[lcTag]) ; else if (ALLOW_UNKNOWN_PROTOCOLS && !regExpTest(IS_SCRIPT_OR_DATA, stringReplace(value, ATTR_WHITESPACE, ''))) ; else if (value) {\n return false;\n } else ;\n return true;\n };\n /* Names the HTML spec reserves from valid-custom-element-name; these must\n * never be treated as basic custom elements even when a permissive\n * CUSTOM_ELEMENT_HANDLING.tagNameCheck is configured. */\n const RESERVED_CUSTOM_ELEMENT_NAMES = addToSet({}, ['annotation-xml', 'color-profile', 'font-face', 'font-face-format', 'font-face-name', 'font-face-src', 'font-face-uri', 'missing-glyph']);\n /**\n * _isBasicCustomElement\n * checks if at least one dash is included in tagName, and it's not the first char\n * for more sophisticated checking see https://github.com/sindresorhus/validate-element-name\n *\n * @param tagName name of the tag of the node to sanitize\n * @returns Returns true if the tag name meets the basic criteria for a custom element, otherwise false.\n */\n const _isBasicCustomElement = function _isBasicCustomElement(tagName) {\n return !RESERVED_CUSTOM_ELEMENT_NAMES[stringToLowerCase(tagName)] && regExpTest(CUSTOM_ELEMENT, tagName);\n };\n /**\n * _sanitizeAttributes\n *\n * @protect attributes\n * @protect nodeName\n * @protect removeAttribute\n * @protect setAttribute\n *\n * @param currentNode to sanitize\n */\n const _sanitizeAttributes = function _sanitizeAttributes(currentNode) {\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeAttributes, currentNode, null);\n const {\n attributes\n } = currentNode;\n /* Check if we have attributes; if not we might have a text node */\n if (!attributes || _isClobbered(currentNode)) {\n return;\n }\n const hookEvent = {\n attrName: '',\n attrValue: '',\n keepAttr: true,\n allowedAttributes: ALLOWED_ATTR,\n forceKeepAttr: undefined\n };\n let l = attributes.length;\n /* Go backwards over all attributes; safely remove bad ones */\n while (l--) {\n const attr = attributes[l];\n const {\n name,\n namespaceURI,\n value: attrValue\n } = attr;\n const lcName = transformCaseFunc(name);\n const initValue = attrValue;\n let value = name === 'value' ? initValue : stringTrim(initValue);\n /* Execute a hook if present */\n hookEvent.attrName = lcName;\n hookEvent.attrValue = value;\n hookEvent.keepAttr = true;\n hookEvent.forceKeepAttr = undefined; // Allows developers to see this is a property they can set\n _executeHooks(hooks.uponSanitizeAttribute, currentNode, hookEvent);\n value = hookEvent.attrValue;\n /* Full DOM Clobbering protection via namespace isolation,\n * Prefix id and name attributes with `user-content-`\n */\n if (SANITIZE_NAMED_PROPS && (lcName === 'id' || lcName === 'name') && stringIndexOf(value, SANITIZE_NAMED_PROPS_PREFIX) !== 0) {\n // Remove the attribute with this value\n _removeAttribute(name, currentNode);\n // Prefix the value and later re-create the attribute with the sanitized value\n value = SANITIZE_NAMED_PROPS_PREFIX + value;\n }\n // Else: already prefixed, leave the attribute alone — the prefix is\n // itself the clobbering protection, and re-applying it is incorrect.\n /* Work around a security issue with comments inside attributes */\n if (SAFE_FOR_XML && regExpTest(/((--!?|])>)|<\\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Make sure we cannot easily use animated hrefs, even if animations are allowed */\n if (lcName === 'attributename' && stringMatch(value, 'href')) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (hookEvent.forceKeepAttr) {\n continue;\n }\n /* Did the hooks approve of the attribute? */\n if (!hookEvent.keepAttr) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Work around a security issue in jQuery 3.0 */\n if (!ALLOW_SELF_CLOSE_IN_ATTR && regExpTest(/\\/>/i, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Sanitize attribute content to be template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n value = stringReplace(value, expr, ' ');\n });\n }\n /* Is `value` valid for this attribute? */\n const lcTag = transformCaseFunc(currentNode.nodeName);\n if (!_isValidAttribute(lcTag, lcName, value)) {\n _removeAttribute(name, currentNode);\n continue;\n }\n /* Handle attributes that require Trusted Types */\n if (trustedTypesPolicy && typeof trustedTypes === 'object' && typeof trustedTypes.getAttributeType === 'function') {\n if (namespaceURI) ; else {\n switch (trustedTypes.getAttributeType(lcTag, lcName)) {\n case 'TrustedHTML':\n {\n value = trustedTypesPolicy.createHTML(value);\n break;\n }\n case 'TrustedScriptURL':\n {\n value = trustedTypesPolicy.createScriptURL(value);\n break;\n }\n }\n }\n }\n /* Handle invalid data-* attribute set by try-catching it */\n if (value !== initValue) {\n try {\n if (namespaceURI) {\n currentNode.setAttributeNS(namespaceURI, name, value);\n } else {\n /* Fallback to setAttribute() for browser-unrecognized namespaces e.g. \"x-schema\". */\n currentNode.setAttribute(name, value);\n }\n if (_isClobbered(currentNode)) {\n _forceRemove(currentNode);\n } else {\n arrayPop(DOMPurify.removed);\n }\n } catch (_) {\n _removeAttribute(name, currentNode);\n }\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeAttributes, currentNode, null);\n };\n /**\n * _sanitizeShadowDOM\n *\n * @param fragment to iterate over recursively\n */\n const _sanitizeShadowDOM2 = function _sanitizeShadowDOM(fragment) {\n let shadowNode = null;\n const shadowIterator = _createNodeIterator(fragment);\n /* Execute a hook if present */\n _executeHooks(hooks.beforeSanitizeShadowDOM, fragment, null);\n while (shadowNode = shadowIterator.nextNode()) {\n /* Execute a hook if present */\n _executeHooks(hooks.uponSanitizeShadowNode, shadowNode, null);\n /* Sanitize tags and elements */\n _sanitizeElements(shadowNode);\n /* Check attributes next */\n _sanitizeAttributes(shadowNode);\n /* Deep shadow DOM detected */\n if (shadowNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM2(shadowNode.content);\n }\n }\n /* Execute a hook if present */\n _executeHooks(hooks.afterSanitizeShadowDOM, fragment, null);\n };\n // eslint-disable-next-line complexity\n DOMPurify.sanitize = function (dirty) {\n let cfg = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let body = null;\n let importedNode = null;\n let currentNode = null;\n let returnNode = null;\n /* Make sure we have a string to sanitize.\n DO NOT return early, as this will return the wrong type if\n the user has requested a DOM object rather than a string */\n IS_EMPTY_INPUT = !dirty;\n if (IS_EMPTY_INPUT) {\n dirty = '';\n }\n /* Stringify, in case dirty is an object */\n if (typeof dirty !== 'string' && !_isNode(dirty)) {\n dirty = stringifyValue(dirty);\n if (typeof dirty !== 'string') {\n throw typeErrorCreate('dirty is not a string, aborting');\n }\n }\n /* Return dirty HTML if DOMPurify cannot run */\n if (!DOMPurify.isSupported) {\n return dirty;\n }\n /* Assign config vars */\n if (!SET_CONFIG) {\n _parseConfig(cfg);\n }\n /* Clean up removed elements */\n DOMPurify.removed = [];\n /* Check if dirty is correctly typed for IN_PLACE */\n if (typeof dirty === 'string') {\n IN_PLACE = false;\n }\n if (IN_PLACE) {\n /* Do some early pre-sanitization to avoid unsafe root nodes */\n const nn = dirty.nodeName;\n if (typeof nn === 'string') {\n const tagName = transformCaseFunc(nn);\n if (!ALLOWED_TAGS[tagName] || FORBID_TAGS[tagName]) {\n throw typeErrorCreate('root node is forbidden and cannot be sanitized in-place');\n }\n }\n } else if (dirty instanceof Node) {\n /* If dirty is a DOM element, append to an empty document to avoid\n elements being stripped by the parser */\n body = _initDocument('');\n importedNode = body.ownerDocument.importNode(dirty, true);\n if (importedNode.nodeType === NODE_TYPE.element && importedNode.nodeName === 'BODY') {\n /* Node is already a body, use as is */\n body = importedNode;\n } else if (importedNode.nodeName === 'HTML') {\n body = importedNode;\n } else {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n body.appendChild(importedNode);\n }\n } else {\n /* Exit directly if we have nothing to do */\n if (!RETURN_DOM && !SAFE_FOR_TEMPLATES && !WHOLE_DOCUMENT &&\n // eslint-disable-next-line unicorn/prefer-includes\n dirty.indexOf('<') === -1) {\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(dirty) : dirty;\n }\n /* Initialize the document to work on */\n body = _initDocument(dirty);\n /* Check we have a DOM node from the data */\n if (!body) {\n return RETURN_DOM ? null : RETURN_TRUSTED_TYPE ? emptyHTML : '';\n }\n }\n /* Remove first element node (ours) if FORCE_BODY is set */\n if (body && FORCE_BODY) {\n _forceRemove(body.firstChild);\n }\n /* Get node iterator */\n const nodeIterator = _createNodeIterator(IN_PLACE ? dirty : body);\n /* Now start iterating over the created document */\n while (currentNode = nodeIterator.nextNode()) {\n /* Sanitize tags and elements */\n _sanitizeElements(currentNode);\n /* Check attributes next */\n _sanitizeAttributes(currentNode);\n /* Shadow DOM detected, sanitize it */\n if (currentNode.content instanceof DocumentFragment) {\n _sanitizeShadowDOM2(currentNode.content);\n }\n }\n /* If we sanitized `dirty` in-place, return it. */\n if (IN_PLACE) {\n return dirty;\n }\n /* Return sanitized string or DOM */\n if (RETURN_DOM) {\n if (SAFE_FOR_TEMPLATES) {\n body.normalize();\n let html = body.innerHTML;\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n html = stringReplace(html, expr, ' ');\n });\n body.innerHTML = html;\n }\n if (RETURN_DOM_FRAGMENT) {\n returnNode = createDocumentFragment.call(body.ownerDocument);\n while (body.firstChild) {\n // eslint-disable-next-line unicorn/prefer-dom-node-append\n returnNode.appendChild(body.firstChild);\n }\n } else {\n returnNode = body;\n }\n if (ALLOWED_ATTR.shadowroot || ALLOWED_ATTR.shadowrootmode) {\n /*\n AdoptNode() is not used because internal state is not reset\n (e.g. the past names map of a HTMLFormElement), this is safe\n in theory but we would rather not risk another attack vector.\n The state that is cloned by importNode() is explicitly defined\n by the specs.\n */\n returnNode = importNode.call(originalDocument, returnNode, true);\n }\n return returnNode;\n }\n let serializedHTML = WHOLE_DOCUMENT ? body.outerHTML : body.innerHTML;\n /* Serialize doctype if allowed */\n if (WHOLE_DOCUMENT && ALLOWED_TAGS['!doctype'] && body.ownerDocument && body.ownerDocument.doctype && body.ownerDocument.doctype.name && regExpTest(DOCTYPE_NAME, body.ownerDocument.doctype.name)) {\n serializedHTML = '\\n' + serializedHTML;\n }\n /* Sanitize final string template-safe */\n if (SAFE_FOR_TEMPLATES) {\n arrayForEach([MUSTACHE_EXPR, ERB_EXPR, TMPLIT_EXPR], expr => {\n serializedHTML = stringReplace(serializedHTML, expr, ' ');\n });\n }\n return trustedTypesPolicy && RETURN_TRUSTED_TYPE ? trustedTypesPolicy.createHTML(serializedHTML) : serializedHTML;\n };\n DOMPurify.setConfig = function () {\n let cfg = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n _parseConfig(cfg);\n SET_CONFIG = true;\n };\n DOMPurify.clearConfig = function () {\n CONFIG = null;\n SET_CONFIG = false;\n };\n DOMPurify.isValidAttribute = function (tag, attr, value) {\n /* Initialize shared config vars if necessary. */\n if (!CONFIG) {\n _parseConfig({});\n }\n const lcTag = transformCaseFunc(tag);\n const lcName = transformCaseFunc(attr);\n return _isValidAttribute(lcTag, lcName, value);\n };\n DOMPurify.addHook = function (entryPoint, hookFunction) {\n if (typeof hookFunction !== 'function') {\n return;\n }\n arrayPush(hooks[entryPoint], hookFunction);\n };\n DOMPurify.removeHook = function (entryPoint, hookFunction) {\n if (hookFunction !== undefined) {\n const index = arrayLastIndexOf(hooks[entryPoint], hookFunction);\n return index === -1 ? undefined : arraySplice(hooks[entryPoint], index, 1)[0];\n }\n return arrayPop(hooks[entryPoint]);\n };\n DOMPurify.removeHooks = function (entryPoint) {\n hooks[entryPoint] = [];\n };\n DOMPurify.removeAllHooks = function () {\n hooks = _createHooksMap();\n };\n return DOMPurify;\n }\n var purify = createDOMPurify();\n\n return purify;\n\n}));\n//# sourceMappingURL=purify.js.map\n\n\n//# sourceURL=webpack:///node_modules/dompurify/dist/purify.js"); /***/ }), diff --git a/plugins/CoreVue/polyfills/dist/MatomoPolyfills.min.js b/plugins/CoreVue/polyfills/dist/MatomoPolyfills.min.js index d6e47e95672..57cc6c5b0cc 100644 --- a/plugins/CoreVue/polyfills/dist/MatomoPolyfills.min.js +++ b/plugins/CoreVue/polyfills/dist/MatomoPolyfills.min.js @@ -1,17 +1,17 @@ -(function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/",n(n.s="452c")})({"00ee":function(t,e,n){"use strict";var r=n("b622"),o=r("toStringTag"),i={};i[o]="z",t.exports="[object z]"===String(i)},"01b4":function(t,e,n){"use strict";var r=function(){this.head=null,this.tail=null};r.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t){var e=this.head=t.next;return null===e&&(this.tail=null),t.item}}},t.exports=r},"0366":function(t,e,n){"use strict";var r=n("4625"),o=n("59ed"),i=n("40d5"),c=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?c(t,e):function(){return t.apply(e,arguments)}}},"04f8":function(t,e,n){"use strict";var r=n("1212"),o=n("d039"),i=n("cfe9"),c=i.String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol("symbol detection");return!c(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},"06cf":function(t,e,n){"use strict";var r=n("83ab"),o=n("c65b"),i=n("d1e7"),c=n("5c6c"),a=n("fc6a"),u=n("a04b"),s=n("1a2d"),f=n("0cfb"),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=a(t),e=u(e),f)try{return l(t,e)}catch(n){}if(s(t,e))return c(!o(i.f,t,e),t[e])}},"07fa":function(t,e,n){"use strict";var r=n("50c4");t.exports=function(t){return r(t.length)}},"0cb2":function(t,e,n){"use strict";var r=n("e330"),o=n("7b0b"),i=Math.floor,c=r("".charAt),a=r("".replace),u=r("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,r,l,p){var d=n+t.length,h=r.length,v=f;return void 0!==l&&(l=o(l),v=s),a(p,v,(function(o,a){var s;switch(c(a,0)){case"$":return"$";case"&":return t;case"`":return u(e,0,n);case"'":return u(e,d);case"<":s=l[u(a,1,-1)];break;default:var f=+a;if(0===f)return o;if(f>h){var p=i(f/10);return 0===p?o:p<=h?void 0===r[p-1]?c(a,1):r[p-1]+c(a,1):o}s=r[f-1]}return void 0===s?"":s}))}},"0cfb":function(t,e,n){"use strict";var r=n("83ab"),o=n("d039"),i=n("cc12");t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},"0d51":function(t,e,n){"use strict";var r=String;t.exports=function(t){try{return r(t)}catch(e){return"Object"}}},"0f33":function(t,e,n){"use strict";var r=n("cfe9"),o=n("d039"),i=r.RegExp,c=!o((function(){var t=!0;try{i(".","d")}catch(s){t=!1}var e={},n="",r=t?"dgimsy":"gimsy",o=function(t,r){Object.defineProperty(e,t,{get:function(){return n+=r,!0}})},c={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var a in t&&(c.hasIndices="d"),c)o(a,c[a]);var u=Object.getOwnPropertyDescriptor(i.prototype,"flags").get.call(e);return u!==r||n!==r}));t.exports={correct:c}},"107c":function(t,e,n){"use strict";var r=n("d039"),o=n("cfe9"),i=o.RegExp;t.exports=r((function(){var t=i("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},1212:function(t,e,n){"use strict";var r,o,i=n("cfe9"),c=n("b5db"),a=i.process,u=i.Deno,s=a&&a.versions||u&&u.version,f=s&&s.v8;f&&(r=f.split("."),o=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&c&&(r=c.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\/(\d+)/),r&&(o=+r[1]))),t.exports=o},1276:function(t,e,n){"use strict";var r=n("c65b"),o=n("e330"),i=n("d784"),c=n("825a"),a=n("861d"),u=n("1d80"),s=n("4840"),f=n("8aa5"),l=n("50c4"),p=n("577e"),d=n("dc4a"),h=n("14c3"),v=n("9f7f"),m=n("d039"),b=v.UNSUPPORTED_Y,y=4294967295,g=Math.min,w=o([].push),x=o("".slice),E=!m((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),T="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;i("split",(function(t,e,n){var o="0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r(e,this,t,n)}:e;return[function(e,n){var i=u(this),c=a(e)?d(e,t):void 0;return c?r(c,e,i,n):r(o,p(i),e,n)},function(t,r){var i=c(this),a=p(t);if(!T){var u=n(o,i,a,r,o!==e);if(u.done)return u.value}var d=s(i,RegExp),v=i.unicode,m=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(b?"g":"y"),E=new d(b?"^(?:"+i.source+")":i,m),O=void 0===r?y:r>>>0;if(0===O)return[];if(0===a.length)return null===h(E,a)?[a]:[];var S=0,_=0,A=[];while(_79&&c<83,s=u||!i("reduce");r({target:"Array",proto:!0,forced:s},{reduce:function(t){var e=arguments.length;return o(this,t,e,e>1?arguments[1]:void 0)}})},"14c3":function(t,e,n){"use strict";var r=n("c65b"),o=n("825a"),i=n("1626"),c=n("c6b6"),a=n("9263"),u=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var s=r(n,t,e);return null!==s&&o(s),s}if("RegExp"===c(t))return r(a,t,e);throw new u("RegExp#exec called on incompatible receiver")}},"14e5":function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("59ed"),c=n("f069"),a=n("e667"),u=n("2266"),s=n("5eed");r({target:"Promise",stat:!0,forced:s},{all:function(t){var e=this,n=c.f(e),r=n.resolve,s=n.reject,f=a((function(){var n=i(e.resolve),c=[],a=0,f=1;u(t,(function(t){var i=a++,u=!1;f++,o(n,e,t).then((function(t){u||(u=!0,c[i]=t,--f||r(c))}),s)})),--f||r(c)}));return f.error&&s(f.value),n.promise}})},"157a":function(t,e,n){"use strict";var r=n("cfe9"),o=n("83ab"),i=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!o)return r[t];var e=i(r,t);return e&&e.value}},1626:function(t,e,n){"use strict";var r="object"==typeof document&&document.all;t.exports="undefined"==typeof r&&void 0!==r?function(t){return"function"==typeof t||t===r}:function(t){return"function"==typeof t}},1787:function(t,e,n){"use strict";var r=n("861d");t.exports=function(t){return r(t)||null===t}},"19aa":function(t,e,n){"use strict";var r=n("3a9b"),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw new o("Incorrect invocation")}},"1a2d":function(t,e,n){"use strict";var r=n("e330"),o=n("7b0b"),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},"1be4":function(t,e,n){"use strict";var r=n("d066");t.exports=r("document","documentElement")},"1c7e":function(t,e,n){"use strict";var r=n("b622"),o=r("iterator"),i=!1;try{var c=0,a={next:function(){return{done:!!c++}},return:function(){i=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(u){}t.exports=function(t,e){try{if(!e&&!i)return!1}catch(u){return!1}var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(u){}return n}},"1d80":function(t,e,n){"use strict";var r=n("7234"),o=TypeError;t.exports=function(t){if(r(t))throw new o("Can't call method on "+t);return t}},2266:function(t,e,n){"use strict";var r=n("0366"),o=n("c65b"),i=n("825a"),c=n("0d51"),a=n("e95a"),u=n("07fa"),s=n("3a9b"),f=n("9a1f"),l=n("35a1"),p=n("2a62"),d=TypeError,h=function(t,e){this.stopped=t,this.result=e},v=h.prototype;t.exports=function(t,e,n){var m,b,y,g,w,x,E,T=n&&n.that,O=!(!n||!n.AS_ENTRIES),S=!(!n||!n.IS_RECORD),_=!(!n||!n.IS_ITERATOR),A=!(!n||!n.INTERRUPTED),R=r(e,T),N=function(t){return m&&p(m,"normal"),new h(!0,t)},C=function(t){return O?(i(t),A?R(t[0],t[1],N):R(t[0],t[1])):A?R(t,N):R(t)};if(S)m=t.iterator;else if(_)m=t;else{if(b=l(t),!b)throw new d(c(t)+" is not iterable");if(a(b)){for(y=0,g=u(t);g>y;y++)if(w=C(t[y]),w&&s(v,w))return w;return new h(!1)}m=f(t,b)}x=S?t.next:m.next;while(!(E=o(x,m)).done){try{w=C(E.value)}catch(P){p(m,"throw",P)}if("object"==typeof w&&w&&s(v,w))return w}return new h(!1)}},"23cb":function(t,e,n){"use strict";var r=n("5926"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},"23e7":function(t,e,n){"use strict";var r=n("cfe9"),o=n("06cf").f,i=n("9112"),c=n("cb2d"),a=n("6374"),u=n("e893"),s=n("94ca");t.exports=function(t,e){var n,f,l,p,d,h,v=t.target,m=t.global,b=t.stat;if(f=m?r:b?r[v]||a(v,{}):r[v]&&r[v].prototype,f)for(l in e){if(d=e[l],t.dontCallGetSet?(h=o(f,l),p=h&&h.value):p=f[l],n=s(m?l:v+(b?".":"#")+l,t.forced),!n&&void 0!==p){if(typeof d==typeof p)continue;u(d,p)}(t.sham||p&&p.sham)&&i(d,"sham",!0),c(f,l,d,t)}}},"241c":function(t,e,n){"use strict";var r=n("ca84"),o=n("7839"),i=o.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},"24aa":function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},2532:function(t,e,n){"use strict";var r=n("23e7"),o=n("e330"),i=n("5a34"),c=n("1d80"),a=n("577e"),u=n("ab13"),s=o("".indexOf);r({target:"String",proto:!0,forced:!u("includes")},{includes:function(t){return!!~s(a(c(this)),a(i(t)),arguments.length>1?arguments[1]:void 0)}})},2626:function(t,e,n){"use strict";var r=n("d066"),o=n("edd0"),i=n("b622"),c=n("83ab"),a=i("species");t.exports=function(t){var e=r(t);c&&e&&!e[a]&&o(e,a,{configurable:!0,get:function(){return this}})}},"2a62":function(t,e,n){"use strict";var r=n("c65b"),o=n("825a"),i=n("dc4a");t.exports=function(t,e,n){var c,a;o(t);try{if(c=i(t,"return"),!c){if("throw"===e)throw n;return n}c=r(c,t)}catch(u){a=!0,c=u}if("throw"===e)throw n;if(a)throw c;return o(c),n}},"2ba4":function(t,e,n){"use strict";var r=n("40d5"),o=Function.prototype,i=o.apply,c=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?c.bind(i):function(){return c.apply(i,arguments)})},"2cf4":function(t,e,n){"use strict";var r,o,i,c,a=n("cfe9"),u=n("2ba4"),s=n("0366"),f=n("1626"),l=n("1a2d"),p=n("d039"),d=n("1be4"),h=n("f36a"),v=n("cc12"),m=n("d6d6"),b=n("52c8"),y=n("9adc"),g=a.setImmediate,w=a.clearImmediate,x=a.process,E=a.Dispatch,T=a.Function,O=a.MessageChannel,S=a.String,_=0,A={},R="onreadystatechange";p((function(){r=a.location}));var N=function(t){if(l(A,t)){var e=A[t];delete A[t],e()}},C=function(t){return function(){N(t)}},P=function(t){N(t.data)},I=function(t){a.postMessage(S(t),r.protocol+"//"+r.host)};g&&w||(g=function(t){m(arguments.length,1);var e=f(t)?t:T(t),n=h(arguments,1);return A[++_]=function(){u(e,void 0,n)},o(_),_},w=function(t){delete A[t]},y?o=function(t){x.nextTick(C(t))}:E&&E.now?o=function(t){E.now(C(t))}:O&&!b?(i=new O,c=i.port2,i.port1.onmessage=P,o=s(c.postMessage,c)):a.addEventListener&&f(a.postMessage)&&!a.importScripts&&r&&"file:"!==r.protocol&&!p(I)?(o=I,a.addEventListener("message",P,!1)):o=R in v("script")?function(t){d.appendChild(v("script"))[R]=function(){d.removeChild(this),N(t)}}:function(t){setTimeout(C(t),0)}),t.exports={set:g,clear:w}},3529:function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("59ed"),c=n("f069"),a=n("e667"),u=n("2266"),s=n("5eed");r({target:"Promise",stat:!0,forced:s},{race:function(t){var e=this,n=c.f(e),r=n.reject,s=a((function(){var c=i(e.resolve);u(t,(function(t){o(c,e,t).then(n.resolve,r)}))}));return s.error&&r(s.value),n.promise}})},"35a1":function(t,e,n){"use strict";var r=n("f5df"),o=n("dc4a"),i=n("7234"),c=n("3f8c"),a=n("b622"),u=a("iterator");t.exports=function(t){if(!i(t))return o(t,u)||o(t,"@@iterator")||c[r(t)]}},"37e8":function(t,e,n){"use strict";var r=n("83ab"),o=n("aed9"),i=n("9bf2"),c=n("825a"),a=n("fc6a"),u=n("df75");e.f=r&&!o?Object.defineProperties:function(t,e){c(t);var n,r=a(e),o=u(e),s=o.length,f=0;while(s>f)i.f(t,n=o[f++],r[n]);return t}},"3a9b":function(t,e,n){"use strict";var r=n("e330");t.exports=r({}.isPrototypeOf)},"3bbe":function(t,e,n){"use strict";var r=n("1787"),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i("Can't set "+o(t)+" as a prototype")}},"3f8c":function(t,e,n){"use strict";t.exports={}},"40d5":function(t,e,n){"use strict";var r=n("d039");t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},"428f":function(t,e,n){"use strict";var r=n("cfe9");t.exports=r},"44ad":function(t,e,n){"use strict";var r=n("e330"),o=n("d039"),i=n("c6b6"),c=Object,a=r("".split);t.exports=o((function(){return!c("z").propertyIsEnumerable(0)}))?function(t){return"String"===i(t)?a(t,""):c(t)}:c},"44d2":function(t,e,n){"use strict";var r=n("b622"),o=n("7c73"),i=n("9bf2").f,c=r("unscopables"),a=Array.prototype;void 0===a[c]&&i(a,c,{configurable:!0,value:o(null)}),t.exports=function(t){a[c][t]=!0}},"44de":function(t,e,n){"use strict";t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(n){}}},"44e7":function(t,e,n){"use strict";var r=n("861d"),o=n("c6b6"),i=n("b622"),c=i("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[c])?!!e:"RegExp"===o(t))}},"452c":function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"__extends",(function(){return a})),n.d(r,"__assign",(function(){return u})),n.d(r,"__rest",(function(){return s})),n.d(r,"__decorate",(function(){return f})),n.d(r,"__param",(function(){return l})),n.d(r,"__metadata",(function(){return p})),n.d(r,"__awaiter",(function(){return d})),n.d(r,"__generator",(function(){return h})),n.d(r,"__createBinding",(function(){return v})),n.d(r,"__exportStar",(function(){return m})),n.d(r,"__values",(function(){return b})),n.d(r,"__read",(function(){return y})),n.d(r,"__spread",(function(){return g})),n.d(r,"__spreadArrays",(function(){return w})),n.d(r,"__await",(function(){return x})),n.d(r,"__asyncGenerator",(function(){return E})),n.d(r,"__asyncDelegator",(function(){return T})),n.d(r,"__asyncValues",(function(){return O})),n.d(r,"__makeTemplateObject",(function(){return S})),n.d(r,"__importStar",(function(){return _})),n.d(r,"__importDefault",(function(){return A})),n.d(r,"__classPrivateFieldGet",(function(){return R})),n.d(r,"__classPrivateFieldSet",(function(){return N}));n("e6cf"),n("cca6"),n("a79d"),n("498a"),n("5b81"),n("13d5"),n("c1f9"),n("ac1f"),n("2532"),n("1276"),n("ddb0");var o=n("c0c4"),i=n.n(o),c=function(t,e){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},c(t,e)};function a(t,e){function n(){this.constructor=t}c(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var u=function(){return u=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=0;a--)(o=t[a])&&(c=(i<3?o(c):i>3?o(e,n,c):o(e,n))||c);return i>3&&c&&Object.defineProperty(e,n,c),c}function l(t,e){return function(n,r){e(n,r,t)}}function p(t,e){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(t,e)}function d(t,e,n,r){function o(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,i){function c(t){try{u(r.next(t))}catch(e){i(e)}}function a(t){try{u(r["throw"](t))}catch(e){i(e)}}function u(t){t.done?n(t.value):o(t.value).then(c,a)}u((r=r.apply(t,e||[])).next())}))}function h(t,e){var n,r,o,i,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(t){return function(e){return u([t,e])}}function u(i){if(n)throw new TypeError("Generator is already executing.");while(c)try{if(n=1,r&&(o=2&i[0]?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return c.label++,{value:i[1],done:!1};case 5:c.label++,r=i[1],i=[0];continue;case 7:i=c.ops.pop(),c.trys.pop();continue;default:if(o=c.trys,!(o=o.length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){c=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(t,e){var n="function"===typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,o,i=n.call(t),c=[];try{while((void 0===e||e-- >0)&&!(r=i.next()).done)c.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(n=i["return"])&&n.call(i)}finally{if(o)throw o.error}}return c}function g(){for(var t=[],e=0;e1||a(t,e)}))})}function a(t,e){try{u(o[t](e))}catch(n){l(i[0][3],n)}}function u(t){t.value instanceof x?Promise.resolve(t.value.v).then(s,f):l(i[0][2],t)}function s(t){a("next",t)}function f(t){a("throw",t)}function l(t,e){t(e),i.shift(),i.length&&a(i[0][0],i[0][1])}}function T(t){var e,n;return e={},r("next"),r("throw",(function(t){throw t})),r("return"),e[Symbol.iterator]=function(){return this},e;function r(r,o){e[r]=t[r]?function(e){return(n=!n)?{value:x(t[r](e)),done:"return"===r}:o?o(e):e}:o}}function O(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t="function"===typeof b?b(t):t[Symbol.iterator](),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){e=t[n](e),o(r,i,e.done,e.value)}))}}function o(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)}}function S(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function _(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function A(t){return t&&t.__esModule?t:{default:t}}function R(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function N(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}n("772f"),n("a572");function C(t){const e=t.split(/\s+/);return e.includes("noopener")&&e.includes("noreferrer")} +(function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"===typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t["default"]}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="/",n(n.s="452c")})({"00ee":function(t,e,n){"use strict";var r=n("b622"),o=r("toStringTag"),i={};i[o]="z",t.exports="[object z]"===String(i)},"01b4":function(t,e,n){"use strict";var r=function(){this.head=null,this.tail=null};r.prototype={add:function(t){var e={item:t,next:null},n=this.tail;n?n.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t){var e=this.head=t.next;return null===e&&(this.tail=null),t.item}}},t.exports=r},"0366":function(t,e,n){"use strict";var r=n("4625"),o=n("59ed"),i=n("40d5"),c=r(r.bind);t.exports=function(t,e){return o(t),void 0===e?t:i?c(t,e):function(){return t.apply(e,arguments)}}},"04f8":function(t,e,n){"use strict";var r=n("1212"),o=n("d039"),i=n("cfe9"),c=i.String;t.exports=!!Object.getOwnPropertySymbols&&!o((function(){var t=Symbol("symbol detection");return!c(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&r&&r<41}))},"06cf":function(t,e,n){"use strict";var r=n("83ab"),o=n("c65b"),i=n("d1e7"),c=n("5c6c"),a=n("fc6a"),u=n("a04b"),s=n("1a2d"),f=n("0cfb"),l=Object.getOwnPropertyDescriptor;e.f=r?l:function(t,e){if(t=a(t),e=u(e),f)try{return l(t,e)}catch(n){}if(s(t,e))return c(!o(i.f,t,e),t[e])}},"07fa":function(t,e,n){"use strict";var r=n("50c4");t.exports=function(t){return r(t.length)}},"0cb2":function(t,e,n){"use strict";var r=n("e330"),o=n("7b0b"),i=Math.floor,c=r("".charAt),a=r("".replace),u=r("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;t.exports=function(t,e,n,r,l,p){var d=n+t.length,h=r.length,m=f;return void 0!==l&&(l=o(l),m=s),a(p,m,(function(o,a){var s;switch(c(a,0)){case"$":return"$";case"&":return t;case"`":return u(e,0,n);case"'":return u(e,d);case"<":s=l[u(a,1,-1)];break;default:var f=+a;if(0===f)return o;if(f>h){var p=i(f/10);return 0===p?o:p<=h?void 0===r[p-1]?c(a,1):r[p-1]+c(a,1):o}s=r[f-1]}return void 0===s?"":s}))}},"0cfb":function(t,e,n){"use strict";var r=n("83ab"),o=n("d039"),i=n("cc12");t.exports=!r&&!o((function(){return 7!==Object.defineProperty(i("div"),"a",{get:function(){return 7}}).a}))},"0d51":function(t,e,n){"use strict";var r=String;t.exports=function(t){try{return r(t)}catch(e){return"Object"}}},"0f33":function(t,e,n){"use strict";var r=n("cfe9"),o=n("d039"),i=r.RegExp,c=!o((function(){var t=!0;try{i(".","d")}catch(s){t=!1}var e={},n="",r=t?"dgimsy":"gimsy",o=function(t,r){Object.defineProperty(e,t,{get:function(){return n+=r,!0}})},c={dotAll:"s",global:"g",ignoreCase:"i",multiline:"m",sticky:"y"};for(var a in t&&(c.hasIndices="d"),c)o(a,c[a]);var u=Object.getOwnPropertyDescriptor(i.prototype,"flags").get.call(e);return u!==r||n!==r}));t.exports={correct:c}},"107c":function(t,e,n){"use strict";var r=n("d039"),o=n("cfe9"),i=o.RegExp;t.exports=r((function(){var t=i("(?b)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}))},1212:function(t,e,n){"use strict";var r,o,i=n("cfe9"),c=n("b5db"),a=i.process,u=i.Deno,s=a&&a.versions||u&&u.version,f=s&&s.v8;f&&(r=f.split("."),o=r[0]>0&&r[0]<4?1:+(r[0]+r[1])),!o&&c&&(r=c.match(/Edge\/(\d+)/),(!r||r[1]>=74)&&(r=c.match(/Chrome\/(\d+)/),r&&(o=+r[1]))),t.exports=o},1276:function(t,e,n){"use strict";var r=n("c65b"),o=n("e330"),i=n("d784"),c=n("825a"),a=n("861d"),u=n("1d80"),s=n("4840"),f=n("8aa5"),l=n("50c4"),p=n("577e"),d=n("dc4a"),h=n("14c3"),m=n("9f7f"),v=n("d039"),b=m.UNSUPPORTED_Y,y=4294967295,g=Math.min,w=o([].push),T=o("".slice),x=!v((function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var n="ab".split(t);return 2!==n.length||"a"!==n[0]||"b"!==n[1]})),E="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;i("split",(function(t,e,n){var o="0".split(void 0,0).length?function(t,n){return void 0===t&&0===n?[]:r(e,this,t,n)}:e;return[function(e,n){var i=u(this),c=a(e)?d(e,t):void 0;return c?r(c,e,i,n):r(o,p(i),e,n)},function(t,r){var i=c(this),a=p(t);if(!E){var u=n(o,i,a,r,o!==e);if(u.done)return u.value}var d=s(i,RegExp),m=i.unicode,v=(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(b?"g":"y"),x=new d(b?"^(?:"+i.source+")":i,v),S=void 0===r?y:r>>>0;if(0===S)return[];if(0===a.length)return null===h(x,a)?[a]:[];var O=0,_=0,A=[];while(_79&&c<83,s=u||!i("reduce");r({target:"Array",proto:!0,forced:s},{reduce:function(t){var e=arguments.length;return o(this,t,e,e>1?arguments[1]:void 0)}})},"14c3":function(t,e,n){"use strict";var r=n("c65b"),o=n("825a"),i=n("1626"),c=n("c6b6"),a=n("9263"),u=TypeError;t.exports=function(t,e){var n=t.exec;if(i(n)){var s=r(n,t,e);return null!==s&&o(s),s}if("RegExp"===c(t))return r(a,t,e);throw new u("RegExp#exec called on incompatible receiver")}},"14e5":function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("59ed"),c=n("f069"),a=n("e667"),u=n("2266"),s=n("5eed");r({target:"Promise",stat:!0,forced:s},{all:function(t){var e=this,n=c.f(e),r=n.resolve,s=n.reject,f=a((function(){var n=i(e.resolve),c=[],a=0,f=1;u(t,(function(t){var i=a++,u=!1;f++,o(n,e,t).then((function(t){u||(u=!0,c[i]=t,--f||r(c))}),s)})),--f||r(c)}));return f.error&&s(f.value),n.promise}})},"157a":function(t,e,n){"use strict";var r=n("cfe9"),o=n("83ab"),i=Object.getOwnPropertyDescriptor;t.exports=function(t){if(!o)return r[t];var e=i(r,t);return e&&e.value}},1626:function(t,e,n){"use strict";var r="object"==typeof document&&document.all;t.exports="undefined"==typeof r&&void 0!==r?function(t){return"function"==typeof t||t===r}:function(t){return"function"==typeof t}},1787:function(t,e,n){"use strict";var r=n("861d");t.exports=function(t){return r(t)||null===t}},"19aa":function(t,e,n){"use strict";var r=n("3a9b"),o=TypeError;t.exports=function(t,e){if(r(e,t))return t;throw new o("Incorrect invocation")}},"1a2d":function(t,e,n){"use strict";var r=n("e330"),o=n("7b0b"),i=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(t,e){return i(o(t),e)}},"1be4":function(t,e,n){"use strict";var r=n("d066");t.exports=r("document","documentElement")},"1c7e":function(t,e,n){"use strict";var r=n("b622"),o=r("iterator"),i=!1;try{var c=0,a={next:function(){return{done:!!c++}},return:function(){i=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(u){}t.exports=function(t,e){try{if(!e&&!i)return!1}catch(u){return!1}var n=!1;try{var r={};r[o]=function(){return{next:function(){return{done:n=!0}}}},t(r)}catch(u){}return n}},"1d80":function(t,e,n){"use strict";var r=n("7234"),o=TypeError;t.exports=function(t){if(r(t))throw new o("Can't call method on "+t);return t}},2266:function(t,e,n){"use strict";var r=n("0366"),o=n("c65b"),i=n("825a"),c=n("0d51"),a=n("e95a"),u=n("07fa"),s=n("3a9b"),f=n("9a1f"),l=n("35a1"),p=n("2a62"),d=TypeError,h=function(t,e){this.stopped=t,this.result=e},m=h.prototype;t.exports=function(t,e,n){var v,b,y,g,w,T,x,E=n&&n.that,S=!(!n||!n.AS_ENTRIES),O=!(!n||!n.IS_RECORD),_=!(!n||!n.IS_ITERATOR),A=!(!n||!n.INTERRUPTED),R=r(e,E),N=function(t){return v&&p(v,"normal"),new h(!0,t)},I=function(t){return S?(i(t),A?R(t[0],t[1],N):R(t[0],t[1])):A?R(t,N):R(t)};if(O)v=t.iterator;else if(_)v=t;else{if(b=l(t),!b)throw new d(c(t)+" is not iterable");if(a(b)){for(y=0,g=u(t);g>y;y++)if(w=I(t[y]),w&&s(m,w))return w;return new h(!1)}v=f(t,b)}T=O?t.next:v.next;while(!(x=o(T,v)).done){try{w=I(x.value)}catch(P){p(v,"throw",P)}if("object"==typeof w&&w&&s(m,w))return w}return new h(!1)}},"23cb":function(t,e,n){"use strict";var r=n("5926"),o=Math.max,i=Math.min;t.exports=function(t,e){var n=r(t);return n<0?o(n+e,0):i(n,e)}},"23e7":function(t,e,n){"use strict";var r=n("cfe9"),o=n("06cf").f,i=n("9112"),c=n("cb2d"),a=n("6374"),u=n("e893"),s=n("94ca");t.exports=function(t,e){var n,f,l,p,d,h,m=t.target,v=t.global,b=t.stat;if(f=v?r:b?r[m]||a(m,{}):r[m]&&r[m].prototype,f)for(l in e){if(d=e[l],t.dontCallGetSet?(h=o(f,l),p=h&&h.value):p=f[l],n=s(v?l:m+(b?".":"#")+l,t.forced),!n&&void 0!==p){if(typeof d==typeof p)continue;u(d,p)}(t.sham||p&&p.sham)&&i(d,"sham",!0),c(f,l,d,t)}}},"241c":function(t,e,n){"use strict";var r=n("ca84"),o=n("7839"),i=o.concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return r(t,i)}},"24aa":function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},2532:function(t,e,n){"use strict";var r=n("23e7"),o=n("e330"),i=n("5a34"),c=n("1d80"),a=n("577e"),u=n("ab13"),s=o("".indexOf);r({target:"String",proto:!0,forced:!u("includes")},{includes:function(t){return!!~s(a(c(this)),a(i(t)),arguments.length>1?arguments[1]:void 0)}})},2626:function(t,e,n){"use strict";var r=n("d066"),o=n("edd0"),i=n("b622"),c=n("83ab"),a=i("species");t.exports=function(t){var e=r(t);c&&e&&!e[a]&&o(e,a,{configurable:!0,get:function(){return this}})}},"2a62":function(t,e,n){"use strict";var r=n("c65b"),o=n("825a"),i=n("dc4a");t.exports=function(t,e,n){var c,a;o(t);try{if(c=i(t,"return"),!c){if("throw"===e)throw n;return n}c=r(c,t)}catch(u){a=!0,c=u}if("throw"===e)throw n;if(a)throw c;return o(c),n}},"2ba4":function(t,e,n){"use strict";var r=n("40d5"),o=Function.prototype,i=o.apply,c=o.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?c.bind(i):function(){return c.apply(i,arguments)})},"2cf4":function(t,e,n){"use strict";var r,o,i,c,a=n("cfe9"),u=n("2ba4"),s=n("0366"),f=n("1626"),l=n("1a2d"),p=n("d039"),d=n("1be4"),h=n("f36a"),m=n("cc12"),v=n("d6d6"),b=n("52c8"),y=n("9adc"),g=a.setImmediate,w=a.clearImmediate,T=a.process,x=a.Dispatch,E=a.Function,S=a.MessageChannel,O=a.String,_=0,A={},R="onreadystatechange";p((function(){r=a.location}));var N=function(t){if(l(A,t)){var e=A[t];delete A[t],e()}},I=function(t){return function(){N(t)}},P=function(t){N(t.data)},C=function(t){a.postMessage(O(t),r.protocol+"//"+r.host)};g&&w||(g=function(t){v(arguments.length,1);var e=f(t)?t:E(t),n=h(arguments,1);return A[++_]=function(){u(e,void 0,n)},o(_),_},w=function(t){delete A[t]},y?o=function(t){T.nextTick(I(t))}:x&&x.now?o=function(t){x.now(I(t))}:S&&!b?(i=new S,c=i.port2,i.port1.onmessage=P,o=s(c.postMessage,c)):a.addEventListener&&f(a.postMessage)&&!a.importScripts&&r&&"file:"!==r.protocol&&!p(C)?(o=C,a.addEventListener("message",P,!1)):o=R in m("script")?function(t){d.appendChild(m("script"))[R]=function(){d.removeChild(this),N(t)}}:function(t){setTimeout(I(t),0)}),t.exports={set:g,clear:w}},3529:function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("59ed"),c=n("f069"),a=n("e667"),u=n("2266"),s=n("5eed");r({target:"Promise",stat:!0,forced:s},{race:function(t){var e=this,n=c.f(e),r=n.reject,s=a((function(){var c=i(e.resolve);u(t,(function(t){o(c,e,t).then(n.resolve,r)}))}));return s.error&&r(s.value),n.promise}})},"35a1":function(t,e,n){"use strict";var r=n("f5df"),o=n("dc4a"),i=n("7234"),c=n("3f8c"),a=n("b622"),u=a("iterator");t.exports=function(t){if(!i(t))return o(t,u)||o(t,"@@iterator")||c[r(t)]}},"37e8":function(t,e,n){"use strict";var r=n("83ab"),o=n("aed9"),i=n("9bf2"),c=n("825a"),a=n("fc6a"),u=n("df75");e.f=r&&!o?Object.defineProperties:function(t,e){c(t);var n,r=a(e),o=u(e),s=o.length,f=0;while(s>f)i.f(t,n=o[f++],r[n]);return t}},"3a9b":function(t,e,n){"use strict";var r=n("e330");t.exports=r({}.isPrototypeOf)},"3bbe":function(t,e,n){"use strict";var r=n("1787"),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i("Can't set "+o(t)+" as a prototype")}},"3f8c":function(t,e,n){"use strict";t.exports={}},"40d5":function(t,e,n){"use strict";var r=n("d039");t.exports=!r((function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}))},"428f":function(t,e,n){"use strict";var r=n("cfe9");t.exports=r},"44ad":function(t,e,n){"use strict";var r=n("e330"),o=n("d039"),i=n("c6b6"),c=Object,a=r("".split);t.exports=o((function(){return!c("z").propertyIsEnumerable(0)}))?function(t){return"String"===i(t)?a(t,""):c(t)}:c},"44d2":function(t,e,n){"use strict";var r=n("b622"),o=n("7c73"),i=n("9bf2").f,c=r("unscopables"),a=Array.prototype;void 0===a[c]&&i(a,c,{configurable:!0,value:o(null)}),t.exports=function(t){a[c][t]=!0}},"44de":function(t,e,n){"use strict";t.exports=function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(n){}}},"44e7":function(t,e,n){"use strict";var r=n("861d"),o=n("c6b6"),i=n("b622"),c=i("match");t.exports=function(t){var e;return r(t)&&(void 0!==(e=t[c])?!!e:"RegExp"===o(t))}},"452c":function(t,e,n){"use strict";n.r(e);var r={};n.r(r),n.d(r,"__extends",(function(){return a})),n.d(r,"__assign",(function(){return u})),n.d(r,"__rest",(function(){return s})),n.d(r,"__decorate",(function(){return f})),n.d(r,"__param",(function(){return l})),n.d(r,"__metadata",(function(){return p})),n.d(r,"__awaiter",(function(){return d})),n.d(r,"__generator",(function(){return h})),n.d(r,"__createBinding",(function(){return m})),n.d(r,"__exportStar",(function(){return v})),n.d(r,"__values",(function(){return b})),n.d(r,"__read",(function(){return y})),n.d(r,"__spread",(function(){return g})),n.d(r,"__spreadArrays",(function(){return w})),n.d(r,"__await",(function(){return T})),n.d(r,"__asyncGenerator",(function(){return x})),n.d(r,"__asyncDelegator",(function(){return E})),n.d(r,"__asyncValues",(function(){return S})),n.d(r,"__makeTemplateObject",(function(){return O})),n.d(r,"__importStar",(function(){return _})),n.d(r,"__importDefault",(function(){return A})),n.d(r,"__classPrivateFieldGet",(function(){return R})),n.d(r,"__classPrivateFieldSet",(function(){return N}));n("e6cf"),n("cca6"),n("a79d"),n("498a"),n("5b81"),n("13d5"),n("c1f9"),n("ac1f"),n("2532"),n("1276"),n("ddb0");var o=n("c0c4"),i=n.n(o),c=function(t,e){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},c(t,e)};function a(t,e){function n(){this.constructor=t}c(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}var u=function(){return u=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=0;a--)(o=t[a])&&(c=(i<3?o(c):i>3?o(e,n,c):o(e,n))||c);return i>3&&c&&Object.defineProperty(e,n,c),c}function l(t,e){return function(n,r){e(n,r,t)}}function p(t,e){if("object"===typeof Reflect&&"function"===typeof Reflect.metadata)return Reflect.metadata(t,e)}function d(t,e,n,r){function o(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,i){function c(t){try{u(r.next(t))}catch(e){i(e)}}function a(t){try{u(r["throw"](t))}catch(e){i(e)}}function u(t){t.done?n(t.value):o(t.value).then(c,a)}u((r=r.apply(t,e||[])).next())}))}function h(t,e){var n,r,o,i,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},"function"===typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(t){return function(e){return u([t,e])}}function u(i){if(n)throw new TypeError("Generator is already executing.");while(c)try{if(n=1,r&&(o=2&i[0]?r["return"]:i[0]?r["throw"]||((o=r["return"])&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return c.label++,{value:i[1],done:!1};case 5:c.label++,r=i[1],i=[0];continue;case 7:i=c.ops.pop(),c.trys.pop();continue;default:if(o=c.trys,!(o=o.length>0&&o[o.length-1])&&(6===i[0]||2===i[0])){c=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=t.length&&(t=void 0),{value:t&&t[r++],done:!t}}};throw new TypeError(e?"Object is not iterable.":"Symbol.iterator is not defined.")}function y(t,e){var n="function"===typeof Symbol&&t[Symbol.iterator];if(!n)return t;var r,o,i=n.call(t),c=[];try{while((void 0===e||e-- >0)&&!(r=i.next()).done)c.push(r.value)}catch(a){o={error:a}}finally{try{r&&!r.done&&(n=i["return"])&&n.call(i)}finally{if(o)throw o.error}}return c}function g(){for(var t=[],e=0;e1||a(t,e)}))})}function a(t,e){try{u(o[t](e))}catch(n){l(i[0][3],n)}}function u(t){t.value instanceof T?Promise.resolve(t.value.v).then(s,f):l(i[0][2],t)}function s(t){a("next",t)}function f(t){a("throw",t)}function l(t,e){t(e),i.shift(),i.length&&a(i[0][0],i[0][1])}}function E(t){var e,n;return e={},r("next"),r("throw",(function(t){throw t})),r("return"),e[Symbol.iterator]=function(){return this},e;function r(r,o){e[r]=t[r]?function(e){return(n=!n)?{value:T(t[r](e)),done:"return"===r}:o?o(e):e}:o}}function S(t){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var e,n=t[Symbol.asyncIterator];return n?n.call(t):(t="function"===typeof b?b(t):t[Symbol.iterator](),e={},r("next"),r("throw"),r("return"),e[Symbol.asyncIterator]=function(){return this},e);function r(n){e[n]=t[n]&&function(e){return new Promise((function(r,i){e=t[n](e),o(r,i,e.done,e.value)}))}}function o(t,e,n,r){Promise.resolve(r).then((function(e){t({value:e,done:n})}),e)}}function O(t,e){return Object.defineProperty?Object.defineProperty(t,"raw",{value:e}):t.raw=e,t}function _(t){if(t&&t.__esModule)return t;var e={};if(null!=t)for(var n in t)Object.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e.default=t,e}function A(t){return t&&t.__esModule?t:{default:t}}function R(t,e){if(!e.has(t))throw new TypeError("attempted to get private field on non-instance");return e.get(t)}function N(t,e,n){if(!e.has(t))throw new TypeError("attempted to set private field on non-instance");return e.set(t,n),n}n("772f"),n("a572");function I(t){const e=t.split(/\s+/);return e.includes("noopener")&&e.includes("noreferrer")} /*! * Matomo - free/libre analytics platform * * @link https://matomo.org * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later */ -window.tslib=r,Object.fromEntries=function(t){return[...t].reduce((t,[e,n])=>(t[e]=n,t),{})},i.a.addHook("afterSanitizeAttributes",t=>{!t.hasAttribute("target")||"_blank"!==t.getAttribute("target")||t.hasAttribute("rel")&&C(t.getAttribute("rel"))||t.removeAttribute("target")}),window.vueSanitize=function(t){return i.a.sanitize(t,{ADD_ATTR:["target"]})}},4625:function(t,e,n){"use strict";var r=n("c6b6"),o=n("e330");t.exports=function(t){if("Function"===r(t))return o(t)}},4738:function(t,e,n){"use strict";var r=n("cfe9"),o=n("d256"),i=n("1626"),c=n("94ca"),a=n("8925"),u=n("b622"),s=n("8558"),f=n("c430"),l=n("1212"),p=o&&o.prototype,d=u("species"),h=!1,v=i(r.PromiseRejectionEvent),m=c("Promise",(function(){var t=a(o),e=t!==String(o);if(!e&&66===l)return!0;if(f&&(!p["catch"]||!p["finally"]))return!0;if(!l||l<51||!/native code/.test(t)){var n=new o((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))},i=n.constructor={};if(i[d]=r,h=n.then((function(){}))instanceof r,!h)return!0}return!e&&("BROWSER"===s||"DENO"===s)&&!v}));t.exports={CONSTRUCTOR:m,REJECTION_EVENT:v,SUBCLASSING:h}},4754:function(t,e,n){"use strict";t.exports=function(t,e){return{value:t,done:e}}},4840:function(t,e,n){"use strict";var r=n("825a"),o=n("5087"),i=n("7234"),c=n("b622"),a=c("species");t.exports=function(t,e){var n,c=r(t).constructor;return void 0===c||i(n=r(c)[a])?e:o(n)}},"485a":function(t,e,n){"use strict";var r=n("c65b"),o=n("1626"),i=n("861d"),c=TypeError;t.exports=function(t,e){var n,a;if("string"===e&&o(n=t.toString)&&!i(a=r(n,t)))return a;if(o(n=t.valueOf)&&!i(a=r(n,t)))return a;if("string"!==e&&o(n=t.toString)&&!i(a=r(n,t)))return a;throw new c("Can't convert object to primitive value")}},"498a":function(t,e,n){"use strict";var r=n("23e7"),o=n("58a8").trim,i=n("c8d2");r({target:"String",proto:!0,forced:i("trim")},{trim:function(){return o(this)}})},"4d64":function(t,e,n){"use strict";var r=n("fc6a"),o=n("23cb"),i=n("07fa"),c=function(t){return function(e,n,c){var a=r(e),u=i(a);if(0===u)return!t&&-1;var s,f=o(c,u);if(t&&n!==n){while(u>f)if(s=a[f++],s!==s)return!0}else for(;u>f;f++)if((t||f in a)&&a[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},5087:function(t,e,n){"use strict";var r=n("68ee"),o=n("0d51"),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not a constructor")}},"50c4":function(t,e,n){"use strict";var r=n("5926"),o=Math.min;t.exports=function(t){var e=r(t);return e>0?o(e,9007199254740991):0}},"52c8":function(t,e,n){"use strict";var r=n("b5db");t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},5692:function(t,e,n){"use strict";var r=n("c6cd");t.exports=function(t,e){return r[t]||(r[t]=e||{})}},"56ef":function(t,e,n){"use strict";var r=n("d066"),o=n("e330"),i=n("241c"),c=n("7418"),a=n("825a"),u=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(a(t)),n=c.f;return n?u(e,n(t)):e}},"577e":function(t,e,n){"use strict";var r=n("f5df"),o=String;t.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return o(t)}},5899:function(t,e,n){"use strict";t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(t,e,n){"use strict";var r=n("e330"),o=n("1d80"),i=n("577e"),c=n("5899"),a=r("".replace),u=RegExp("^["+c+"]+"),s=RegExp("(^|[^"+c+"])["+c+"]+$"),f=function(t){return function(e){var n=i(o(e));return 1&t&&(n=a(n,u,"")),2&t&&(n=a(n,s,"$1")),n}};t.exports={start:f(1),end:f(2),trim:f(3)}},5926:function(t,e,n){"use strict";var r=n("b42e");t.exports=function(t){var e=+t;return e!==e||0===e?0:r(e)}},"59ed":function(t,e,n){"use strict";var r=n("1626"),o=n("0d51"),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not a function")}},"5a34":function(t,e,n){"use strict";var r=n("44e7"),o=TypeError;t.exports=function(t){if(r(t))throw new o("The method doesn't accept regular expressions");return t}},"5b81":function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("e330"),c=n("1d80"),a=n("1626"),u=n("861d"),s=n("44e7"),f=n("577e"),l=n("dc4a"),p=n("90d8"),d=n("0cb2"),h=n("b622"),v=n("c430"),m=h("replace"),b=TypeError,y=i("".indexOf),g=i("".replace),w=i("".slice),x=Math.max;r({target:"String",proto:!0},{replaceAll:function(t,e){var n,r,i,h,E,T,O,S,_,A,R=c(this),N=0,C="";if(u(t)){if(n=s(t),n&&(r=f(c(p(t))),!~y(r,"g")))throw new b("`.replaceAll` does not allow non-global regexes");if(i=l(t,m),i)return o(i,t,R,e);if(v&&n)return g(f(R),t,e)}h=f(R),E=f(t),T=a(e),T||(e=f(e)),O=E.length,S=x(1,O),_=y(h,E);while(-1!==_)A=T?f(e(E,_,h)):d(E,h,_,[],void 0,e),C+=w(h,N,_)+A,N=_+O,_=_+S>h.length?-1:y(h,E,_+S);return Nc){var v,m=l(arguments[c++]),b=p?h(a(m),p(m)):a(m),y=b.length,g=0;while(y>g)v=b[g++],r&&!i(d,m,v)||(n[v]=m[v])}return n}:p},6374:function(t,e,n){"use strict";var r=n("cfe9"),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},6547:function(t,e,n){"use strict";var r=n("e330"),o=n("5926"),i=n("577e"),c=n("1d80"),a=r("".charAt),u=r("".charCodeAt),s=r("".slice),f=function(t){return function(e,n){var r,f,l=i(c(e)),p=o(n),d=l.length;return p<0||p>=d?t?"":void 0:(r=u(l,p),r<55296||r>56319||p+1===d||(f=u(l,p+1))<56320||f>57343?t?a(l,p):r:t?s(l,p,p+2):f-56320+(r-55296<<10)+65536)}};t.exports={codeAt:f(!1),charAt:f(!0)}},"68ee":function(t,e,n){"use strict";var r=n("e330"),o=n("d039"),i=n("1626"),c=n("f5df"),a=n("d066"),u=n("8925"),s=function(){},f=a("Reflect","construct"),l=/^\s*(?:class|function)\b/,p=r(l.exec),d=!l.test(s),h=function(t){if(!i(t))return!1;try{return f(s,[],t),!0}catch(e){return!1}},v=function(t){if(!i(t))return!1;switch(c(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!p(l,u(t))}catch(e){return!0}};v.sham=!0,t.exports=!f||o((function(){var t;return h(h.call)||!h(Object)||!h((function(){t=!0}))||t}))?v:h},"69f3":function(t,e,n){"use strict";var r,o,i,c=n("cdce"),a=n("cfe9"),u=n("861d"),s=n("9112"),f=n("1a2d"),l=n("c6cd"),p=n("f772"),d=n("d012"),h="Object already initialized",v=a.TypeError,m=a.WeakMap,b=function(t){return i(t)?o(t):r(t,{})},y=function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw new v("Incompatible receiver, "+t+" required");return n}};if(c||l.state){var g=l.state||(l.state=new m);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw new v(h);return e.facade=t,g.set(t,e),e},o=function(t){return g.get(t)||{}},i=function(t){return g.has(t)}}else{var w=p("state");d[w]=!0,r=function(t,e){if(f(t,w))throw new v(h);return e.facade=t,s(t,w,e),e},o=function(t){return f(t,w)?t[w]:{}},i=function(t){return f(t,w)}}t.exports={set:r,get:o,has:i,enforce:b,getterFor:y}},7149:function(t,e,n){"use strict";var r=n("23e7"),o=n("d066"),i=n("c430"),c=n("d256"),a=n("4738").CONSTRUCTOR,u=n("cdf9"),s=o("Promise"),f=i&&!a;r({target:"Promise",stat:!0,forced:i||a},{resolve:function(t){return u(f&&this===s?c:this,t)}})},7234:function(t,e,n){"use strict";t.exports=function(t){return null===t||void 0===t}},7282:function(t,e,n){"use strict";var r=n("e330"),o=n("59ed");t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},7418:function(t,e,n){"use strict";e.f=Object.getOwnPropertySymbols},"772f":function(t,e,n){(function(r){var o,i;(function(r){o=r,i="function"===typeof o?o.call(e,n,e,t):o,void 0===i||(t.exports=i)})((function(){"use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}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 i,c=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return c=t.done,t},e:function(t){a=!0,i=t},f:function(){try{c||null==n.return||n.return()}finally{if(a)throw i}}}}function u(){return u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var r=h(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(arguments.length<3?t:n):o.value}},u.apply(null,arguments)}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function f(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&d(t,e)}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}function p(t,n){if(n&&("object"==typeof n||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return e(t)}function d(t,e){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},d(t,e)}function h(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=s(t)););return t}function v(t,e,n,r){var o=u(s(1&r?t.prototype:t),e,n);return 2&r&&"function"==typeof o?function(t){return o.apply(n,t)}:o}function m(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}function b(t){var e=m(t,"string");return"symbol"==typeof e?e:e+""}function y(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function g(t){var e;try{e=new Event("abort")}catch(n){"undefined"!==typeof document?document.createEvent?(e=document.createEvent("Event"),e.initEvent("abort",!1,!1)):(e=document.createEventObject(),e.type="abort"):e={type:"abort",bubbles:!1,cancelable:!1}}return e.reason=t,e}function w(t){if(void 0===t)if("undefined"===typeof document)t=new Error("This operation was aborted"),t.name="AbortError";else try{t=new DOMException("signal is aborted without reason"),Object.defineProperty(t,"name",{value:"AbortError"})}catch(e){t=new Error("This operation was aborted"),t.name="AbortError"}return t}(function(t){t.AbortSignal,t.AbortController})("undefined"!==typeof self?self:r);var x=function(){function t(){o(this,t),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return c(t,[{key:"addEventListener",value:function(t,e,n){t in this.listeners||(this.listeners[t]=[]),this.listeners[t].push({callback:e,options:n})}},{key:"removeEventListener",value:function(t,e){if(t in this.listeners)for(var n=this.listeners[t],r=0,o=n.length;r",p="<",d="prototype",h="script",v=f("IE_PROTO"),m=function(){},b=function(t){return p+h+l+t+p+"/"+h+l},y=function(t){t.write(b("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){var t,e=s("iframe"),n="java"+h+":";return e.style.display="none",u.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(b("document.F=Object")),t.close(),t.F},w=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}w="undefined"!=typeof document?document.domain&&r?y(r):g():y(r);var t=c.length;while(t--)delete w[d][c[t]];return w()};a[v]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(m[d]=o(t),n=new m,m[d]=null,n[v]=t):n=w(),void 0===e?n:i.f(n,e)}},"825a":function(t,e,n){"use strict";var r=n("861d"),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not an object")}},"83ab":function(t,e,n){"use strict";var r=n("d039");t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(t,e,n){"use strict";var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=function(t,e,n){r?o.f(t,e,i(0,n)):t[e]=n}},8558:function(t,e,n){"use strict";var r=n("cfe9"),o=n("b5db"),i=n("c6b6"),c=function(t){return o.slice(0,t.length)===t};t.exports=function(){return c("Bun/")?"BUN":c("Cloudflare-Workers")?"CLOUDFLARE":c("Deno/")?"DENO":c("Node.js/")?"NODE":r.Bun&&"string"==typeof Bun.version?"BUN":r.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(r.process)?"NODE":r.window&&r.document?"BROWSER":"REST"}()},"861d":function(t,e,n){"use strict";var r=n("1626");t.exports=function(t){return"object"==typeof t?null!==t:r(t)}},8925:function(t,e,n){"use strict";var r=n("e330"),o=n("1626"),i=n("c6cd"),c=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return c(t)}),t.exports=i.inspectSource},"8aa5":function(t,e,n){"use strict";var r=n("6547").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},"90d8":function(t,e,n){"use strict";var r=n("c65b"),o=n("1a2d"),i=n("3a9b"),c=n("0f33"),a=n("ad6d"),u=RegExp.prototype;t.exports=c.correct?function(t){return t.flags}:function(t){return c.correct||!i(u,t)||o(t,"flags")?t.flags:r(a,t)}},"90e3":function(t,e,n){"use strict";var r=n("e330"),o=0,i=Math.random(),c=r(1.1.toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+c(++o+i,36)}},9112:function(t,e,n){"use strict";var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("c65b"),o=n("e330"),i=n("577e"),c=n("ad6d"),a=n("9f7f"),u=n("5692"),s=n("7c73"),f=n("69f3").get,l=n("fce3"),p=n("107c"),d=u("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,v=h,m=o("".charAt),b=o("".indexOf),y=o("".replace),g=o("".slice),w=function(){var t=/a/,e=/b*/g;return r(h,t,"a"),r(h,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),x=a.BROKEN_CARET,E=void 0!==/()??/.exec("")[1],T=w||E||x||l||p;T&&(v=function(t){var e,n,o,a,u,l,p,T=this,O=f(T),S=i(t),_=O.raw;if(_)return _.lastIndex=T.lastIndex,e=r(v,_,S),T.lastIndex=_.lastIndex,e;var A=O.groups,R=x&&T.sticky,N=r(c,T),C=T.source,P=0,I=S;if(R&&(N=y(N,"y",""),-1===b(N,"g")&&(N+="g"),I=g(S,T.lastIndex),T.lastIndex>0&&(!T.multiline||T.multiline&&"\n"!==m(S,T.lastIndex-1))&&(C="(?: "+C+")",I=" "+I,P++),n=new RegExp("^(?:"+C+")",N)),E&&(n=new RegExp("^"+C+"$(?!\\s)",N)),w&&(o=T.lastIndex),a=r(h,R?n:T,I),R?a?(a.input=g(a.input,P),a[0]=g(a[0],P),a.index=T.lastIndex,T.lastIndex+=a[0].length):T.lastIndex=0:w&&a&&(T.lastIndex=T.global?a.index+a[0].length:o),E&&a&&a.length>1&&r(d,a[0],n,(function(){for(u=1;u(t[e]=n,t),{})},i.a.addHook("afterSanitizeAttributes",t=>{!t.hasAttribute("target")||"_blank"!==t.getAttribute("target")||t.hasAttribute("rel")&&I(t.getAttribute("rel"))||t.removeAttribute("target")}),window.vueSanitize=function(t){return i.a.sanitize(t,{ADD_ATTR:["target"]})}},4625:function(t,e,n){"use strict";var r=n("c6b6"),o=n("e330");t.exports=function(t){if("Function"===r(t))return o(t)}},4738:function(t,e,n){"use strict";var r=n("cfe9"),o=n("d256"),i=n("1626"),c=n("94ca"),a=n("8925"),u=n("b622"),s=n("8558"),f=n("c430"),l=n("1212"),p=o&&o.prototype,d=u("species"),h=!1,m=i(r.PromiseRejectionEvent),v=c("Promise",(function(){var t=a(o),e=t!==String(o);if(!e&&66===l)return!0;if(f&&(!p["catch"]||!p["finally"]))return!0;if(!l||l<51||!/native code/.test(t)){var n=new o((function(t){t(1)})),r=function(t){t((function(){}),(function(){}))},i=n.constructor={};if(i[d]=r,h=n.then((function(){}))instanceof r,!h)return!0}return!e&&("BROWSER"===s||"DENO"===s)&&!m}));t.exports={CONSTRUCTOR:v,REJECTION_EVENT:m,SUBCLASSING:h}},4754:function(t,e,n){"use strict";t.exports=function(t,e){return{value:t,done:e}}},4840:function(t,e,n){"use strict";var r=n("825a"),o=n("5087"),i=n("7234"),c=n("b622"),a=c("species");t.exports=function(t,e){var n,c=r(t).constructor;return void 0===c||i(n=r(c)[a])?e:o(n)}},"485a":function(t,e,n){"use strict";var r=n("c65b"),o=n("1626"),i=n("861d"),c=TypeError;t.exports=function(t,e){var n,a;if("string"===e&&o(n=t.toString)&&!i(a=r(n,t)))return a;if(o(n=t.valueOf)&&!i(a=r(n,t)))return a;if("string"!==e&&o(n=t.toString)&&!i(a=r(n,t)))return a;throw new c("Can't convert object to primitive value")}},"498a":function(t,e,n){"use strict";var r=n("23e7"),o=n("58a8").trim,i=n("c8d2");r({target:"String",proto:!0,forced:i("trim")},{trim:function(){return o(this)}})},"4d64":function(t,e,n){"use strict";var r=n("fc6a"),o=n("23cb"),i=n("07fa"),c=function(t){return function(e,n,c){var a=r(e),u=i(a);if(0===u)return!t&&-1;var s,f=o(c,u);if(t&&n!==n){while(u>f)if(s=a[f++],s!==s)return!0}else for(;u>f;f++)if((t||f in a)&&a[f]===n)return t||f||0;return!t&&-1}};t.exports={includes:c(!0),indexOf:c(!1)}},5087:function(t,e,n){"use strict";var r=n("68ee"),o=n("0d51"),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not a constructor")}},"50c4":function(t,e,n){"use strict";var r=n("5926"),o=Math.min;t.exports=function(t){var e=r(t);return e>0?o(e,9007199254740991):0}},"52c8":function(t,e,n){"use strict";var r=n("b5db");t.exports=/(?:ipad|iphone|ipod).*applewebkit/i.test(r)},5692:function(t,e,n){"use strict";var r=n("c6cd");t.exports=function(t,e){return r[t]||(r[t]=e||{})}},"56ef":function(t,e,n){"use strict";var r=n("d066"),o=n("e330"),i=n("241c"),c=n("7418"),a=n("825a"),u=o([].concat);t.exports=r("Reflect","ownKeys")||function(t){var e=i.f(a(t)),n=c.f;return n?u(e,n(t)):e}},"577e":function(t,e,n){"use strict";var r=n("f5df"),o=String;t.exports=function(t){if("Symbol"===r(t))throw new TypeError("Cannot convert a Symbol value to a string");return o(t)}},5899:function(t,e,n){"use strict";t.exports="\t\n\v\f\r                 \u2028\u2029\ufeff"},"58a8":function(t,e,n){"use strict";var r=n("e330"),o=n("1d80"),i=n("577e"),c=n("5899"),a=r("".replace),u=RegExp("^["+c+"]+"),s=RegExp("(^|[^"+c+"])["+c+"]+$"),f=function(t){return function(e){var n=i(o(e));return 1&t&&(n=a(n,u,"")),2&t&&(n=a(n,s,"$1")),n}};t.exports={start:f(1),end:f(2),trim:f(3)}},5926:function(t,e,n){"use strict";var r=n("b42e");t.exports=function(t){var e=+t;return e!==e||0===e?0:r(e)}},"59ed":function(t,e,n){"use strict";var r=n("1626"),o=n("0d51"),i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not a function")}},"5a34":function(t,e,n){"use strict";var r=n("44e7"),o=TypeError;t.exports=function(t){if(r(t))throw new o("The method doesn't accept regular expressions");return t}},"5b81":function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("e330"),c=n("1d80"),a=n("1626"),u=n("861d"),s=n("44e7"),f=n("577e"),l=n("dc4a"),p=n("90d8"),d=n("0cb2"),h=n("b622"),m=n("c430"),v=h("replace"),b=TypeError,y=i("".indexOf),g=i("".replace),w=i("".slice),T=Math.max;r({target:"String",proto:!0},{replaceAll:function(t,e){var n,r,i,h,x,E,S,O,_,A,R=c(this),N=0,I="";if(u(t)){if(n=s(t),n&&(r=f(c(p(t))),!~y(r,"g")))throw new b("`.replaceAll` does not allow non-global regexes");if(i=l(t,v),i)return o(i,t,R,e);if(m&&n)return g(f(R),t,e)}h=f(R),x=f(t),E=a(e),E||(e=f(e)),S=x.length,O=T(1,S),_=y(h,x);while(-1!==_)A=E?f(e(x,_,h)):d(x,h,_,[],void 0,e),I+=w(h,N,_)+A,N=_+S,_=_+O>h.length?-1:y(h,x,_+O);return Nc){var m,v=l(arguments[c++]),b=p?h(a(v),p(v)):a(v),y=b.length,g=0;while(y>g)m=b[g++],r&&!i(d,v,m)||(n[m]=v[m])}return n}:p},6374:function(t,e,n){"use strict";var r=n("cfe9"),o=Object.defineProperty;t.exports=function(t,e){try{o(r,t,{value:e,configurable:!0,writable:!0})}catch(n){r[t]=e}return e}},6547:function(t,e,n){"use strict";var r=n("e330"),o=n("5926"),i=n("577e"),c=n("1d80"),a=r("".charAt),u=r("".charCodeAt),s=r("".slice),f=function(t){return function(e,n){var r,f,l=i(c(e)),p=o(n),d=l.length;return p<0||p>=d?t?"":void 0:(r=u(l,p),r<55296||r>56319||p+1===d||(f=u(l,p+1))<56320||f>57343?t?a(l,p):r:t?s(l,p,p+2):f-56320+(r-55296<<10)+65536)}};t.exports={codeAt:f(!1),charAt:f(!0)}},"68ee":function(t,e,n){"use strict";var r=n("e330"),o=n("d039"),i=n("1626"),c=n("f5df"),a=n("d066"),u=n("8925"),s=function(){},f=a("Reflect","construct"),l=/^\s*(?:class|function)\b/,p=r(l.exec),d=!l.test(s),h=function(t){if(!i(t))return!1;try{return f(s,[],t),!0}catch(e){return!1}},m=function(t){if(!i(t))return!1;switch(c(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return d||!!p(l,u(t))}catch(e){return!0}};m.sham=!0,t.exports=!f||o((function(){var t;return h(h.call)||!h(Object)||!h((function(){t=!0}))||t}))?m:h},"69f3":function(t,e,n){"use strict";var r,o,i,c=n("cdce"),a=n("cfe9"),u=n("861d"),s=n("9112"),f=n("1a2d"),l=n("c6cd"),p=n("f772"),d=n("d012"),h="Object already initialized",m=a.TypeError,v=a.WeakMap,b=function(t){return i(t)?o(t):r(t,{})},y=function(t){return function(e){var n;if(!u(e)||(n=o(e)).type!==t)throw new m("Incompatible receiver, "+t+" required");return n}};if(c||l.state){var g=l.state||(l.state=new v);g.get=g.get,g.has=g.has,g.set=g.set,r=function(t,e){if(g.has(t))throw new m(h);return e.facade=t,g.set(t,e),e},o=function(t){return g.get(t)||{}},i=function(t){return g.has(t)}}else{var w=p("state");d[w]=!0,r=function(t,e){if(f(t,w))throw new m(h);return e.facade=t,s(t,w,e),e},o=function(t){return f(t,w)?t[w]:{}},i=function(t){return f(t,w)}}t.exports={set:r,get:o,has:i,enforce:b,getterFor:y}},7149:function(t,e,n){"use strict";var r=n("23e7"),o=n("d066"),i=n("c430"),c=n("d256"),a=n("4738").CONSTRUCTOR,u=n("cdf9"),s=o("Promise"),f=i&&!a;r({target:"Promise",stat:!0,forced:i||a},{resolve:function(t){return u(f&&this===s?c:this,t)}})},7234:function(t,e,n){"use strict";t.exports=function(t){return null===t||void 0===t}},7282:function(t,e,n){"use strict";var r=n("e330"),o=n("59ed");t.exports=function(t,e,n){try{return r(o(Object.getOwnPropertyDescriptor(t,e)[n]))}catch(i){}}},7418:function(t,e,n){"use strict";e.f=Object.getOwnPropertySymbols},"772f":function(t,e,n){(function(r){var o,i;(function(r){o=r,i="function"===typeof o?o.call(e,n,e,t):o,void 0===i||(t.exports=i)})((function(){"use strict";function t(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:o}}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 i,c=!0,a=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return c=t.done,t},e:function(t){a=!0,i=t},f:function(){try{c||null==n.return||n.return()}finally{if(a)throw i}}}}function u(){return u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,e,n){var r=h(t,e);if(r){var o=Object.getOwnPropertyDescriptor(r,e);return o.get?o.get.call(arguments.length<3?t:n):o.value}},u.apply(null,arguments)}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function f(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&d(t,e)}function l(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(l=function(){return!!t})()}function p(t,n){if(n&&("object"==typeof n||"function"==typeof n))return n;if(void 0!==n)throw new TypeError("Derived constructors may only return object or undefined");return e(t)}function d(t,e){return d=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},d(t,e)}function h(t,e){for(;!{}.hasOwnProperty.call(t,e)&&null!==(t=s(t)););return t}function m(t,e,n,r){var o=u(s(1&r?t.prototype:t),e,n);return 2&r&&"function"==typeof o?function(t){return o.apply(n,t)}:o}function v(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||"default");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}function b(t){var e=v(t,"string");return"symbol"==typeof e?e:e+""}function y(e,n){if(e){if("string"==typeof e)return t(e,n);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?t(e,n):void 0}}function g(t){var e;try{e=new Event("abort")}catch(n){"undefined"!==typeof document?document.createEvent?(e=document.createEvent("Event"),e.initEvent("abort",!1,!1)):(e=document.createEventObject(),e.type="abort"):e={type:"abort",bubbles:!1,cancelable:!1}}return e.reason=t,e}function w(t){if(void 0===t)if("undefined"===typeof document)t=new Error("This operation was aborted"),t.name="AbortError";else try{t=new DOMException("signal is aborted without reason"),Object.defineProperty(t,"name",{value:"AbortError"})}catch(e){t=new Error("This operation was aborted"),t.name="AbortError"}return t}(function(t){t.AbortSignal,t.AbortController})("undefined"!==typeof self?self:r);var T=function(){function t(){o(this,t),Object.defineProperty(this,"listeners",{value:{},writable:!0,configurable:!0})}return c(t,[{key:"addEventListener",value:function(t,e,n){t in this.listeners||(this.listeners[t]=[]),this.listeners[t].push({callback:e,options:n})}},{key:"removeEventListener",value:function(t,e){if(t in this.listeners)for(var n=this.listeners[t],r=0,o=n.length;r",p="<",d="prototype",h="script",m=f("IE_PROTO"),v=function(){},b=function(t){return p+h+l+t+p+"/"+h+l},y=function(t){t.write(b("")),t.close();var e=t.parentWindow.Object;return t=null,e},g=function(){var t,e=s("iframe"),n="java"+h+":";return e.style.display="none",u.appendChild(e),e.src=String(n),t=e.contentWindow.document,t.open(),t.write(b("document.F=Object")),t.close(),t.F},w=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}w="undefined"!=typeof document?document.domain&&r?y(r):g():y(r);var t=c.length;while(t--)delete w[d][c[t]];return w()};a[m]=!0,t.exports=Object.create||function(t,e){var n;return null!==t?(v[d]=o(t),n=new v,v[d]=null,n[m]=t):n=w(),void 0===e?n:i.f(n,e)}},"825a":function(t,e,n){"use strict";var r=n("861d"),o=String,i=TypeError;t.exports=function(t){if(r(t))return t;throw new i(o(t)+" is not an object")}},"83ab":function(t,e,n){"use strict";var r=n("d039");t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))},8418:function(t,e,n){"use strict";var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=function(t,e,n){r?o.f(t,e,i(0,n)):t[e]=n}},8558:function(t,e,n){"use strict";var r=n("cfe9"),o=n("b5db"),i=n("c6b6"),c=function(t){return o.slice(0,t.length)===t};t.exports=function(){return c("Bun/")?"BUN":c("Cloudflare-Workers")?"CLOUDFLARE":c("Deno/")?"DENO":c("Node.js/")?"NODE":r.Bun&&"string"==typeof Bun.version?"BUN":r.Deno&&"object"==typeof Deno.version?"DENO":"process"===i(r.process)?"NODE":r.window&&r.document?"BROWSER":"REST"}()},"861d":function(t,e,n){"use strict";var r=n("1626");t.exports=function(t){return"object"==typeof t?null!==t:r(t)}},8925:function(t,e,n){"use strict";var r=n("e330"),o=n("1626"),i=n("c6cd"),c=r(Function.toString);o(i.inspectSource)||(i.inspectSource=function(t){return c(t)}),t.exports=i.inspectSource},"8aa5":function(t,e,n){"use strict";var r=n("6547").charAt;t.exports=function(t,e,n){return e+(n?r(t,e).length:1)}},"90d8":function(t,e,n){"use strict";var r=n("c65b"),o=n("1a2d"),i=n("3a9b"),c=n("0f33"),a=n("ad6d"),u=RegExp.prototype;t.exports=c.correct?function(t){return t.flags}:function(t){return c.correct||!i(u,t)||o(t,"flags")?t.flags:r(a,t)}},"90e3":function(t,e,n){"use strict";var r=n("e330"),o=0,i=Math.random(),c=r(1.1.toString);t.exports=function(t){return"Symbol("+(void 0===t?"":t)+")_"+c(++o+i,36)}},9112:function(t,e,n){"use strict";var r=n("83ab"),o=n("9bf2"),i=n("5c6c");t.exports=r?function(t,e,n){return o.f(t,e,i(1,n))}:function(t,e,n){return t[e]=n,t}},9263:function(t,e,n){"use strict";var r=n("c65b"),o=n("e330"),i=n("577e"),c=n("ad6d"),a=n("9f7f"),u=n("5692"),s=n("7c73"),f=n("69f3").get,l=n("fce3"),p=n("107c"),d=u("native-string-replace",String.prototype.replace),h=RegExp.prototype.exec,m=h,v=o("".charAt),b=o("".indexOf),y=o("".replace),g=o("".slice),w=function(){var t=/a/,e=/b*/g;return r(h,t,"a"),r(h,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),T=a.BROKEN_CARET,x=void 0!==/()??/.exec("")[1],E=w||x||T||l||p;E&&(m=function(t){var e,n,o,a,u,l,p,E=this,S=f(E),O=i(t),_=S.raw;if(_)return _.lastIndex=E.lastIndex,e=r(m,_,O),E.lastIndex=_.lastIndex,e;var A=S.groups,R=T&&E.sticky,N=r(c,E),I=E.source,P=0,C=O;if(R&&(N=y(N,"y",""),-1===b(N,"g")&&(N+="g"),C=g(O,E.lastIndex),E.lastIndex>0&&(!E.multiline||E.multiline&&"\n"!==v(O,E.lastIndex-1))&&(I="(?: "+I+")",C=" "+C,P++),n=new RegExp("^(?:"+I+")",N)),x&&(n=new RegExp("^"+I+"$(?!\\s)",N)),w&&(o=E.lastIndex),a=r(h,R?n:E,C),R?a?(a.input=g(a.input,P),a[0]=g(a[0],P),a.index=E.lastIndex,E.lastIndex+=a[0].length):E.lastIndex=0:w&&a&&(E.lastIndex=E.global?a.index+a[0].length:o),x&&a&&a.length>1&&r(d,a[0],n,(function(){for(u=1;u0?o:r)(e)}},b575:function(t,e,n){"use strict";var r,o,i,c,a,u=n("cfe9"),s=n("157a"),f=n("0366"),l=n("2cf4").set,p=n("01b4"),d=n("52c8"),h=n("ebc1"),v=n("ec87"),m=n("9adc"),b=u.MutationObserver||u.WebKitMutationObserver,y=u.document,g=u.process,w=u.Promise,x=s("queueMicrotask");if(!x){var E=new p,T=function(){var t,e;m&&(t=g.domain)&&t.exit();while(e=E.get())try{e()}catch(n){throw E.head&&r(),n}t&&t.enter()};d||m||v||!b||!y?!h&&w&&w.resolve?(c=w.resolve(void 0),c.constructor=w,a=f(c.then,c),r=function(){a(T)}):m?r=function(){g.nextTick(T)}:(l=f(l,u),r=function(){l(T)}):(o=!0,i=y.createTextNode(""),new b(T).observe(i,{characterData:!0}),r=function(){i.data=o=!o}),x=function(t){E.head||r(),E.add(t)}}t.exports=x},b5db:function(t,e,n){"use strict";var r=n("cfe9"),o=r.navigator,i=o&&o.userAgent;t.exports=i?String(i):""},b622:function(t,e,n){"use strict";var r=n("cfe9"),o=n("5692"),i=n("1a2d"),c=n("90e3"),a=n("04f8"),u=n("fdbf"),s=r.Symbol,f=o("wks"),l=u?s["for"]||s:s&&s.withoutSetter||c;t.exports=function(t){return i(f,t)||(f[t]=a&&i(s,t)?s[t]:l("Symbol."+t)),f[t]}},c04e:function(t,e,n){"use strict";var r=n("c65b"),o=n("861d"),i=n("d9b5"),c=n("dc4a"),a=n("485a"),u=n("b622"),s=TypeError,f=u("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,u=c(t,f);if(u){if(void 0===e&&(e="default"),n=r(u,t,e),!o(n)||i(n))return n;throw new s("Can't convert object to primitive value")}return void 0===e&&(e="number"),a(t,e)}},c0c4:function(t,e,n){ -/*! @license DOMPurify 3.4.0 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.0/LICENSE */ -(function(e,n){t.exports=n()})(0,(function(){"use strict";const{entries:t,setPrototypeOf:e,isFrozen:n,getPrototypeOf:r,getOwnPropertyDescriptor:o}=Object;let{freeze:i,seal:c,create:a}=Object,{apply:u,construct:s}="undefined"!==typeof Reflect&&Reflect;i||(i=function(t){return t}),c||(c=function(t){return t}),u||(u=function(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o1?e-1:0),r=1;r1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:v;e&&e(t,null);let i=r.length;while(i--){let e=r[i];if("string"===typeof e){const t=o(e);t!==e&&(n(r)||(r[i]=t),e=t)}t[e]=!0}return t}function A(t){for(let e=0;e/gm),G=c(/\$\{[\w\W]*/gm),W=c(/^data-[\-\w.\u00B7-\uFFFF]+$/),Y=c(/^aria-[\-\w]+$/),$=c(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),V=c(/^(?:\w+script|data):/i),q=c(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),X=c(/^html$/i),K=c(/^[a-z][.\w]*(-[.\w]+)+$/i);var J=Object.freeze({__proto__:null,ARIA_ATTR:Y,ATTR_WHITESPACE:q,CUSTOM_ELEMENT:K,DATA_ATTR:W,DOCTYPE_NAME:X,ERB_EXPR:B,IS_ALLOWED_URI:$,IS_SCRIPT_OR_DATA:V,MUSTACHE_EXPR:H,TMPLIT_EXPR:G});const Z={element:1,text:3,progressingInstruction:7,comment:8,document:9},Q=function(){return"undefined"===typeof window?null:window},tt=function(t,e){if("object"!==typeof t||"function"!==typeof t.createPolicy)return null;let n=null;const r="data-tt-policy-suffix";e&&e.hasAttribute(r)&&(n=e.getAttribute(r));const o="dompurify"+(n?"#"+n:"");try{return t.createPolicy(o,{createHTML(t){return t},createScriptURL(t){return t}})}catch(i){return console.warn("TrustedTypes policy "+o+" could not be created."),null}},et=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function nt(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Q();const n=t=>nt(t);if(n.version="3.4.0",n.removed=[],!e||!e.document||e.document.nodeType!==Z.document||!e.Element)return n.isSupported=!1,n;let{document:r}=e;const o=r,c=o.currentScript,{DocumentFragment:u,HTMLTemplateElement:s,Node:O,Element:S,NodeFilter:A,NamedNodeMap:H=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:B,DOMParser:G,trustedTypes:W}=e,Y=S.prototype,V=N(Y,"cloneNode"),q=N(Y,"remove"),K=N(Y,"nextSibling"),rt=N(Y,"childNodes"),ot=N(Y,"parentNode");if("function"===typeof s){const t=r.createElement("template");t.content&&t.content.ownerDocument&&(r=t.content.ownerDocument)}let it,ct="";const{implementation:at,createNodeIterator:ut,createDocumentFragment:st,getElementsByTagName:ft}=r,{importNode:lt}=o;let pt=et();n.isSupported="function"===typeof t&&"function"===typeof ot&&at&&void 0!==at.createHTMLDocument;const{MUSTACHE_EXPR:dt,ERB_EXPR:ht,TMPLIT_EXPR:vt,DATA_ATTR:mt,ARIA_ATTR:bt,IS_SCRIPT_OR_DATA:yt,ATTR_WHITESPACE:gt,CUSTOM_ELEMENT:wt}=J;let{IS_ALLOWED_URI:xt}=J,Et=null;const Tt=_({},[...C,...P,...I,...k,...D]);let Ot=null;const St=_({},[...M,...U,...F,...z]);let _t=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),At=null,Rt=null;const Nt=Object.seal(a(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Ct=!0,Pt=!0,It=!1,Lt=!0,kt=!1,jt=!0,Dt=!1,Mt=!1,Ut=!1,Ft=!1,zt=!1,Ht=!1,Bt=!0,Gt=!1;const Wt="user-content-";let Yt=!0,$t=!1,Vt={},qt=null;const Xt=_({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Kt=null;const Jt=_({},["audio","video","img","source","image","track"]);let Zt=null;const Qt=_({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),te="http://www.w3.org/1998/Math/MathML",ee="http://www.w3.org/2000/svg",ne="http://www.w3.org/1999/xhtml";let re=ne,oe=!1,ie=null;const ce=_({},[te,ee,ne],m);let ae=_({},["mi","mo","mn","ms","mtext"]),ue=_({},["annotation-xml"]);const se=_({},["title","style","font","a","script"]);let fe=null;const le=["application/xhtml+xml","text/html"],pe="text/html";let de=null,he=null;const ve=r.createElement("form"),me=function(t){return t instanceof RegExp||t instanceof Function},be=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!he||he!==t){if(t&&"object"===typeof t||(t={}),t=R(t),fe=-1===le.indexOf(t.PARSER_MEDIA_TYPE)?pe:t.PARSER_MEDIA_TYPE,de="application/xhtml+xml"===fe?m:v,Et=x(t,"ALLOWED_TAGS")?_({},t.ALLOWED_TAGS,de):Tt,Ot=x(t,"ALLOWED_ATTR")?_({},t.ALLOWED_ATTR,de):St,ie=x(t,"ALLOWED_NAMESPACES")?_({},t.ALLOWED_NAMESPACES,m):ce,Zt=x(t,"ADD_URI_SAFE_ATTR")?_(R(Qt),t.ADD_URI_SAFE_ATTR,de):Qt,Kt=x(t,"ADD_DATA_URI_TAGS")?_(R(Jt),t.ADD_DATA_URI_TAGS,de):Jt,qt=x(t,"FORBID_CONTENTS")?_({},t.FORBID_CONTENTS,de):Xt,At=x(t,"FORBID_TAGS")?_({},t.FORBID_TAGS,de):R({}),Rt=x(t,"FORBID_ATTR")?_({},t.FORBID_ATTR,de):R({}),Vt=!!x(t,"USE_PROFILES")&&t.USE_PROFILES,Ct=!1!==t.ALLOW_ARIA_ATTR,Pt=!1!==t.ALLOW_DATA_ATTR,It=t.ALLOW_UNKNOWN_PROTOCOLS||!1,Lt=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,kt=t.SAFE_FOR_TEMPLATES||!1,jt=!1!==t.SAFE_FOR_XML,Dt=t.WHOLE_DOCUMENT||!1,Ft=t.RETURN_DOM||!1,zt=t.RETURN_DOM_FRAGMENT||!1,Ht=t.RETURN_TRUSTED_TYPE||!1,Ut=t.FORCE_BODY||!1,Bt=!1!==t.SANITIZE_DOM,Gt=t.SANITIZE_NAMED_PROPS||!1,Yt=!1!==t.KEEP_CONTENT,$t=t.IN_PLACE||!1,xt=t.ALLOWED_URI_REGEXP||$,re=t.NAMESPACE||ne,ae=t.MATHML_TEXT_INTEGRATION_POINTS||ae,ue=t.HTML_INTEGRATION_POINTS||ue,_t=t.CUSTOM_ELEMENT_HANDLING||a(null),t.CUSTOM_ELEMENT_HANDLING&&me(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(_t.tagNameCheck=t.CUSTOM_ELEMENT_HANDLING.tagNameCheck),t.CUSTOM_ELEMENT_HANDLING&&me(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(_t.attributeNameCheck=t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),t.CUSTOM_ELEMENT_HANDLING&&"boolean"===typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(_t.allowCustomizedBuiltInElements=t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),kt&&(Pt=!1),zt&&(Ft=!0),Vt&&(Et=_({},D),Ot=a(null),!0===Vt.html&&(_(Et,C),_(Ot,M)),!0===Vt.svg&&(_(Et,P),_(Ot,U),_(Ot,z)),!0===Vt.svgFilters&&(_(Et,I),_(Ot,U),_(Ot,z)),!0===Vt.mathMl&&(_(Et,k),_(Ot,F),_(Ot,z))),Nt.tagCheck=null,Nt.attributeCheck=null,t.ADD_TAGS&&("function"===typeof t.ADD_TAGS?Nt.tagCheck=t.ADD_TAGS:(Et===Tt&&(Et=R(Et)),_(Et,t.ADD_TAGS,de))),t.ADD_ATTR&&("function"===typeof t.ADD_ATTR?Nt.attributeCheck=t.ADD_ATTR:(Ot===St&&(Ot=R(Ot)),_(Ot,t.ADD_ATTR,de))),t.ADD_URI_SAFE_ATTR&&_(Zt,t.ADD_URI_SAFE_ATTR,de),t.FORBID_CONTENTS&&(qt===Xt&&(qt=R(qt)),_(qt,t.FORBID_CONTENTS,de)),t.ADD_FORBID_CONTENTS&&(qt===Xt&&(qt=R(qt)),_(qt,t.ADD_FORBID_CONTENTS,de)),Yt&&(Et["#text"]=!0),Dt&&_(Et,["html","head","body"]),Et.table&&(_(Et,["tbody"]),delete At.tbody),t.TRUSTED_TYPES_POLICY){if("function"!==typeof t.TRUSTED_TYPES_POLICY.createHTML)throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!==typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw T('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');it=t.TRUSTED_TYPES_POLICY,ct=it.createHTML("")}else void 0===it&&(it=tt(W,c)),null!==it&&"string"===typeof ct&&(ct=it.createHTML(""));i&&i(t),he=t}},ye=_({},[...P,...I,...L]),ge=_({},[...k,...j]),we=function(t){let e=ot(t);e&&e.tagName||(e={namespaceURI:re,tagName:"template"});const n=v(t.tagName),r=v(e.tagName);return!!ie[t.namespaceURI]&&(t.namespaceURI===ee?e.namespaceURI===ne?"svg"===n:e.namespaceURI===te?"svg"===n&&("annotation-xml"===r||ae[r]):Boolean(ye[n]):t.namespaceURI===te?e.namespaceURI===ne?"math"===n:e.namespaceURI===ee?"math"===n&&ue[r]:Boolean(ge[n]):t.namespaceURI===ne?!(e.namespaceURI===ee&&!ue[r])&&(!(e.namespaceURI===te&&!ae[r])&&(!ge[n]&&(se[n]||!ye[n]))):!("application/xhtml+xml"!==fe||!ie[t.namespaceURI]))},xe=function(t){d(n.removed,{element:t});try{ot(t).removeChild(t)}catch(e){q(t)}},Ee=function(t,e){try{d(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(r){d(n.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t)if(Ft||zt)try{xe(e)}catch(r){}else try{e.setAttribute(t,"")}catch(r){}},Te=function(t){let e=null,n=null;if(Ut)t=""+t;else{const e=b(t,/^[\r\n\t ]+/);n=e&&e[0]}"application/xhtml+xml"===fe&&re===ne&&(t=''+t+"");const o=it?it.createHTML(t):t;if(re===ne)try{e=(new G).parseFromString(o,fe)}catch(c){}if(!e||!e.documentElement){e=at.createDocument(re,"template",null);try{e.documentElement.innerHTML=oe?ct:o}catch(c){}}const i=e.body||e.documentElement;return t&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),re===ne?ft.call(e,Dt?"html":"body")[0]:Dt?e.documentElement:i},Oe=function(t){return ut.call(t.ownerDocument||t,t,A.SHOW_ELEMENT|A.SHOW_COMMENT|A.SHOW_TEXT|A.SHOW_PROCESSING_INSTRUCTION|A.SHOW_CDATA_SECTION,null)},Se=function(t){return t instanceof B&&("string"!==typeof t.nodeName||"string"!==typeof t.textContent||"function"!==typeof t.removeChild||!(t.attributes instanceof H)||"function"!==typeof t.removeAttribute||"function"!==typeof t.setAttribute||"string"!==typeof t.namespaceURI||"function"!==typeof t.insertBefore||"function"!==typeof t.hasChildNodes)},_e=function(t){return"function"===typeof O&&t instanceof O};function Ae(t,e,r){f(t,t=>{t.call(n,e,r,he)})}const Re=function(t){let e=null;if(Ae(pt.beforeSanitizeElements,t,null),Se(t))return xe(t),!0;const r=de(t.nodeName);if(Ae(pt.uponSanitizeElement,t,{tagName:r,allowedTags:Et}),jt&&t.hasChildNodes()&&!_e(t.firstElementChild)&&E(/<[/\w!]/g,t.innerHTML)&&E(/<[/\w!]/g,t.textContent))return xe(t),!0;if(jt&&t.namespaceURI===ne&&"style"===r&&_e(t.firstElementChild))return xe(t),!0;if(t.nodeType===Z.progressingInstruction)return xe(t),!0;if(jt&&t.nodeType===Z.comment&&E(/<[/\w]/g,t.data))return xe(t),!0;if(At[r]||!(Nt.tagCheck instanceof Function&&Nt.tagCheck(r))&&!Et[r]){if(!At[r]&&Ce(r)){if(_t.tagNameCheck instanceof RegExp&&E(_t.tagNameCheck,r))return!1;if(_t.tagNameCheck instanceof Function&&_t.tagNameCheck(r))return!1}if(Yt&&!qt[r]){const e=ot(t)||t.parentNode,n=rt(t)||t.childNodes;if(n&&e){const r=n.length;for(let o=r-1;o>=0;--o){const r=V(n[o],!0);r.__removalCount=(t.__removalCount||0)+1,e.insertBefore(r,K(t))}}}return xe(t),!0}return t instanceof S&&!we(t)?(xe(t),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!E(/<\/no(script|embed|frames)/i,t.innerHTML)?(kt&&t.nodeType===Z.text&&(e=t.textContent,f([dt,ht,vt],t=>{e=y(e,t," ")}),t.textContent!==e&&(d(n.removed,{element:t.cloneNode()}),t.textContent=e)),Ae(pt.afterSanitizeElements,t,null),!1):(xe(t),!0)},Ne=function(t,e,n){if(Rt[e])return!1;if(Bt&&("id"===e||"name"===e)&&(n in r||n in ve))return!1;if(Pt&&!Rt[e]&&E(mt,e));else if(Ct&&E(bt,e));else if(Nt.attributeCheck instanceof Function&&Nt.attributeCheck(e,t));else if(!Ot[e]||Rt[e]){if(!(Ce(t)&&(_t.tagNameCheck instanceof RegExp&&E(_t.tagNameCheck,t)||_t.tagNameCheck instanceof Function&&_t.tagNameCheck(t))&&(_t.attributeNameCheck instanceof RegExp&&E(_t.attributeNameCheck,e)||_t.attributeNameCheck instanceof Function&&_t.attributeNameCheck(e,t))||"is"===e&&_t.allowCustomizedBuiltInElements&&(_t.tagNameCheck instanceof RegExp&&E(_t.tagNameCheck,n)||_t.tagNameCheck instanceof Function&&_t.tagNameCheck(n))))return!1}else if(Zt[e]);else if(E(xt,y(n,gt,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==g(n,"data:")||!Kt[t]){if(It&&!E(yt,y(n,gt,"")));else if(n)return!1}else;return!0},Ce=function(t){return"annotation-xml"!==t&&b(t,wt)},Pe=function(t){Ae(pt.beforeSanitizeAttributes,t,null);const{attributes:e}=t;if(!e||Se(t))return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:Ot,forceKeepAttr:void 0};let o=e.length;while(o--){const c=e[o],{name:a,namespaceURI:u,value:s}=c,l=de(a),d=s;let h="value"===a?d:w(d);if(r.attrName=l,r.attrValue=h,r.keepAttr=!0,r.forceKeepAttr=void 0,Ae(pt.uponSanitizeAttribute,t,r),h=r.attrValue,!Gt||"id"!==l&&"name"!==l||(Ee(a,t),h=Wt+h),jt&&E(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,h)){Ee(a,t);continue}if("attributename"===l&&b(h,"href")){Ee(a,t);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){Ee(a,t);continue}if(!Lt&&E(/\/>/i,h)){Ee(a,t);continue}kt&&f([dt,ht,vt],t=>{h=y(h,t," ")});const v=de(t.nodeName);if(Ne(v,l,h)){if(it&&"object"===typeof W&&"function"===typeof W.getAttributeType)if(u);else switch(W.getAttributeType(v,l)){case"TrustedHTML":h=it.createHTML(h);break;case"TrustedScriptURL":h=it.createScriptURL(h);break}if(h!==d)try{u?t.setAttributeNS(u,a,h):t.setAttribute(a,h),Se(t)?xe(t):p(n.removed)}catch(i){Ee(a,t)}}else Ee(a,t)}Ae(pt.afterSanitizeAttributes,t,null)},Ie=function(t){let e=null;const n=Oe(t);Ae(pt.beforeSanitizeShadowDOM,t,null);while(e=n.nextNode())Ae(pt.uponSanitizeShadowNode,e,null),Re(e),Pe(e),e.content instanceof u&&Ie(e.content);Ae(pt.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,i=null,c=null,a=null;if(oe=!t,oe&&(t="\x3c!--\x3e"),"string"!==typeof t&&!_e(t)){if("function"!==typeof t.toString)throw T("toString is not a function");if(t=t.toString(),"string"!==typeof t)throw T("dirty is not a string, aborting")}if(!n.isSupported)return t;if(Mt||be(e),n.removed=[],"string"===typeof t&&($t=!1),$t){if(t.nodeName){const e=de(t.nodeName);if(!Et[e]||At[e])throw T("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof O)r=Te("\x3c!----\x3e"),i=r.ownerDocument.importNode(t,!0),i.nodeType===Z.element&&"BODY"===i.nodeName||"HTML"===i.nodeName?r=i:r.appendChild(i);else{if(!Ft&&!kt&&!Dt&&-1===t.indexOf("<"))return it&&Ht?it.createHTML(t):t;if(r=Te(t),!r)return Ft?null:Ht?ct:""}r&&Ut&&xe(r.firstChild);const s=Oe($t?t:r);while(c=s.nextNode())Re(c),Pe(c),c.content instanceof u&&Ie(c.content);if($t)return t;if(Ft){if(kt){r.normalize();let t=r.innerHTML;f([dt,ht,vt],e=>{t=y(t,e," ")}),r.innerHTML=t}if(zt){a=st.call(r.ownerDocument);while(r.firstChild)a.appendChild(r.firstChild)}else a=r;return(Ot.shadowroot||Ot.shadowrootmode)&&(a=lt.call(o,a,!0)),a}let l=Dt?r.outerHTML:r.innerHTML;return Dt&&Et["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&E(X,r.ownerDocument.doctype.name)&&(l="\n"+l),kt&&f([dt,ht,vt],t=>{l=y(l,t," ")}),it&&Ht?it.createHTML(l):l},n.setConfig=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};be(t),Mt=!0},n.clearConfig=function(){he=null,Mt=!1},n.isValidAttribute=function(t,e,n){he||be({});const r=de(t),o=de(e);return Ne(r,o,n)},n.addHook=function(t,e){"function"===typeof e&&d(pt[t],e)},n.removeHook=function(t,e){if(void 0!==e){const n=l(pt[t],e);return-1===n?void 0:h(pt[t],n,1)[0]}return p(pt[t])},n.removeHooks=function(t){pt[t]=[]},n.removeAllHooks=function(){pt=et()},n}var rt=nt();return rt}))},c1f9:function(t,e,n){"use strict";var r=n("23e7"),o=n("2266"),i=n("8418");r({target:"Object",stat:!0},{fromEntries:function(t){var e={};return o(t,(function(t,n){i(e,t,n)}),{AS_ENTRIES:!0}),e}})},c430:function(t,e,n){"use strict";t.exports=!1},c65b:function(t,e,n){"use strict";var r=n("40d5"),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},c6b6:function(t,e,n){"use strict";var r=n("e330"),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},c6cd:function(t,e,n){"use strict";var r=n("c430"),o=n("cfe9"),i=n("6374"),c="__core-js_shared__",a=t.exports=o[c]||i(c,{});(a.versions||(a.versions=[])).push({version:"3.47.0",mode:r?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.47.0/LICENSE",source:"https://github.com/zloirock/core-js"})},c6d2:function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("c430"),c=n("5e77"),a=n("1626"),u=n("dcc3"),s=n("e163"),f=n("d2bb"),l=n("d44e"),p=n("9112"),d=n("cb2d"),h=n("b622"),v=n("3f8c"),m=n("ae93"),b=c.PROPER,y=c.CONFIGURABLE,g=m.IteratorPrototype,w=m.BUGGY_SAFARI_ITERATORS,x=h("iterator"),E="keys",T="values",O="entries",S=function(){return this};t.exports=function(t,e,n,c,h,m,_){u(n,e,c);var A,R,N,C=function(t){if(t===h&&j)return j;if(!w&&t&&t in L)return L[t];switch(t){case E:return function(){return new n(this,t)};case T:return function(){return new n(this,t)};case O:return function(){return new n(this,t)}}return function(){return new n(this)}},P=e+" Iterator",I=!1,L=t.prototype,k=L[x]||L["@@iterator"]||h&&L[h],j=!w&&k||C(h),D="Array"===e&&L.entries||k;if(D&&(A=s(D.call(new t)),A!==Object.prototype&&A.next&&(i||s(A)===g||(f?f(A,g):a(A[x])||d(A,x,S)),l(A,P,!0,!0),i&&(v[P]=S))),b&&h===T&&k&&k.name!==T&&(!i&&y?p(L,"name",T):(I=!0,j=function(){return o(k,this)})),h)if(R={values:C(T),keys:m?j:C(E),entries:C(O)},_)for(N in R)(w||I||!(N in L))&&d(L,N,R[N]);else r({target:e,proto:!0,forced:w||I},R);return i&&!_||L[x]===j||d(L,x,j,{name:h}),v[e]=j,R}},c8d2:function(t,e,n){"use strict";var r=n("5e77").PROPER,o=n("d039"),i=n("5899"),c="​…᠎";t.exports=function(t){return o((function(){return!!i[t]()||c[t]()!==c||r&&i[t].name!==t}))}},ca84:function(t,e,n){"use strict";var r=n("e330"),o=n("1a2d"),i=n("fc6a"),c=n("4d64").indexOf,a=n("d012"),u=r([].push);t.exports=function(t,e){var n,r=i(t),s=0,f=[];for(n in r)!o(a,n)&&o(r,n)&&u(f,n);while(e.length>s)o(r,n=e[s++])&&(~c(f,n)||u(f,n));return f}},cb2d:function(t,e,n){"use strict";var r=n("1626"),o=n("9bf2"),i=n("13d2"),c=n("6374");t.exports=function(t,e,n,a){a||(a={});var u=a.enumerable,s=void 0!==a.name?a.name:e;if(r(n)&&i(n,s,a),a.global)u?t[e]=n:c(e,n);else{try{a.unsafe?t[e]&&(u=!0):delete t[e]}catch(f){}u?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},cc12:function(t,e,n){"use strict";var r=n("cfe9"),o=n("861d"),i=r.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},cc98:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("4738").CONSTRUCTOR,c=n("d256"),a=n("d066"),u=n("1626"),s=n("cb2d"),f=c&&c.prototype;if(r({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(t){return this.then(void 0,t)}}),!o&&u(c)){var l=a("Promise").prototype["catch"];f["catch"]!==l&&s(f,"catch",l,{unsafe:!0})}},cca6:function(t,e,n){"use strict";var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},cdce:function(t,e,n){"use strict";var r=n("cfe9"),o=n("1626"),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},cdf9:function(t,e,n){"use strict";var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),c=n.resolve;return c(e),n.promise}},cfe9:function(t,e,n){"use strict";(function(e){var n=function(t){return t&&t.Math===Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()}).call(this,n("24aa"))},d012:function(t,e,n){"use strict";t.exports={}},d039:function(t,e,n){"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){"use strict";var r=n("cfe9"),o=n("1626"),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t]):r[t]&&r[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d256:function(t,e,n){"use strict";var r=n("cfe9");t.exports=r.Promise},d2bb:function(t,e,n){"use strict";var r=n("7282"),o=n("861d"),i=n("1d80"),c=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=r(Object.prototype,"__proto__","set"),t(n,[]),e=n instanceof Array}catch(a){}return function(n,r){return i(n),c(r),o(n)?(e?t(n,r):n.__proto__=r,n):n}}():void 0)},d44e:function(t,e,n){"use strict";var r=n("9bf2").f,o=n("1a2d"),i=n("b622"),c=i("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!o(t,c)&&r(t,c,{configurable:!0,value:e})}},d58f:function(t,e,n){"use strict";var r=n("59ed"),o=n("7b0b"),i=n("44ad"),c=n("07fa"),a=TypeError,u="Reduce of empty array with no initial value",s=function(t){return function(e,n,s,f){var l=o(e),p=i(l),d=c(l);if(r(n),0===d&&s<2)throw new a(u);var h=t?d-1:0,v=t?-1:1;if(s<2)while(1){if(h in p){f=p[h],h+=v;break}if(h+=v,t?h<0:d<=h)throw new a(u)}for(;t?h>=0:d>h;h+=v)h in p&&(f=n(f,p[h],h,l));return f}};t.exports={left:s(!1),right:s(!0)}},d6d6:function(t,e,n){"use strict";var r=TypeError;t.exports=function(t,e){if(t=e.length)return t.target=null,s(void 0,!0);switch(t.kind){case"keys":return s(n,!1);case"values":return s(e[n],!1)}return s([n,e[n]],!1)}),"values");var v=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!f&&l&&"values"!==v.name)try{a(v,"name",{value:"values"})}catch(m){}},e330:function(t,e,n){"use strict";var r=n("40d5"),o=Function.prototype,i=o.call,c=r&&o.bind.bind(i,i);t.exports=r?c:function(t){return function(){return i.apply(t,arguments)}}},e667:function(t,e,n){"use strict";t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";n("5e7e"),n("14e5"),n("cc98"),n("3529"),n("f22b"),n("7149")},e893:function(t,e,n){"use strict";var r=n("1a2d"),o=n("56ef"),i=n("06cf"),c=n("9bf2");t.exports=function(t,e,n){for(var a=o(e),u=c.f,s=i.f,f=0;f0?o:r)(e)}},b575:function(t,e,n){"use strict";var r,o,i,c,a,u=n("cfe9"),s=n("157a"),f=n("0366"),l=n("2cf4").set,p=n("01b4"),d=n("52c8"),h=n("ebc1"),m=n("ec87"),v=n("9adc"),b=u.MutationObserver||u.WebKitMutationObserver,y=u.document,g=u.process,w=u.Promise,T=s("queueMicrotask");if(!T){var x=new p,E=function(){var t,e;v&&(t=g.domain)&&t.exit();while(e=x.get())try{e()}catch(n){throw x.head&&r(),n}t&&t.enter()};d||v||m||!b||!y?!h&&w&&w.resolve?(c=w.resolve(void 0),c.constructor=w,a=f(c.then,c),r=function(){a(E)}):v?r=function(){g.nextTick(E)}:(l=f(l,u),r=function(){l(E)}):(o=!0,i=y.createTextNode(""),new b(E).observe(i,{characterData:!0}),r=function(){i.data=o=!o}),T=function(t){x.head||r(),x.add(t)}}t.exports=T},b5db:function(t,e,n){"use strict";var r=n("cfe9"),o=r.navigator,i=o&&o.userAgent;t.exports=i?String(i):""},b622:function(t,e,n){"use strict";var r=n("cfe9"),o=n("5692"),i=n("1a2d"),c=n("90e3"),a=n("04f8"),u=n("fdbf"),s=r.Symbol,f=o("wks"),l=u?s["for"]||s:s&&s.withoutSetter||c;t.exports=function(t){return i(f,t)||(f[t]=a&&i(s,t)?s[t]:l("Symbol."+t)),f[t]}},c04e:function(t,e,n){"use strict";var r=n("c65b"),o=n("861d"),i=n("d9b5"),c=n("dc4a"),a=n("485a"),u=n("b622"),s=TypeError,f=u("toPrimitive");t.exports=function(t,e){if(!o(t)||i(t))return t;var n,u=c(t,f);if(u){if(void 0===e&&(e="default"),n=r(u,t,e),!o(n)||i(n))return n;throw new s("Can't convert object to primitive value")}return void 0===e&&(e="number"),a(t,e)}},c0c4:function(t,e,n){ +/*! @license DOMPurify 3.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.4.1/LICENSE */ +(function(e,n){t.exports=n()})(0,(function(){"use strict";const{entries:t,setPrototypeOf:e,isFrozen:n,getPrototypeOf:r,getOwnPropertyDescriptor:o}=Object;let{freeze:i,seal:c,create:a}=Object,{apply:u,construct:s}="undefined"!==typeof Reflect&&Reflect;i||(i=function(t){return t}),c||(c=function(t){return t}),u||(u=function(t,e){for(var n=arguments.length,r=new Array(n>2?n-2:0),o=2;o1?e-1:0),r=1;r1?n-1:0),o=1;o2&&void 0!==arguments[2]?arguments[2]:v;if(e&&e(t,null),!m(r))return t;let i=r.length;while(i--){let e=r[i];if("string"===typeof e){const t=o(e);t!==e&&(n(r)||(r[i]=t),e=t)}t[e]=!0}return t}function L(t){for(let e=0;e/gm),J=c(/\$\{[\w\W]*/gm),Z=c(/^data-[\-\w.\u00B7-\uFFFF]+$/),Q=c(/^aria-[\-\w]+$/),tt=c(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),et=c(/^(?:\w+script|data):/i),nt=c(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),rt=c(/^html$/i),ot=c(/^[a-z][.\w]*(-[.\w]+)+$/i);var it=Object.freeze({__proto__:null,ARIA_ATTR:Q,ATTR_WHITESPACE:nt,CUSTOM_ELEMENT:ot,DATA_ATTR:Z,DOCTYPE_NAME:rt,ERB_EXPR:K,IS_ALLOWED_URI:tt,IS_SCRIPT_OR_DATA:et,MUSTACHE_EXPR:q,TMPLIT_EXPR:J});const ct={element:1,text:3,progressingInstruction:7,comment:8,document:9},at=function(){return"undefined"===typeof window?null:window},ut=function(t,e){if("object"!==typeof t||"function"!==typeof t.createPolicy)return null;let n=null;const r="data-tt-policy-suffix";e&&e.hasAttribute(r)&&(n=e.getAttribute(r));const o="dompurify"+(n?"#"+n:"");try{return t.createPolicy(o,{createHTML(t){return t},createScriptURL(t){return t}})}catch(i){return console.warn("TrustedTypes policy "+o+" could not be created."),null}},st=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function ft(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:at();const n=t=>ft(t);if(n.version="3.4.1",n.removed=[],!e||!e.document||e.document.nodeType!==ct.document||!e.Element)return n.isSupported=!1,n;let{document:r}=e;const o=r,c=o.currentScript,{DocumentFragment:u,HTMLTemplateElement:s,Node:x,Element:E,NodeFilter:S,NamedNodeMap:O=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:A,DOMParser:I,trustedTypes:P}=e,L=E.prototype,q=j(L,"cloneNode"),K=j(L,"remove"),J=j(L,"nextSibling"),Z=j(L,"childNodes"),Q=j(L,"parentNode");if("function"===typeof s){const t=r.createElement("template");t.content&&t.content.ownerDocument&&(r=t.content.ownerDocument)}let et,nt="";const{implementation:ot,createNodeIterator:lt,createDocumentFragment:pt,getElementsByTagName:dt}=r,{importNode:ht}=o;let mt=st();n.isSupported="function"===typeof t&&"function"===typeof Q&&ot&&void 0!==ot.createHTMLDocument;const{MUSTACHE_EXPR:vt,ERB_EXPR:bt,TMPLIT_EXPR:yt,DATA_ATTR:gt,ARIA_ATTR:wt,IS_SCRIPT_OR_DATA:Tt,ATTR_WHITESPACE:xt,CUSTOM_ELEMENT:Et}=it;let{IS_ALLOWED_URI:St}=it,Ot=null;const _t=C({},[...F,...U,...B,...G,...W]);let At=null;const Rt=C({},[...Y,...$,...X,...V]);let Nt=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),It=null,Pt=null;const Ct=Object.seal(a(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Lt=!0,Dt=!0,kt=!1,jt=!0,Mt=!1,Ft=!0,Ut=!1,Bt=!1,zt=!1,Gt=!1,Ht=!1,Wt=!1,Yt=!0,$t=!1;const Xt="user-content-";let Vt=!0,qt=!1,Kt={},Jt=null;const Zt=C({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Qt=null;const te=C({},["audio","video","img","source","image","track"]);let ee=null;const ne=C({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),re="http://www.w3.org/1998/Math/MathML",oe="http://www.w3.org/2000/svg",ie="http://www.w3.org/1999/xhtml";let ce=ie,ae=!1,ue=null;const se=C({},[re,oe,ie],b);let fe=C({},["mi","mo","mn","ms","mtext"]),le=C({},["annotation-xml"]);const pe=C({},["title","style","font","a","script"]);let de=null;const he=["application/xhtml+xml","text/html"],me="text/html";let ve=null,be=null;const ye=r.createElement("form"),ge=function(t){return t instanceof RegExp||t instanceof Function},we=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(be&&be===t)return;t&&"object"===typeof t||(t={}),t=D(t),de=-1===he.indexOf(t.PARSER_MEDIA_TYPE)?me:t.PARSER_MEDIA_TYPE,ve="application/xhtml+xml"===de?b:v,Ot=_(t,"ALLOWED_TAGS")&&m(t.ALLOWED_TAGS)?C({},t.ALLOWED_TAGS,ve):_t,At=_(t,"ALLOWED_ATTR")&&m(t.ALLOWED_ATTR)?C({},t.ALLOWED_ATTR,ve):Rt,ue=_(t,"ALLOWED_NAMESPACES")&&m(t.ALLOWED_NAMESPACES)?C({},t.ALLOWED_NAMESPACES,b):se,ee=_(t,"ADD_URI_SAFE_ATTR")&&m(t.ADD_URI_SAFE_ATTR)?C(D(ne),t.ADD_URI_SAFE_ATTR,ve):ne,Qt=_(t,"ADD_DATA_URI_TAGS")&&m(t.ADD_DATA_URI_TAGS)?C(D(te),t.ADD_DATA_URI_TAGS,ve):te,Jt=_(t,"FORBID_CONTENTS")&&m(t.FORBID_CONTENTS)?C({},t.FORBID_CONTENTS,ve):Zt,It=_(t,"FORBID_TAGS")&&m(t.FORBID_TAGS)?C({},t.FORBID_TAGS,ve):D({}),Pt=_(t,"FORBID_ATTR")&&m(t.FORBID_ATTR)?C({},t.FORBID_ATTR,ve):D({}),Kt=!!_(t,"USE_PROFILES")&&(t.USE_PROFILES&&"object"===typeof t.USE_PROFILES?D(t.USE_PROFILES):t.USE_PROFILES),Lt=!1!==t.ALLOW_ARIA_ATTR,Dt=!1!==t.ALLOW_DATA_ATTR,kt=t.ALLOW_UNKNOWN_PROTOCOLS||!1,jt=!1!==t.ALLOW_SELF_CLOSE_IN_ATTR,Mt=t.SAFE_FOR_TEMPLATES||!1,Ft=!1!==t.SAFE_FOR_XML,Ut=t.WHOLE_DOCUMENT||!1,Gt=t.RETURN_DOM||!1,Ht=t.RETURN_DOM_FRAGMENT||!1,Wt=t.RETURN_TRUSTED_TYPE||!1,zt=t.FORCE_BODY||!1,Yt=!1!==t.SANITIZE_DOM,$t=t.SANITIZE_NAMED_PROPS||!1,Vt=!1!==t.KEEP_CONTENT,qt=t.IN_PLACE||!1,St=M(t.ALLOWED_URI_REGEXP)?t.ALLOWED_URI_REGEXP:tt,ce="string"===typeof t.NAMESPACE?t.NAMESPACE:ie,fe=_(t,"MATHML_TEXT_INTEGRATION_POINTS")&&t.MATHML_TEXT_INTEGRATION_POINTS&&"object"===typeof t.MATHML_TEXT_INTEGRATION_POINTS?D(t.MATHML_TEXT_INTEGRATION_POINTS):C({},["mi","mo","mn","ms","mtext"]),le=_(t,"HTML_INTEGRATION_POINTS")&&t.HTML_INTEGRATION_POINTS&&"object"===typeof t.HTML_INTEGRATION_POINTS?D(t.HTML_INTEGRATION_POINTS):C({},["annotation-xml"]);const e=_(t,"CUSTOM_ELEMENT_HANDLING")&&t.CUSTOM_ELEMENT_HANDLING&&"object"===typeof t.CUSTOM_ELEMENT_HANDLING?D(t.CUSTOM_ELEMENT_HANDLING):a(null);if(Nt=a(null),_(e,"tagNameCheck")&&ge(e.tagNameCheck)&&(Nt.tagNameCheck=e.tagNameCheck),_(e,"attributeNameCheck")&&ge(e.attributeNameCheck)&&(Nt.attributeNameCheck=e.attributeNameCheck),_(e,"allowCustomizedBuiltInElements")&&"boolean"===typeof e.allowCustomizedBuiltInElements&&(Nt.allowCustomizedBuiltInElements=e.allowCustomizedBuiltInElements),Mt&&(Dt=!1),Ht&&(Gt=!0),Kt&&(Ot=C({},W),At=a(null),!0===Kt.html&&(C(Ot,F),C(At,Y)),!0===Kt.svg&&(C(Ot,U),C(At,$),C(At,V)),!0===Kt.svgFilters&&(C(Ot,B),C(At,$),C(At,V)),!0===Kt.mathMl&&(C(Ot,G),C(At,X),C(At,V))),Ct.tagCheck=null,Ct.attributeCheck=null,_(t,"ADD_TAGS")&&("function"===typeof t.ADD_TAGS?Ct.tagCheck=t.ADD_TAGS:m(t.ADD_TAGS)&&(Ot===_t&&(Ot=D(Ot)),C(Ot,t.ADD_TAGS,ve))),_(t,"ADD_ATTR")&&("function"===typeof t.ADD_ATTR?Ct.attributeCheck=t.ADD_ATTR:m(t.ADD_ATTR)&&(At===Rt&&(At=D(At)),C(At,t.ADD_ATTR,ve))),_(t,"ADD_URI_SAFE_ATTR")&&m(t.ADD_URI_SAFE_ATTR)&&C(ee,t.ADD_URI_SAFE_ATTR,ve),_(t,"FORBID_CONTENTS")&&m(t.FORBID_CONTENTS)&&(Jt===Zt&&(Jt=D(Jt)),C(Jt,t.FORBID_CONTENTS,ve)),_(t,"ADD_FORBID_CONTENTS")&&m(t.ADD_FORBID_CONTENTS)&&(Jt===Zt&&(Jt=D(Jt)),C(Jt,t.ADD_FORBID_CONTENTS,ve)),Vt&&(Ot["#text"]=!0),Ut&&C(Ot,["html","head","body"]),Ot.table&&(C(Ot,["tbody"]),delete It.tbody),t.TRUSTED_TYPES_POLICY){if("function"!==typeof t.TRUSTED_TYPES_POLICY.createHTML)throw N('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!==typeof t.TRUSTED_TYPES_POLICY.createScriptURL)throw N('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');et=t.TRUSTED_TYPES_POLICY,nt=et.createHTML("")}else void 0===et&&(et=ut(P,c)),null!==et&&"string"===typeof nt&&(nt=et.createHTML(""));i&&i(t),be=t},Te=C({},[...U,...B,...z]),xe=C({},[...G,...H]),Ee=function(t){let e=Q(t);e&&e.tagName||(e={namespaceURI:ce,tagName:"template"});const n=v(t.tagName),r=v(e.tagName);return!!ue[t.namespaceURI]&&(t.namespaceURI===oe?e.namespaceURI===ie?"svg"===n:e.namespaceURI===re?"svg"===n&&("annotation-xml"===r||fe[r]):Boolean(Te[n]):t.namespaceURI===re?e.namespaceURI===ie?"math"===n:e.namespaceURI===oe?"math"===n&&le[r]:Boolean(xe[n]):t.namespaceURI===ie?!(e.namespaceURI===oe&&!le[r])&&(!(e.namespaceURI===re&&!fe[r])&&(!xe[n]&&(pe[n]||!Te[n]))):!("application/xhtml+xml"!==de||!ue[t.namespaceURI]))},Se=function(t){d(n.removed,{element:t});try{Q(t).removeChild(t)}catch(e){K(t)}},Oe=function(t,e){try{d(n.removed,{attribute:e.getAttributeNode(t),from:e})}catch(r){d(n.removed,{attribute:null,from:e})}if(e.removeAttribute(t),"is"===t)if(Gt||Ht)try{Se(e)}catch(r){}else try{e.setAttribute(t,"")}catch(r){}},_e=function(t){let e=null,n=null;if(zt)t=""+t;else{const e=y(t,/^[\r\n\t ]+/);n=e&&e[0]}"application/xhtml+xml"===de&&ce===ie&&(t=''+t+"");const o=et?et.createHTML(t):t;if(ce===ie)try{e=(new I).parseFromString(o,de)}catch(c){}if(!e||!e.documentElement){e=ot.createDocument(ce,"template",null);try{e.documentElement.innerHTML=ae?nt:o}catch(c){}}const i=e.body||e.documentElement;return t&&n&&i.insertBefore(r.createTextNode(n),i.childNodes[0]||null),ce===ie?dt.call(e,Ut?"html":"body")[0]:Ut?e.documentElement:i},Ae=function(t){return lt.call(t.ownerDocument||t,t,S.SHOW_ELEMENT|S.SHOW_COMMENT|S.SHOW_TEXT|S.SHOW_PROCESSING_INSTRUCTION|S.SHOW_CDATA_SECTION,null)},Re=function(t){return t instanceof A&&("string"!==typeof t.nodeName||"string"!==typeof t.textContent||"function"!==typeof t.removeChild||!(t.attributes instanceof O)||"function"!==typeof t.removeAttribute||"function"!==typeof t.setAttribute||"string"!==typeof t.namespaceURI||"function"!==typeof t.insertBefore||"function"!==typeof t.hasChildNodes)},Ne=function(t){return"function"===typeof x&&t instanceof x};function Ie(t,e,r){f(t,t=>{t.call(n,e,r,be)})}const Pe=function(t){let e=null;if(Ie(mt.beforeSanitizeElements,t,null),Re(t))return Se(t),!0;const r=ve(t.nodeName);if(Ie(mt.uponSanitizeElement,t,{tagName:r,allowedTags:Ot}),Ft&&t.hasChildNodes()&&!Ne(t.firstElementChild)&&R(/<[/\w!]/g,t.innerHTML)&&R(/<[/\w!]/g,t.textContent))return Se(t),!0;if(Ft&&t.namespaceURI===ie&&"style"===r&&Ne(t.firstElementChild))return Se(t),!0;if(t.nodeType===ct.progressingInstruction)return Se(t),!0;if(Ft&&t.nodeType===ct.comment&&R(/<[/\w]/g,t.data))return Se(t),!0;if(It[r]||!(Ct.tagCheck instanceof Function&&Ct.tagCheck(r))&&!Ot[r]){if(!It[r]&&De(r)){if(Nt.tagNameCheck instanceof RegExp&&R(Nt.tagNameCheck,r))return!1;if(Nt.tagNameCheck instanceof Function&&Nt.tagNameCheck(r))return!1}if(Vt&&!Jt[r]){const e=Q(t)||t.parentNode,n=Z(t)||t.childNodes;if(n&&e){const r=n.length;for(let o=r-1;o>=0;--o){const r=q(n[o],!0);e.insertBefore(r,J(t))}}}return Se(t),!0}return t instanceof E&&!Ee(t)?(Se(t),!0):"noscript"!==r&&"noembed"!==r&&"noframes"!==r||!R(/<\/no(script|embed|frames)/i,t.innerHTML)?(Mt&&t.nodeType===ct.text&&(e=t.textContent,f([vt,bt,yt],t=>{e=g(e,t," ")}),t.textContent!==e&&(d(n.removed,{element:t.cloneNode()}),t.textContent=e)),Ie(mt.afterSanitizeElements,t,null),!1):(Se(t),!0)},Ce=function(t,e,n){if(Pt[e])return!1;if(Yt&&("id"===e||"name"===e)&&(n in r||n in ye))return!1;if(Dt&&!Pt[e]&&R(gt,e));else if(Lt&&R(wt,e));else if(Ct.attributeCheck instanceof Function&&Ct.attributeCheck(e,t));else if(!At[e]||Pt[e]){if(!(De(t)&&(Nt.tagNameCheck instanceof RegExp&&R(Nt.tagNameCheck,t)||Nt.tagNameCheck instanceof Function&&Nt.tagNameCheck(t))&&(Nt.attributeNameCheck instanceof RegExp&&R(Nt.attributeNameCheck,e)||Nt.attributeNameCheck instanceof Function&&Nt.attributeNameCheck(e,t))||"is"===e&&Nt.allowCustomizedBuiltInElements&&(Nt.tagNameCheck instanceof RegExp&&R(Nt.tagNameCheck,n)||Nt.tagNameCheck instanceof Function&&Nt.tagNameCheck(n))))return!1}else if(ee[e]);else if(R(St,g(n,xt,"")));else if("src"!==e&&"xlink:href"!==e&&"href"!==e||"script"===t||0!==w(n,"data:")||!Qt[t]){if(kt&&!R(Tt,g(n,xt,"")));else if(n)return!1}else;return!0},Le=C({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),De=function(t){return!Le[v(t)]&&R(Et,t)},ke=function(t){Ie(mt.beforeSanitizeAttributes,t,null);const{attributes:e}=t;if(!e||Re(t))return;const r={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:At,forceKeepAttr:void 0};let o=e.length;while(o--){const c=e[o],{name:a,namespaceURI:u,value:s}=c,l=ve(a),d=s;let h="value"===a?d:T(d);if(r.attrName=l,r.attrValue=h,r.keepAttr=!0,r.forceKeepAttr=void 0,Ie(mt.uponSanitizeAttribute,t,r),h=r.attrValue,!$t||"id"!==l&&"name"!==l||0===w(h,Xt)||(Oe(a,t),h=Xt+h),Ft&&R(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,h)){Oe(a,t);continue}if("attributename"===l&&y(h,"href")){Oe(a,t);continue}if(r.forceKeepAttr)continue;if(!r.keepAttr){Oe(a,t);continue}if(!jt&&R(/\/>/i,h)){Oe(a,t);continue}Mt&&f([vt,bt,yt],t=>{h=g(h,t," ")});const m=ve(t.nodeName);if(Ce(m,l,h)){if(et&&"object"===typeof P&&"function"===typeof P.getAttributeType)if(u);else switch(P.getAttributeType(m,l)){case"TrustedHTML":h=et.createHTML(h);break;case"TrustedScriptURL":h=et.createScriptURL(h);break}if(h!==d)try{u?t.setAttributeNS(u,a,h):t.setAttribute(a,h),Re(t)?Se(t):p(n.removed)}catch(i){Oe(a,t)}}else Oe(a,t)}Ie(mt.afterSanitizeAttributes,t,null)},je=function(t){let e=null;const n=Ae(t);Ie(mt.beforeSanitizeShadowDOM,t,null);while(e=n.nextNode())Ie(mt.uponSanitizeShadowNode,e,null),Pe(e),ke(e),e.content instanceof u&&je(e.content);Ie(mt.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=null,i=null,c=null,a=null;if(ae=!t,ae&&(t="\x3c!--\x3e"),"string"!==typeof t&&!Ne(t)&&(t=k(t),"string"!==typeof t))throw N("dirty is not a string, aborting");if(!n.isSupported)return t;if(Bt||we(e),n.removed=[],"string"===typeof t&&(qt=!1),qt){const e=t.nodeName;if("string"===typeof e){const t=ve(e);if(!Ot[t]||It[t])throw N("root node is forbidden and cannot be sanitized in-place")}}else if(t instanceof x)r=_e("\x3c!----\x3e"),i=r.ownerDocument.importNode(t,!0),i.nodeType===ct.element&&"BODY"===i.nodeName||"HTML"===i.nodeName?r=i:r.appendChild(i);else{if(!Gt&&!Mt&&!Ut&&-1===t.indexOf("<"))return et&&Wt?et.createHTML(t):t;if(r=_e(t),!r)return Gt?null:Wt?nt:""}r&&zt&&Se(r.firstChild);const s=Ae(qt?t:r);while(c=s.nextNode())Pe(c),ke(c),c.content instanceof u&&je(c.content);if(qt)return t;if(Gt){if(Mt){r.normalize();let t=r.innerHTML;f([vt,bt,yt],e=>{t=g(t,e," ")}),r.innerHTML=t}if(Ht){a=pt.call(r.ownerDocument);while(r.firstChild)a.appendChild(r.firstChild)}else a=r;return(At.shadowroot||At.shadowrootmode)&&(a=ht.call(o,a,!0)),a}let l=Ut?r.outerHTML:r.innerHTML;return Ut&&Ot["!doctype"]&&r.ownerDocument&&r.ownerDocument.doctype&&r.ownerDocument.doctype.name&&R(rt,r.ownerDocument.doctype.name)&&(l="\n"+l),Mt&&f([vt,bt,yt],t=>{l=g(l,t," ")}),et&&Wt?et.createHTML(l):l},n.setConfig=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};we(t),Bt=!0},n.clearConfig=function(){be=null,Bt=!1},n.isValidAttribute=function(t,e,n){be||we({});const r=ve(t),o=ve(e);return Ce(r,o,n)},n.addHook=function(t,e){"function"===typeof e&&d(mt[t],e)},n.removeHook=function(t,e){if(void 0!==e){const n=l(mt[t],e);return-1===n?void 0:h(mt[t],n,1)[0]}return p(mt[t])},n.removeHooks=function(t){mt[t]=[]},n.removeAllHooks=function(){mt=st()},n}var lt=ft();return lt}))},c1f9:function(t,e,n){"use strict";var r=n("23e7"),o=n("2266"),i=n("8418");r({target:"Object",stat:!0},{fromEntries:function(t){var e={};return o(t,(function(t,n){i(e,t,n)}),{AS_ENTRIES:!0}),e}})},c430:function(t,e,n){"use strict";t.exports=!1},c65b:function(t,e,n){"use strict";var r=n("40d5"),o=Function.prototype.call;t.exports=r?o.bind(o):function(){return o.apply(o,arguments)}},c6b6:function(t,e,n){"use strict";var r=n("e330"),o=r({}.toString),i=r("".slice);t.exports=function(t){return i(o(t),8,-1)}},c6cd:function(t,e,n){"use strict";var r=n("c430"),o=n("cfe9"),i=n("6374"),c="__core-js_shared__",a=t.exports=o[c]||i(c,{});(a.versions||(a.versions=[])).push({version:"3.47.0",mode:r?"pure":"global",copyright:"© 2014-2025 Denis Pushkarev (zloirock.ru), 2025 CoreJS Company (core-js.io)",license:"https://github.com/zloirock/core-js/blob/v3.47.0/LICENSE",source:"https://github.com/zloirock/core-js"})},c6d2:function(t,e,n){"use strict";var r=n("23e7"),o=n("c65b"),i=n("c430"),c=n("5e77"),a=n("1626"),u=n("dcc3"),s=n("e163"),f=n("d2bb"),l=n("d44e"),p=n("9112"),d=n("cb2d"),h=n("b622"),m=n("3f8c"),v=n("ae93"),b=c.PROPER,y=c.CONFIGURABLE,g=v.IteratorPrototype,w=v.BUGGY_SAFARI_ITERATORS,T=h("iterator"),x="keys",E="values",S="entries",O=function(){return this};t.exports=function(t,e,n,c,h,v,_){u(n,e,c);var A,R,N,I=function(t){if(t===h&&k)return k;if(!w&&t&&t in L)return L[t];switch(t){case x:return function(){return new n(this,t)};case E:return function(){return new n(this,t)};case S:return function(){return new n(this,t)}}return function(){return new n(this)}},P=e+" Iterator",C=!1,L=t.prototype,D=L[T]||L["@@iterator"]||h&&L[h],k=!w&&D||I(h),j="Array"===e&&L.entries||D;if(j&&(A=s(j.call(new t)),A!==Object.prototype&&A.next&&(i||s(A)===g||(f?f(A,g):a(A[T])||d(A,T,O)),l(A,P,!0,!0),i&&(m[P]=O))),b&&h===E&&D&&D.name!==E&&(!i&&y?p(L,"name",E):(C=!0,k=function(){return o(D,this)})),h)if(R={values:I(E),keys:v?k:I(x),entries:I(S)},_)for(N in R)(w||C||!(N in L))&&d(L,N,R[N]);else r({target:e,proto:!0,forced:w||C},R);return i&&!_||L[T]===k||d(L,T,k,{name:h}),m[e]=k,R}},c8d2:function(t,e,n){"use strict";var r=n("5e77").PROPER,o=n("d039"),i=n("5899"),c="​…᠎";t.exports=function(t){return o((function(){return!!i[t]()||c[t]()!==c||r&&i[t].name!==t}))}},ca84:function(t,e,n){"use strict";var r=n("e330"),o=n("1a2d"),i=n("fc6a"),c=n("4d64").indexOf,a=n("d012"),u=r([].push);t.exports=function(t,e){var n,r=i(t),s=0,f=[];for(n in r)!o(a,n)&&o(r,n)&&u(f,n);while(e.length>s)o(r,n=e[s++])&&(~c(f,n)||u(f,n));return f}},cb2d:function(t,e,n){"use strict";var r=n("1626"),o=n("9bf2"),i=n("13d2"),c=n("6374");t.exports=function(t,e,n,a){a||(a={});var u=a.enumerable,s=void 0!==a.name?a.name:e;if(r(n)&&i(n,s,a),a.global)u?t[e]=n:c(e,n);else{try{a.unsafe?t[e]&&(u=!0):delete t[e]}catch(f){}u?t[e]=n:o.f(t,e,{value:n,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return t}},cc12:function(t,e,n){"use strict";var r=n("cfe9"),o=n("861d"),i=r.document,c=o(i)&&o(i.createElement);t.exports=function(t){return c?i.createElement(t):{}}},cc98:function(t,e,n){"use strict";var r=n("23e7"),o=n("c430"),i=n("4738").CONSTRUCTOR,c=n("d256"),a=n("d066"),u=n("1626"),s=n("cb2d"),f=c&&c.prototype;if(r({target:"Promise",proto:!0,forced:i,real:!0},{catch:function(t){return this.then(void 0,t)}}),!o&&u(c)){var l=a("Promise").prototype["catch"];f["catch"]!==l&&s(f,"catch",l,{unsafe:!0})}},cca6:function(t,e,n){"use strict";var r=n("23e7"),o=n("60da");r({target:"Object",stat:!0,arity:2,forced:Object.assign!==o},{assign:o})},cdce:function(t,e,n){"use strict";var r=n("cfe9"),o=n("1626"),i=r.WeakMap;t.exports=o(i)&&/native code/.test(String(i))},cdf9:function(t,e,n){"use strict";var r=n("825a"),o=n("861d"),i=n("f069");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),c=n.resolve;return c(e),n.promise}},cfe9:function(t,e,n){"use strict";(function(e){var n=function(t){return t&&t.Math===Math&&t};t.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof e&&e)||n("object"==typeof this&&this)||function(){return this}()||Function("return this")()}).call(this,n("24aa"))},d012:function(t,e,n){"use strict";t.exports={}},d039:function(t,e,n){"use strict";t.exports=function(t){try{return!!t()}catch(e){return!0}}},d066:function(t,e,n){"use strict";var r=n("cfe9"),o=n("1626"),i=function(t){return o(t)?t:void 0};t.exports=function(t,e){return arguments.length<2?i(r[t]):r[t]&&r[t][e]}},d1e7:function(t,e,n){"use strict";var r={}.propertyIsEnumerable,o=Object.getOwnPropertyDescriptor,i=o&&!r.call({1:2},1);e.f=i?function(t){var e=o(this,t);return!!e&&e.enumerable}:r},d256:function(t,e,n){"use strict";var r=n("cfe9");t.exports=r.Promise},d2bb:function(t,e,n){"use strict";var r=n("7282"),o=n("861d"),i=n("1d80"),c=n("3bbe");t.exports=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,n={};try{t=r(Object.prototype,"__proto__","set"),t(n,[]),e=n instanceof Array}catch(a){}return function(n,r){return i(n),c(r),o(n)?(e?t(n,r):n.__proto__=r,n):n}}():void 0)},d44e:function(t,e,n){"use strict";var r=n("9bf2").f,o=n("1a2d"),i=n("b622"),c=i("toStringTag");t.exports=function(t,e,n){t&&!n&&(t=t.prototype),t&&!o(t,c)&&r(t,c,{configurable:!0,value:e})}},d58f:function(t,e,n){"use strict";var r=n("59ed"),o=n("7b0b"),i=n("44ad"),c=n("07fa"),a=TypeError,u="Reduce of empty array with no initial value",s=function(t){return function(e,n,s,f){var l=o(e),p=i(l),d=c(l);if(r(n),0===d&&s<2)throw new a(u);var h=t?d-1:0,m=t?-1:1;if(s<2)while(1){if(h in p){f=p[h],h+=m;break}if(h+=m,t?h<0:d<=h)throw new a(u)}for(;t?h>=0:d>h;h+=m)h in p&&(f=n(f,p[h],h,l));return f}};t.exports={left:s(!1),right:s(!0)}},d6d6:function(t,e,n){"use strict";var r=TypeError;t.exports=function(t,e){if(t=e.length)return t.target=null,s(void 0,!0);switch(t.kind){case"keys":return s(n,!1);case"values":return s(e[n],!1)}return s([n,e[n]],!1)}),"values");var m=i.Arguments=i.Array;if(o("keys"),o("values"),o("entries"),!f&&l&&"values"!==m.name)try{a(m,"name",{value:"values"})}catch(v){}},e330:function(t,e,n){"use strict";var r=n("40d5"),o=Function.prototype,i=o.call,c=r&&o.bind.bind(i,i);t.exports=r?c:function(t){return function(){return i.apply(t,arguments)}}},e667:function(t,e,n){"use strict";t.exports=function(t){try{return{error:!1,value:t()}}catch(e){return{error:!0,value:e}}}},e6cf:function(t,e,n){"use strict";n("5e7e"),n("14e5"),n("cc98"),n("3529"),n("f22b"),n("7149")},e893:function(t,e,n){"use strict";var r=n("1a2d"),o=n("56ef"),i=n("06cf"),c=n("9bf2");t.exports=function(t,e,n){for(var a=o(e),u=c.f,s=i.f,f=0;f