f7cloud_client/apps/assistant/js/index-D953jVe0.chunk.mjs.map
root 8b6a0139db f7cloud_client
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-17 22:59:26 +00:00

1 line
291 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{"version":3,"file":"index-D953jVe0.chunk.mjs","sources":["../node_modules/vite-plugin-node-polyfills/shims/global/dist/index.js","../node_modules/dompurify/dist/purify.es.mjs","../node_modules/@nextcloud/router/dist/index.mjs","../node_modules/escape-html/index.js","../node_modules/@nextcloud/l10n/dist/chunks/translation-DoG5ZELJ.mjs","../node_modules/vite-plugin-node-polyfills/shims/process/dist/index.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/debug.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/constants.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/re.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/parse-options.js","../node_modules/@nextcloud/event-bus/node_modules/semver/internal/identifiers.js","../node_modules/@nextcloud/event-bus/node_modules/semver/classes/semver.js","../node_modules/@nextcloud/event-bus/node_modules/semver/functions/major.js","../node_modules/@nextcloud/event-bus/node_modules/semver/functions/parse.js","../node_modules/@nextcloud/event-bus/node_modules/semver/functions/valid.js","../node_modules/@nextcloud/event-bus/dist/index.mjs","../node_modules/@nextcloud/browser-storage/dist/ScopedStorage.js","../node_modules/@nextcloud/browser-storage/dist/StorageBuilder.js","../node_modules/@nextcloud/browser-storage/dist/index.js","../node_modules/@nextcloud/auth/dist/index.mjs","../node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js","../node_modules/@nextcloud/logger/dist/index.mjs"],"sourcesContent":["const global = globalThis || void 0 || self;\n\nexport { global as default, global };\n//# sourceMappingURL=index.js.map\n","/*! @license DOMPurify 3.3.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.3.0/LICENSE */\n\nconst {\n entries,\n setPrototypeOf,\n isFrozen,\n getPrototypeOf,\n getOwnPropertyDescriptor\n} = Object;\nlet {\n freeze,\n seal,\n create\n} = Object; // eslint-disable-line import/no-mutable-exports\nlet {\n apply,\n construct\n} = typeof Reflect !== 'undefined' && Reflect;\nif (!freeze) {\n freeze = function freeze(x) {\n return x;\n };\n}\nif (!seal) {\n seal = function seal(x) {\n return x;\n };\n}\nif (!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}\nif (!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}\nconst arrayForEach = unapply(Array.prototype.forEach);\nconst arrayLastIndexOf = unapply(Array.prototype.lastIndexOf);\nconst arrayPop = unapply(Array.prototype.pop);\nconst arrayPush = unapply(Array.prototype.push);\nconst arraySplice = unapply(Array.prototype.splice);\nconst stringToLowerCase = unapply(String.prototype.toLowerCase);\nconst stringToString = unapply(String.prototype.toString);\nconst stringMatch = unapply(String.prototype.match);\nconst stringReplace = unapply(String.prototype.replace);\nconst stringIndexOf = unapply(String.prototype.indexOf);\nconst stringTrim = unapply(String.prototype.trim);\nconst objectHasOwnProperty = unapply(Object.prototype.hasOwnProperty);\nconst regExpTest = unapply(RegExp.prototype.test);\nconst 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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 */\nfunction 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\nconst 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']);\nconst 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']);\nconst 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.\nconst 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']);\nconst 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.\nconst mathMlDisallowed = freeze(['maction', 'maligngroup', 'malignmark', 'mlongdiv', 'mscarries', 'mscarry', 'msgroup', 'mstack', 'msline', 'msrow', 'semantics', 'annotation', 'annotation-xml', 'mprescripts', 'none']);\nconst text = freeze(['#text']);\n\nconst 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']);\nconst 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']);\nconst mathMl = freeze(['accent', 'accentunder', 'align', 'bevelled', 'close', 'columnsalign', 'columnlines', 'columnspan', 'denomalign', 'depth', 'dir', 'display', 'displaystyle', 'encoding', 'fence', 'frame', 'height', 'href', 'id', 'largeop', 'length', 'linethickness', 'lspace', 'lquote', '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']);\nconst xml = freeze(['xlink:href', 'xml:id', 'xlink:title', 'xml:space', 'xmlns:xlink']);\n\n// eslint-disable-next-line unicorn/better-regex\nconst MUSTACHE_EXPR = seal(/\\{\\{[\\w\\W]*|[\\w\\W]*\\}\\}/gm); // Specify template detection regex for SAFE_FOR_TEMPLATES mode\nconst ERB_EXPR = seal(/<%[\\w\\W]*|[\\w\\W]*%>/gm);\nconst TMPLIT_EXPR = seal(/\\$\\{[\\w\\W]*/gm); // eslint-disable-line unicorn/better-regex\nconst DATA_ATTR = seal(/^data-[\\-\\w.\\u00B7-\\uFFFF]+$/); // eslint-disable-line no-useless-escape\nconst ARIA_ATTR = seal(/^aria-[\\-\\w]+$/); // eslint-disable-line no-useless-escape\nconst 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);\nconst IS_SCRIPT_OR_DATA = seal(/^(?:\\w+script|data):/i);\nconst ATTR_WHITESPACE = seal(/[\\u0000-\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u2029\\u205F\\u3000]/g // eslint-disable-line no-control-regex\n);\nconst DOCTYPE_NAME = seal(/^html$/i);\nconst CUSTOM_ELEMENT = seal(/^[a-z][.\\w]*(-[.\\w]+)+$/i);\n\nvar 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\nconst NODE_TYPE = {\n element: 1,\n attribute: 2,\n text: 3,\n cdataSection: 4,\n entityReference: 5,\n // Deprecated\n entityNode: 6,\n // Deprecated\n progressingInstruction: 7,\n comment: 8,\n document: 9,\n documentType: 10,\n documentFragment: 11,\n notation: 12 // Deprecated\n};\nconst 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 */\nconst _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};\nconst _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};\nfunction createDOMPurify() {\n let window = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : getGlobal();\n const DOMPurify = root => createDOMPurify(root);\n DOMPurify.version = '3.3.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 <html>... 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 || {};\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 = [];\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 /* 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 /* 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 <svg>. 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 <annotation-xml> 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 <math>. 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 // <math> 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 = '<remove></remove>' + 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 = '<html xmlns=\"http://www.w3.org/1999/xhtml\"><head></head><body>' + dirty + '</body></html>';\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 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 (!(EXTRA_ELEMENT_HANDLING.tagCheck instanceof Function && EXTRA_ELEMENT_HANDLING.tagCheck(tagName)) && (!ALLOWED_TAGS[tagName] || FORBID_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 /* 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|title|textarea)/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 _sanitizeShadowDOM = 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 _sanitizeShadowDOM(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 _sanitizeShadowDOM(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 (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 = '<!DOCTYPE ' + body.ownerDocument.doctype.name + '>\\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}\nvar purify = createDOMPurify();\n\nexport { purify as default };\n//# sourceMappingURL=purify.es.mjs.map\n","function linkTo(app, file) {\n return generateFilePath(app, \"\", file);\n}\nconst linkToRemoteBase = (service) => \"/remote.php/\" + service;\nconst generateRemoteUrl = (service, options) => {\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + linkToRemoteBase(service);\n};\nconst generateOcsUrl = (url, params, options) => {\n const allOptions = Object.assign({\n ocsVersion: 2\n }, options || {});\n const version = allOptions.ocsVersion === 1 ? 1 : 2;\n const baseURL = options?.baseURL ?? getBaseUrl();\n return baseURL + \"/ocs/v\" + version + \".php\" + _generateUrlPath(url, params, options);\n};\nconst _generateUrlPath = (url, params, options) => {\n const allOptions = Object.assign({\n escape: true\n }, options || {});\n const _build = function(text, vars) {\n vars = vars || {};\n return text.replace(\n /{([^{}]*)}/g,\n function(a, b) {\n const r = vars[b];\n if (allOptions.escape) {\n return typeof r === \"string\" || typeof r === \"number\" ? encodeURIComponent(r.toString()) : encodeURIComponent(a);\n } else {\n return typeof r === \"string\" || typeof r === \"number\" ? r.toString() : a;\n }\n }\n );\n };\n if (url.charAt(0) !== \"/\") {\n url = \"/\" + url;\n }\n return _build(url, params || {});\n};\nconst generateUrl = (url, params, options) => {\n const allOptions = Object.assign({\n noRewrite: false\n }, options || {});\n const baseOrRootURL = options?.baseURL ?? getRootUrl();\n if (window?.OC?.config?.modRewriteWorking === true && !allOptions.noRewrite) {\n return baseOrRootURL + _generateUrlPath(url, params, options);\n }\n return baseOrRootURL + \"/index.php\" + _generateUrlPath(url, params, options);\n};\nconst imagePath = (app, file) => {\n if (!file.includes(\".\")) {\n return generateFilePath(app, \"img\", `${file}.svg`);\n }\n return generateFilePath(app, \"img\", file);\n};\nconst generateFilePath = (app, type, file) => {\n const isCore = window?.OC?.coreApps?.includes(app) ?? false;\n const isPHP = file.slice(-3) === \"php\";\n let link = getRootUrl();\n if (isPHP && !isCore) {\n link += `/index.php/apps/${app}`;\n if (type) {\n link += `/${encodeURI(type)}`;\n }\n if (file !== \"index.php\") {\n link += `/${file}`;\n }\n } else if (!isPHP && !isCore) {\n link = getAppRootUrl(app);\n if (type) {\n link += `/${type}/`;\n }\n if (link.at(-1) !== \"/\") {\n link += \"/\";\n }\n link += file;\n } else {\n if ((app === \"settings\" || app === \"core\" || app === \"search\") && type === \"ajax\") {\n link += \"/index.php\";\n }\n if (app) {\n link += `/${app}`;\n }\n if (type) {\n link += `/${type}`;\n }\n link += `/${file}`;\n }\n return link;\n};\nconst getBaseUrl = () => window.location.protocol + \"//\" + window.location.host + getRootUrl();\nfunction getRootUrl() {\n let webroot = window._oc_webroot;\n if (typeof webroot === \"undefined\") {\n webroot = location.pathname;\n const pos = webroot.indexOf(\"/index.php/\");\n if (pos !== -1) {\n webroot = webroot.slice(0, pos);\n } else {\n const index = webroot.indexOf(\"/\", 1);\n webroot = webroot.slice(0, index > 0 ? index : void 0);\n }\n }\n return webroot;\n}\nfunction getAppRootUrl(app) {\n const webroots = window._oc_appswebroots ?? {};\n return webroots[app] ?? \"\";\n}\n/*!\n * SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction generateAvatarUrl(user, options) {\n const size = (options?.size || 64) <= 64 ? 64 : 512;\n const guestUrl = options?.isGuestUser ? \"/guest\" : \"\";\n const themeUrl = options?.isDarkTheme ? \"/dark\" : \"\";\n return generateUrl(`/avatar${guestUrl}/{user}/{size}${themeUrl}`, {\n user,\n size\n });\n}\nexport {\n generateAvatarUrl,\n generateFilePath,\n generateOcsUrl,\n generateRemoteUrl,\n generateUrl,\n getAppRootUrl,\n getBaseUrl,\n getRootUrl,\n imagePath,\n linkTo\n};\n//# sourceMappingURL=index.mjs.map\n","/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '&quot;';\n break;\n case 38: // &\n escape = '&amp;';\n break;\n case 39: // '\n escape = '&#39;';\n break;\n case 60: // <\n escape = '&lt;';\n break;\n case 62: // >\n escape = '&gt;';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n","import { generateFilePath } from \"@nextcloud/router\";\nimport DOMPurify from \"dompurify\";\nimport escapeHTML from \"escape-html\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction getLocale() {\n return globalThis._nc_l10n_locale;\n}\nfunction getCanonicalLocale() {\n return getLocale().replaceAll(/_/g, \"-\");\n}\nfunction setLocale(locale) {\n globalThis._nc_l10n_locale = locale;\n if (typeof document !== \"undefined\") {\n document.documentElement.dataset.locale = locale;\n }\n}\nfunction getLanguage() {\n return globalThis._nc_l10n_language;\n}\nfunction setLanguage(lang) {\n globalThis._nc_l10n_language = lang;\n if (typeof document !== \"undefined\") {\n document.documentElement.lang = lang;\n }\n}\nfunction isRTL(language) {\n const languageCode = language || getLanguage();\n const rtlLanguages = [\n \"ae\",\n // Avestan\n \"ar\",\n // 'العربية', Arabic\n \"arc\",\n // Aramaic\n \"arz\",\n // 'مصرى', Egyptian\n \"bcc\",\n // 'بلوچی مکرانی', Southern Balochi\n \"bqi\",\n // 'بختياري', Bakthiari\n \"ckb\",\n // 'Soranî / کوردی', Sorani\n \"dv\",\n // Dhivehi\n \"fa\",\n // 'فارسی', Persian\n \"glk\",\n // 'گیلکی', Gilaki\n \"ha\",\n // 'هَوُسَ', Hausa\n \"he\",\n // 'עברית', Hebrew\n \"khw\",\n // 'کھوار', Khowar\n \"ks\",\n // 'कॉशुर / کٲشُر', Kashmiri\n \"ku\",\n // 'Kurdî / كوردی', Kurdish\n \"mzn\",\n // 'مازِرونی', Mazanderani\n \"nqo\",\n // 'ߒߞߏ', NKo\n \"pnb\",\n // 'پنجابی', Western Punjabi\n \"ps\",\n // 'پښتو', Pashto,\n \"sd\",\n // 'سنڌي', Sindhi\n \"ug\",\n // 'Uyghurche / ئۇيغۇرچە', Uyghur\n \"ur\",\n // 'اردو', Urdu\n \"ur-PK\",\n // 'اردو', Urdu (nextcloud BCP47 variant)\n \"uz-AF\",\n // 'اوزبیکی', Uzbek Afghan\n \"yi\"\n // 'ייִדיש', Yiddish\n ];\n return rtlLanguages.includes(languageCode);\n}\nglobalThis._nc_l10n_locale ??= typeof document !== \"undefined\" && document.documentElement.dataset.locale || Intl.DateTimeFormat().resolvedOptions().locale.replaceAll(/-/g, \"_\");\nglobalThis._nc_l10n_language ??= typeof document !== \"undefined\" && document.documentElement.lang || (globalThis.navigator?.language ?? \"en\");\n/*!\n * SPDX-FileCopyrightText: 2022 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction hasAppTranslations(appId) {\n return appId in globalThis._oc_l10n_registry_translations && appId in globalThis._oc_l10n_registry_plural_functions;\n}\nfunction registerAppTranslations(appId, translations, pluralFunction) {\n if (appId === \"__proto__\" || appId === \"constructor\" || appId === \"prototype\") {\n throw new Error(\"Invalid appId\");\n }\n globalThis._oc_l10n_registry_translations[appId] = {\n ...globalThis._oc_l10n_registry_translations[appId] || {},\n ...translations\n };\n globalThis._oc_l10n_registry_plural_functions[appId] = pluralFunction;\n}\nfunction unregisterAppTranslations(appId) {\n delete globalThis._oc_l10n_registry_translations[appId];\n delete globalThis._oc_l10n_registry_plural_functions[appId];\n}\nfunction getAppTranslations(appId) {\n return {\n translations: globalThis._oc_l10n_registry_translations[appId] ?? {},\n pluralFunction: globalThis._oc_l10n_registry_plural_functions[appId] ?? ((number) => number)\n };\n}\nglobalThis._oc_l10n_registry_translations ??= {};\nglobalThis._oc_l10n_registry_plural_functions ??= {};\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nfunction translate(app, text, placeholdersOrNumber, optionsOrNumber, options) {\n const vars = typeof placeholdersOrNumber === \"object\" ? placeholdersOrNumber : void 0;\n const number = typeof optionsOrNumber === \"number\" ? optionsOrNumber : typeof placeholdersOrNumber === \"number\" ? placeholdersOrNumber : void 0;\n const allOptions = {\n // defaults\n escape: true,\n sanitize: true,\n // overwrite with user config\n ...typeof options === \"object\" ? options : typeof optionsOrNumber === \"object\" ? optionsOrNumber : {}\n };\n const identity = (value) => value;\n const optSanitize = (allOptions.sanitize ? DOMPurify.sanitize : identity) || identity;\n const optEscape = allOptions.escape ? escapeHTML : identity;\n const isValidReplacement = (value) => typeof value === \"string\" || typeof value === \"number\";\n const _build = (text2, vars2, number2) => {\n return text2.replace(/%n/g, \"\" + number2).replace(/{([^{}]*)}/g, (match, key) => {\n if (vars2 === void 0 || !(key in vars2)) {\n return optEscape(match);\n }\n const replacement = vars2[key];\n if (isValidReplacement(replacement)) {\n return optEscape(`${replacement}`);\n } else if (typeof replacement === \"object\" && isValidReplacement(replacement.value)) {\n const escape = replacement.escape !== false ? escapeHTML : identity;\n return escape(`${replacement.value}`);\n } else {\n return optEscape(match);\n }\n });\n };\n const bundle = options?.bundle ?? getAppTranslations(app);\n let translation = bundle.translations[text] || text;\n translation = Array.isArray(translation) ? translation[0] : translation;\n if (typeof vars === \"object\" || number !== void 0) {\n return optSanitize(_build(\n translation,\n vars,\n number\n ));\n } else {\n return optSanitize(translation);\n }\n}\nfunction translatePlural(app, textSingular, textPlural, number, vars, options) {\n const identifier = \"_\" + textSingular + \"_::_\" + textPlural + \"_\";\n const bundle = options?.bundle ?? getAppTranslations(app);\n const value = bundle.translations[identifier];\n if (typeof value !== \"undefined\") {\n const translation = value;\n if (Array.isArray(translation)) {\n const plural = bundle.pluralFunction(number);\n return translate(app, translation[plural], vars, number, options);\n }\n }\n if (number === 1) {\n return translate(app, textSingular, vars, number, options);\n } else {\n return translate(app, textPlural, vars, number, options);\n }\n}\nasync function loadTranslations(appName, callback) {\n if (hasAppTranslations(appName) || getLanguage() === \"en\") {\n const bundle = getAppTranslations(appName);\n callback?.(bundle);\n return bundle;\n }\n let response;\n try {\n const url = generateFilePath(appName, \"l10n\", getLanguage() + \".json\");\n response = await fetch(url);\n } catch (error) {\n throw new Error(\"Network error\", { cause: error });\n }\n if (response.ok) {\n try {\n const bundle = await response.json();\n if (typeof bundle.translations === \"object\") {\n register(appName, bundle.translations);\n callback?.(bundle);\n return bundle;\n }\n } catch {\n }\n throw new Error(\"Invalid content of translation bundle\");\n } else {\n throw new Error(response.statusText);\n }\n}\nfunction register(appName, bundle) {\n registerAppTranslations(appName, bundle, getPlural);\n}\nfunction unregister(appName) {\n return unregisterAppTranslations(appName);\n}\nfunction getPlural(number, language = getLanguage()) {\n if (language === \"pt-BR\") {\n language = \"xbr\";\n }\n if (language.length > 3) {\n language = language.substring(0, language.lastIndexOf(\"-\"));\n }\n switch (language) {\n case \"az\":\n case \"bo\":\n case \"dz\":\n case \"id\":\n case \"ja\":\n case \"jv\":\n case \"ka\":\n case \"km\":\n case \"kn\":\n case \"ko\":\n case \"ms\":\n case \"th\":\n case \"tr\":\n case \"vi\":\n case \"zh\":\n return 0;\n case \"af\":\n case \"bn\":\n case \"bg\":\n case \"ca\":\n case \"da\":\n case \"de\":\n case \"el\":\n case \"en\":\n case \"eo\":\n case \"es\":\n case \"et\":\n case \"eu\":\n case \"fa\":\n case \"fi\":\n case \"fo\":\n case \"fur\":\n case \"fy\":\n case \"gl\":\n case \"gu\":\n case \"ha\":\n case \"he\":\n case \"hu\":\n case \"is\":\n case \"it\":\n case \"ku\":\n case \"lb\":\n case \"ml\":\n case \"mn\":\n case \"mr\":\n case \"nah\":\n case \"nb\":\n case \"ne\":\n case \"nl\":\n case \"nn\":\n case \"no\":\n case \"oc\":\n case \"om\":\n case \"or\":\n case \"pa\":\n case \"pap\":\n case \"ps\":\n case \"pt\":\n case \"so\":\n case \"sq\":\n case \"sv\":\n case \"sw\":\n case \"ta\":\n case \"te\":\n case \"tk\":\n case \"ur\":\n case \"zu\":\n return number === 1 ? 0 : 1;\n case \"am\":\n case \"bh\":\n case \"fil\":\n case \"fr\":\n case \"gun\":\n case \"hi\":\n case \"hy\":\n case \"ln\":\n case \"mg\":\n case \"nso\":\n case \"xbr\":\n case \"ti\":\n case \"wa\":\n return number === 0 || number === 1 ? 0 : 1;\n case \"be\":\n case \"bs\":\n case \"hr\":\n case \"ru\":\n case \"sh\":\n case \"sr\":\n case \"uk\":\n return number % 10 === 1 && number % 100 !== 11 ? 0 : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20) ? 1 : 2;\n case \"cs\":\n case \"sk\":\n return number === 1 ? 0 : number >= 2 && number <= 4 ? 1 : 2;\n case \"ga\":\n return number === 1 ? 0 : number === 2 ? 1 : 2;\n case \"lt\":\n return number % 10 === 1 && number % 100 !== 11 ? 0 : number % 10 >= 2 && (number % 100 < 10 || number % 100 >= 20) ? 1 : 2;\n case \"sl\":\n return number % 100 === 1 ? 0 : number % 100 === 2 ? 1 : number % 100 === 3 || number % 100 === 4 ? 2 : 3;\n case \"mk\":\n return number % 10 === 1 ? 0 : 1;\n case \"mt\":\n return number === 1 ? 0 : number === 0 || number % 100 > 1 && number % 100 < 11 ? 1 : number % 100 > 10 && number % 100 < 20 ? 2 : 3;\n case \"lv\":\n return number === 0 ? 0 : number % 10 === 1 && number % 100 !== 11 ? 1 : 2;\n case \"pl\":\n return number === 1 ? 0 : number % 10 >= 2 && number % 10 <= 4 && (number % 100 < 12 || number % 100 > 14) ? 1 : 2;\n case \"cy\":\n return number === 1 ? 0 : number === 2 ? 1 : number === 8 || number === 11 ? 2 : 3;\n case \"ro\":\n return number === 1 ? 0 : number === 0 || number % 100 > 0 && number % 100 < 20 ? 1 : 2;\n case \"ar\":\n return number === 0 ? 0 : number === 1 ? 1 : number === 2 ? 2 : number % 100 >= 3 && number % 100 <= 10 ? 3 : number % 100 >= 11 && number % 100 <= 99 ? 4 : 5;\n default:\n return 0;\n }\n}\nexport {\n getLanguage as a,\n getLocale as b,\n setLanguage as c,\n translatePlural as d,\n getPlural as e,\n getCanonicalLocale as g,\n isRTL as i,\n loadTranslations as l,\n register as r,\n setLocale as s,\n translate as t,\n unregister as u\n};\n//# sourceMappingURL=translation-DoG5ZELJ.mjs.map\n","function getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar browser = {exports: {}};\n\n// shim for using process in browser\nvar process = browser.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ());\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] };\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\nvar browserExports = browser.exports;\nconst process$1 = /*@__PURE__*/getDefaultExportFromCjs(browserExports);\n\nexport { process$1 as default, process$1 as process };\n//# sourceMappingURL=index.js.map\n","'use strict'\n\nconst debug = (\n typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n : () => {}\n\nmodule.exports = debug\n","'use strict'\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n 'major',\n 'premajor',\n 'minor',\n 'preminor',\n 'patch',\n 'prepatch',\n 'prerelease',\n]\n\nmodule.exports = {\n MAX_LENGTH,\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_SAFE_INTEGER,\n RELEASE_TYPES,\n SEMVER_SPEC_VERSION,\n FLAG_INCLUDE_PRERELEASE: 0b001,\n FLAG_LOOSE: 0b010,\n}\n","'use strict'\n\nconst {\n MAX_SAFE_COMPONENT_LENGTH,\n MAX_SAFE_BUILD_LENGTH,\n MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst safeSrc = exports.safeSrc = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n for (const [token, max] of safeRegexReplacements) {\n value = value\n .split(`${token}*`).join(`${token}{0,${max}}`)\n .split(`${token}+`).join(`${token}{1,${max}}`)\n }\n return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n const safe = makeSafeRegex(value)\n const index = R++\n debug(name, index, value)\n t[name] = index\n src[index] = value\n safeSrc[index] = safe\n re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n// Non-numberic identifiers include numberic identifiers but can be longer.\n// Therefore non-numberic identifiers must go first.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NONNUMERICIDENTIFIER]\n}|${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n `(?:${src[t.PRERELEASE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n `(?:${src[t.PRERELEASELOOSE]})?${\n src[t.BUILD]}?` +\n `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCEPLAIN', `${'(^|[^\\\\d])' +\n '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?`)\ncreateToken('COERCE', `${src[t.COERCEPLAIN]}(?:$|[^\\\\d])`)\ncreateToken('COERCEFULL', src[t.COERCEPLAIN] +\n `(?:${src[t.PRERELEASE]})?` +\n `(?:${src[t.BUILD]})?` +\n `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\ncreateToken('COERCERTLFULL', src[t.COERCEFULL], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAIN]})` +\n `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s+-\\\\s+` +\n `(${src[t.XRANGEPLAINLOOSE]})` +\n `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","'use strict'\n\n// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n if (!options) {\n return emptyOpts\n }\n\n if (typeof options !== 'object') {\n return looseOption\n }\n\n return options\n}\nmodule.exports = parseOptions\n","'use strict'\n\nconst numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n if (typeof a === 'number' && typeof b === 'number') {\n return a === b ? 0 : a < b ? -1 : 1\n }\n\n const anum = numeric.test(a)\n const bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n compareIdentifiers,\n rcompareIdentifiers,\n}\n","'use strict'\n\nconst debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n constructor (version, options) {\n options = parseOptions(options)\n\n if (version instanceof SemVer) {\n if (version.loose === !!options.loose &&\n version.includePrerelease === !!options.includePrerelease) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError(\n `version is longer than ${MAX_LENGTH} characters`\n )\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n // this isn't actually relevant for versions, but keep it so that we\n // don't run into trouble passing this.options around.\n this.includePrerelease = !!options.includePrerelease\n\n const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n if (!m) {\n throw new TypeError(`Invalid Version: ${version}`)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map((id) => {\n if (/^[0-9]+$/.test(id)) {\n const num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n }\n\n format () {\n this.version = `${this.major}.${this.minor}.${this.patch}`\n if (this.prerelease.length) {\n this.version += `-${this.prerelease.join('.')}`\n }\n return this.version\n }\n\n toString () {\n return this.version\n }\n\n compare (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n if (typeof other === 'string' && other === this.version) {\n return 0\n }\n other = new SemVer(other, this.options)\n }\n\n if (other.version === this.version) {\n return 0\n }\n\n return this.compareMain(other) || this.comparePre(other)\n }\n\n compareMain (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n if (this.major < other.major) {\n return -1\n }\n if (this.major > other.major) {\n return 1\n }\n if (this.minor < other.minor) {\n return -1\n }\n if (this.minor > other.minor) {\n return 1\n }\n if (this.patch < other.patch) {\n return -1\n }\n if (this.patch > other.patch) {\n return 1\n }\n return 0\n }\n\n comparePre (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n let i = 0\n do {\n const a = this.prerelease[i]\n const b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n compareBuild (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n let i = 0\n do {\n const a = this.build[i]\n const b = other.build[i]\n debug('build compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n }\n\n // preminor will bump the version up to the next minor release, and immediately\n // down to pre-release. premajor and prepatch work the same way.\n inc (release, identifier, identifierBase) {\n if (release.startsWith('pre')) {\n if (!identifier && identifierBase === false) {\n throw new Error('invalid increment argument: identifier is empty')\n }\n // Avoid an invalid semver results\n if (identifier) {\n const match = `-${identifier}`.match(this.options.loose ? re[t.PRERELEASELOOSE] : re[t.PRERELEASE])\n if (!match || match[1] !== identifier) {\n throw new Error(`invalid identifier: ${identifier}`)\n }\n }\n }\n\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier, identifierBase)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier, identifierBase)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier, identifierBase)\n this.inc('pre', identifier, identifierBase)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier, identifierBase)\n }\n this.inc('pre', identifier, identifierBase)\n break\n case 'release':\n if (this.prerelease.length === 0) {\n throw new Error(`version ${this.raw} is not a prerelease`)\n }\n this.prerelease.length = 0\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (\n this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0\n ) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n case 'pre': {\n const base = Number(identifierBase) ? 1 : 0\n\n if (this.prerelease.length === 0) {\n this.prerelease = [base]\n } else {\n let i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n if (identifier === this.prerelease.join('.') && identifierBase === false) {\n throw new Error('invalid increment argument: identifier already exists')\n }\n this.prerelease.push(base)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n let prerelease = [identifier, base]\n if (identifierBase === false) {\n prerelease = [identifier]\n }\n if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = prerelease\n }\n } else {\n this.prerelease = prerelease\n }\n }\n break\n }\n default:\n throw new Error(`invalid increment argument: ${release}`)\n }\n this.raw = this.format()\n if (this.build.length) {\n this.raw += `+${this.build.join('.')}`\n }\n return this\n }\n}\n\nmodule.exports = SemVer\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","'use strict'\n\nconst SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n if (version instanceof SemVer) {\n return version\n }\n try {\n return new SemVer(version, options)\n } catch (er) {\n if (!throwErrors) {\n return null\n }\n throw er\n }\n}\n\nmodule.exports = parse\n","'use strict'\n\nconst parse = require('./parse')\nconst valid = (version, options) => {\n const v = parse(version, options)\n return v ? v.version : null\n}\nmodule.exports = valid\n","import major from \"semver/functions/major.js\";\nimport valid from \"semver/functions/valid.js\";\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass ProxyBus {\n bus;\n constructor(bus2) {\n if (typeof bus2.getVersion !== \"function\" || !valid(bus2.getVersion())) {\n console.warn(\"Proxying an event bus with an unknown or invalid version\");\n } else if (major(bus2.getVersion()) !== major(this.getVersion())) {\n console.warn(\n \"Proxying an event bus of version \" + bus2.getVersion() + \" with \" + this.getVersion()\n );\n }\n this.bus = bus2;\n }\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.bus.subscribe(name, handler);\n }\n unsubscribe(name, handler) {\n this.bus.unsubscribe(name, handler);\n }\n emit(name, ...event) {\n this.bus.emit(name, ...event);\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nclass SimpleBus {\n handlers = /* @__PURE__ */ new Map();\n getVersion() {\n return \"3.3.3\";\n }\n subscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).concat(\n handler\n )\n );\n }\n unsubscribe(name, handler) {\n this.handlers.set(\n name,\n (this.handlers.get(name) || []).filter((h) => h !== handler)\n );\n }\n emit(name, ...event) {\n const handlers = this.handlers.get(name) || [];\n handlers.forEach((h) => {\n try {\n ;\n h(event[0]);\n } catch (e) {\n console.error(\"could not invoke event listener\", e);\n }\n });\n }\n}\n/*!\n * SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nlet bus = null;\nfunction getBus() {\n if (bus !== null) {\n return bus;\n }\n if (typeof window === \"undefined\") {\n return new Proxy({}, {\n get: () => {\n return () => console.error(\n \"Window not available, EventBus can not be established!\"\n );\n }\n });\n }\n if (window.OC?._eventBus && typeof window._nc_event_bus === \"undefined\") {\n console.warn(\n \"found old event bus instance at OC._eventBus. Update your version!\"\n );\n window._nc_event_bus = window.OC._eventBus;\n }\n if (typeof window?._nc_event_bus !== \"undefined\") {\n bus = new ProxyBus(window._nc_event_bus);\n } else {\n bus = window._nc_event_bus = new SimpleBus();\n }\n return bus;\n}\nfunction subscribe(name, handler) {\n getBus().subscribe(name, handler);\n}\nfunction unsubscribe(name, handler) {\n getBus().unsubscribe(name, handler);\n}\nfunction emit(name, ...event) {\n getBus().emit(name, ...event);\n}\nexport {\n ProxyBus,\n SimpleBus,\n emit,\n subscribe,\n unsubscribe\n};\n//# sourceMappingURL=index.mjs.map\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nexport default class ScopedStorage {\n static GLOBAL_SCOPE_VOLATILE = 'nextcloud_vol';\n static GLOBAL_SCOPE_PERSISTENT = 'nextcloud_per';\n scope;\n wrapped;\n constructor(scope, wrapped, persistent) {\n this.scope = `${persistent ? ScopedStorage.GLOBAL_SCOPE_PERSISTENT : ScopedStorage.GLOBAL_SCOPE_VOLATILE}_${btoa(scope)}_`;\n this.wrapped = wrapped;\n }\n scopeKey(key) {\n return `${this.scope}${key}`;\n }\n setItem(key, value) {\n this.wrapped.setItem(this.scopeKey(key), value);\n }\n getItem(key) {\n return this.wrapped.getItem(this.scopeKey(key));\n }\n removeItem(key) {\n this.wrapped.removeItem(this.scopeKey(key));\n }\n clear() {\n Object.keys(this.wrapped)\n .filter((key) => key.startsWith(this.scope))\n .map(this.wrapped.removeItem.bind(this.wrapped));\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nexport default class StorageBuilder {\n appId;\n persisted = false;\n clearedOnLogout = false;\n constructor(appId) {\n this.appId = appId;\n }\n persist(persist = true) {\n this.persisted = persist;\n return this;\n }\n clearOnLogout(clear = true) {\n this.clearedOnLogout = clear;\n return this;\n }\n build() {\n return new ScopedStorage(this.appId, this.persisted ? window.localStorage : window.sessionStorage, !this.clearedOnLogout);\n }\n}\n","/*\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nimport ScopedStorage from \"./ScopedStorage.js\";\nimport StorageBuilder from \"./StorageBuilder.js\";\n/**\n * Get the storage builder for an app\n *\n * @param appId App ID to scope storage\n */\nexport function getBuilder(appId) {\n return new StorageBuilder(appId);\n}\n/**\n * Clear values from storage\n *\n * @param storage The storage to clear\n * @param pred Callback to check if value should be cleared\n */\nfunction clearStorage(storage, pred) {\n Object.keys(storage)\n .filter((k) => pred ? pred(k) : true)\n .map(storage.removeItem.bind(storage));\n}\n/**\n * Clear all values from all storages\n */\nexport function clearAll() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s));\n}\n/**\n * Clear ony non persistent values\n */\nexport function clearNonPersistent() {\n const storages = [\n window.sessionStorage,\n window.localStorage,\n ];\n storages.map((s) => clearStorage(s, (k) => !k.startsWith(ScopedStorage.GLOBAL_SCOPE_PERSISTENT)));\n}\n","import { subscribe, emit } from \"@nextcloud/event-bus\";\nimport { getBuilder } from \"@nextcloud/browser-storage\";\nlet token;\nconst observers = [];\nfunction getRequestToken() {\n if (token === void 0) {\n token = document.head.dataset.requesttoken ?? null;\n }\n return token;\n}\nfunction onRequestTokenUpdate(observer) {\n observers.push(observer);\n}\nsubscribe(\"csrf-token-update\", (e) => {\n token = e.token;\n observers.forEach((observer) => {\n try {\n observer(token);\n } catch (error) {\n console.error(\"Error updating CSRF token observer\", error);\n }\n });\n});\nfunction getCSPNonce() {\n const meta = document?.querySelector('meta[name=\"csp-nonce\"]');\n if (!meta) {\n const token2 = getRequestToken();\n return token2 ? btoa(token2) : void 0;\n }\n return meta.nonce;\n}\n/*!\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: GPL-3.0-or-later\n */\nconst browserStorage = getBuilder(\"public\").persist().build();\nclass GuestUser {\n _displayName;\n uid;\n isAdmin;\n constructor() {\n if (!browserStorage.getItem(\"guestUid\")) {\n browserStorage.setItem(\"guestUid\", randomUUID());\n }\n this._displayName = browserStorage.getItem(\"guestNickname\") || \"\";\n this.uid = browserStorage.getItem(\"guestUid\") || randomUUID();\n this.isAdmin = false;\n subscribe(\"user:info:changed\", (guest) => {\n this._displayName = guest.displayName;\n browserStorage.setItem(\"guestNickname\", guest.displayName || \"\");\n });\n }\n get displayName() {\n return this._displayName;\n }\n set displayName(displayName) {\n this._displayName = displayName;\n browserStorage.setItem(\"guestNickname\", displayName);\n emit(\"user:info:changed\", this);\n }\n}\nlet currentUser$1;\nfunction getGuestUser() {\n if (!currentUser$1) {\n currentUser$1 = new GuestUser();\n }\n return currentUser$1;\n}\nfunction getGuestNickname() {\n return getGuestUser()?.displayName || null;\n}\nfunction setGuestNickname(nickname) {\n if (!nickname || nickname.trim().length === 0) {\n throw new Error(\"Nickname cannot be empty\");\n }\n getGuestUser().displayName = nickname;\n}\nfunction randomUUID() {\n if (globalThis.crypto?.randomUUID) {\n return globalThis.crypto.randomUUID();\n }\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === \"x\" ? r : r & 3 | 8;\n return v.toString(16);\n });\n}\nlet currentUser;\nfunction getAttribute(el, attribute) {\n if (el) {\n return el.getAttribute(attribute);\n }\n return null;\n}\nfunction getCurrentUser() {\n if (currentUser !== void 0) {\n return currentUser;\n }\n const head = document?.getElementsByTagName(\"head\")[0];\n if (!head) {\n return null;\n }\n const uid = getAttribute(head, \"data-user\");\n if (uid === null) {\n currentUser = null;\n return currentUser;\n }\n currentUser = {\n uid,\n displayName: getAttribute(head, \"data-user-displayname\"),\n isAdmin: !!window._oc_isadmin\n };\n return currentUser;\n}\nexport {\n getCSPNonce,\n getCurrentUser,\n getGuestNickname,\n getGuestUser,\n getRequestToken,\n onRequestTokenUpdate,\n setGuestNickname\n};\n//# sourceMappingURL=index.mjs.map\n","var buffer = {};\n\nvar base64Js = {};\n\nbase64Js.byteLength = byteLength;\nbase64Js.toByteArray = toByteArray;\nbase64Js.fromByteArray = fromByteArray;\n\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens (b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4);\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n\n var curByte = 0;\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen;\n\n var i;\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = (tmp >> 16) & 0xFF;\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[curByte++] = (tmp >> 8) & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n );\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n );\n }\n\n return parts.join('')\n}\n\nvar ieee754 = {};\n\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\n\nieee754.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n};\n\nieee754.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = (nBytes * 8) - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <https://feross.org>\n * @license MIT\n */\n\n(function (exports) {\n\n\tconst base64 = base64Js;\n\tconst ieee754$1 = ieee754;\n\tconst customInspectSymbol =\n\t (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n\t ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n\t : null;\n\n\texports.Buffer = Buffer;\n\texports.SlowBuffer = SlowBuffer;\n\texports.INSPECT_MAX_BYTES = 50;\n\n\tconst K_MAX_LENGTH = 0x7fffffff;\n\texports.kMaxLength = K_MAX_LENGTH;\n\tconst { Uint8Array: GlobalUint8Array, ArrayBuffer: GlobalArrayBuffer, SharedArrayBuffer: GlobalSharedArrayBuffer } = globalThis;\n\n\t/**\n\t * If `Buffer.TYPED_ARRAY_SUPPORT`:\n\t * === true Use Uint8Array implementation (fastest)\n\t * === false Print warning and recommend using `buffer` v4.x which has an Object\n\t * implementation (most compatible, even IE6)\n\t *\n\t * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n\t * Opera 11.6+, iOS 4.2+.\n\t *\n\t * We report that the browser does not support typed arrays if the are not subclassable\n\t * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n\t * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n\t * for __proto__ and has a buggy typed array implementation.\n\t */\n\tBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport();\n\n\tif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n\t typeof console.error === 'function') {\n\t console.error(\n\t 'This browser lacks typed array (Uint8Array) support which is required by ' +\n\t '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n\t );\n\t}\n\n\tfunction typedArraySupport () {\n\t // Can typed array instances can be augmented?\n\t try {\n\t const arr = new GlobalUint8Array(1);\n\t const proto = { foo: function () { return 42 } };\n\t Object.setPrototypeOf(proto, GlobalUint8Array.prototype);\n\t Object.setPrototypeOf(arr, proto);\n\t return arr.foo() === 42\n\t } catch (e) {\n\t return false\n\t }\n\t}\n\n\tObject.defineProperty(Buffer.prototype, 'parent', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.buffer\n\t }\n\t});\n\n\tObject.defineProperty(Buffer.prototype, 'offset', {\n\t enumerable: true,\n\t get: function () {\n\t if (!Buffer.isBuffer(this)) return undefined\n\t return this.byteOffset\n\t }\n\t});\n\n\tfunction createBuffer (length) {\n\t if (length > K_MAX_LENGTH) {\n\t throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n\t }\n\t // Return an augmented `Uint8Array` instance\n\t const buf = new GlobalUint8Array(length);\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\t return buf\n\t}\n\n\t/**\n\t * The Buffer constructor returns instances of `Uint8Array` that have their\n\t * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n\t * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n\t * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n\t * returns a single octet.\n\t *\n\t * The `Uint8Array` prototype remains unmodified.\n\t */\n\n\tfunction Buffer (arg, encodingOrOffset, length) {\n\t // Common case.\n\t if (typeof arg === 'number') {\n\t if (typeof encodingOrOffset === 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be of type string. Received type number'\n\t )\n\t }\n\t return allocUnsafe(arg)\n\t }\n\t return from(arg, encodingOrOffset, length)\n\t}\n\n\tBuffer.poolSize = 8192; // not used by this implementation\n\n\tfunction from (value, encodingOrOffset, length) {\n\t if (typeof value === 'string') {\n\t return fromString(value, encodingOrOffset)\n\t }\n\n\t if (GlobalArrayBuffer.isView(value)) {\n\t return fromArrayView(value)\n\t }\n\n\t if (value == null) {\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t }\n\n\t if (isInstance(value, GlobalArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalArrayBuffer))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof GlobalSharedArrayBuffer !== 'undefined' &&\n\t (isInstance(value, GlobalSharedArrayBuffer) ||\n\t (value && isInstance(value.buffer, GlobalSharedArrayBuffer)))) {\n\t return fromArrayBuffer(value, encodingOrOffset, length)\n\t }\n\n\t if (typeof value === 'number') {\n\t throw new TypeError(\n\t 'The \"value\" argument must not be of type number. Received type number'\n\t )\n\t }\n\n\t const valueOf = value.valueOf && value.valueOf();\n\t if (valueOf != null && valueOf !== value) {\n\t return Buffer.from(valueOf, encodingOrOffset, length)\n\t }\n\n\t const b = fromObject(value);\n\t if (b) return b\n\n\t if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n\t typeof value[Symbol.toPrimitive] === 'function') {\n\t return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n\t }\n\n\t throw new TypeError(\n\t 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n\t 'or Array-like Object. Received type ' + (typeof value)\n\t )\n\t}\n\n\t/**\n\t * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n\t * if value is a number.\n\t * Buffer.from(str[, encoding])\n\t * Buffer.from(array)\n\t * Buffer.from(buffer)\n\t * Buffer.from(arrayBuffer[, byteOffset[, length]])\n\t **/\n\tBuffer.from = function (value, encodingOrOffset, length) {\n\t return from(value, encodingOrOffset, length)\n\t};\n\n\t// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n\t// https://github.com/feross/buffer/pull/148\n\tObject.setPrototypeOf(Buffer.prototype, GlobalUint8Array.prototype);\n\tObject.setPrototypeOf(Buffer, GlobalUint8Array);\n\n\tfunction assertSize (size) {\n\t if (typeof size !== 'number') {\n\t throw new TypeError('\"size\" argument must be of type number')\n\t } else if (size < 0) {\n\t throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n\t }\n\t}\n\n\tfunction alloc (size, fill, encoding) {\n\t assertSize(size);\n\t if (size <= 0) {\n\t return createBuffer(size)\n\t }\n\t if (fill !== undefined) {\n\t // Only pay attention to encoding if it's a string. This\n\t // prevents accidentally sending in a number that would\n\t // be interpreted as a start offset.\n\t return typeof encoding === 'string'\n\t ? createBuffer(size).fill(fill, encoding)\n\t : createBuffer(size).fill(fill)\n\t }\n\t return createBuffer(size)\n\t}\n\n\t/**\n\t * Creates a new filled Buffer instance.\n\t * alloc(size[, fill[, encoding]])\n\t **/\n\tBuffer.alloc = function (size, fill, encoding) {\n\t return alloc(size, fill, encoding)\n\t};\n\n\tfunction allocUnsafe (size) {\n\t assertSize(size);\n\t return createBuffer(size < 0 ? 0 : checked(size) | 0)\n\t}\n\n\t/**\n\t * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n\t * */\n\tBuffer.allocUnsafe = function (size) {\n\t return allocUnsafe(size)\n\t};\n\t/**\n\t * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n\t */\n\tBuffer.allocUnsafeSlow = function (size) {\n\t return allocUnsafe(size)\n\t};\n\n\tfunction fromString (string, encoding) {\n\t if (typeof encoding !== 'string' || encoding === '') {\n\t encoding = 'utf8';\n\t }\n\n\t if (!Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\n\t const length = byteLength(string, encoding) | 0;\n\t let buf = createBuffer(length);\n\n\t const actual = buf.write(string, encoding);\n\n\t if (actual !== length) {\n\t // Writing a hex string, for example, that contains invalid characters will\n\t // cause everything after the first invalid character to be ignored. (e.g.\n\t // 'abxxcd' will be treated as 'ab')\n\t buf = buf.slice(0, actual);\n\t }\n\n\t return buf\n\t}\n\n\tfunction fromArrayLike (array) {\n\t const length = array.length < 0 ? 0 : checked(array.length) | 0;\n\t const buf = createBuffer(length);\n\t for (let i = 0; i < length; i += 1) {\n\t buf[i] = array[i] & 255;\n\t }\n\t return buf\n\t}\n\n\tfunction fromArrayView (arrayView) {\n\t if (isInstance(arrayView, GlobalUint8Array)) {\n\t const copy = new GlobalUint8Array(arrayView);\n\t return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n\t }\n\t return fromArrayLike(arrayView)\n\t}\n\n\tfunction fromArrayBuffer (array, byteOffset, length) {\n\t if (byteOffset < 0 || array.byteLength < byteOffset) {\n\t throw new RangeError('\"offset\" is outside of buffer bounds')\n\t }\n\n\t if (array.byteLength < byteOffset + (length || 0)) {\n\t throw new RangeError('\"length\" is outside of buffer bounds')\n\t }\n\n\t let buf;\n\t if (byteOffset === undefined && length === undefined) {\n\t buf = new GlobalUint8Array(array);\n\t } else if (length === undefined) {\n\t buf = new GlobalUint8Array(array, byteOffset);\n\t } else {\n\t buf = new GlobalUint8Array(array, byteOffset, length);\n\t }\n\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(buf, Buffer.prototype);\n\n\t return buf\n\t}\n\n\tfunction fromObject (obj) {\n\t if (Buffer.isBuffer(obj)) {\n\t const len = checked(obj.length) | 0;\n\t const buf = createBuffer(len);\n\n\t if (buf.length === 0) {\n\t return buf\n\t }\n\n\t obj.copy(buf, 0, 0, len);\n\t return buf\n\t }\n\n\t if (obj.length !== undefined) {\n\t if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n\t return createBuffer(0)\n\t }\n\t return fromArrayLike(obj)\n\t }\n\n\t if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n\t return fromArrayLike(obj.data)\n\t }\n\t}\n\n\tfunction checked (length) {\n\t // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n\t // length is NaN (which is otherwise coerced to zero.)\n\t if (length >= K_MAX_LENGTH) {\n\t throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n\t 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n\t }\n\t return length | 0\n\t}\n\n\tfunction SlowBuffer (length) {\n\t if (+length != length) { // eslint-disable-line eqeqeq\n\t length = 0;\n\t }\n\t return Buffer.alloc(+length)\n\t}\n\n\tBuffer.isBuffer = function isBuffer (b) {\n\t return b != null && b._isBuffer === true &&\n\t b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n\t};\n\n\tBuffer.compare = function compare (a, b) {\n\t if (isInstance(a, GlobalUint8Array)) a = Buffer.from(a, a.offset, a.byteLength);\n\t if (isInstance(b, GlobalUint8Array)) b = Buffer.from(b, b.offset, b.byteLength);\n\t if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n\t throw new TypeError(\n\t 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n\t )\n\t }\n\n\t if (a === b) return 0\n\n\t let x = a.length;\n\t let y = b.length;\n\n\t for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n\t if (a[i] !== b[i]) {\n\t x = a[i];\n\t y = b[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\tBuffer.isEncoding = function isEncoding (encoding) {\n\t switch (String(encoding).toLowerCase()) {\n\t case 'hex':\n\t case 'utf8':\n\t case 'utf-8':\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t case 'base64':\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return true\n\t default:\n\t return false\n\t }\n\t};\n\n\tBuffer.concat = function concat (list, length) {\n\t if (!Array.isArray(list)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t }\n\n\t if (list.length === 0) {\n\t return Buffer.alloc(0)\n\t }\n\n\t let i;\n\t if (length === undefined) {\n\t length = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t length += list[i].length;\n\t }\n\t }\n\n\t const buffer = Buffer.allocUnsafe(length);\n\t let pos = 0;\n\t for (i = 0; i < list.length; ++i) {\n\t let buf = list[i];\n\t if (isInstance(buf, GlobalUint8Array)) {\n\t if (pos + buf.length > buffer.length) {\n\t if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf);\n\t buf.copy(buffer, pos);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t buffer,\n\t buf,\n\t pos\n\t );\n\t }\n\t } else if (!Buffer.isBuffer(buf)) {\n\t throw new TypeError('\"list\" argument must be an Array of Buffers')\n\t } else {\n\t buf.copy(buffer, pos);\n\t }\n\t pos += buf.length;\n\t }\n\t return buffer\n\t};\n\n\tfunction byteLength (string, encoding) {\n\t if (Buffer.isBuffer(string)) {\n\t return string.length\n\t }\n\t if (GlobalArrayBuffer.isView(string) || isInstance(string, GlobalArrayBuffer)) {\n\t return string.byteLength\n\t }\n\t if (typeof string !== 'string') {\n\t throw new TypeError(\n\t 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n\t 'Received type ' + typeof string\n\t )\n\t }\n\n\t const len = string.length;\n\t const mustMatch = (arguments.length > 2 && arguments[2] === true);\n\t if (!mustMatch && len === 0) return 0\n\n\t // Use a for loop to avoid recursion\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return len\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8ToBytes(string).length\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return len * 2\n\t case 'hex':\n\t return len >>> 1\n\t case 'base64':\n\t return base64ToBytes(string).length\n\t default:\n\t if (loweredCase) {\n\t return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n\t }\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\tBuffer.byteLength = byteLength;\n\n\tfunction slowToString (encoding, start, end) {\n\t let loweredCase = false;\n\n\t // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n\t // property of a typed array.\n\n\t // This behaves neither like String nor Uint8Array in that we set start/end\n\t // to their upper/lower bounds if the value passed is out of range.\n\t // undefined is handled specially as per ECMA-262 6th Edition,\n\t // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\t if (start === undefined || start < 0) {\n\t start = 0;\n\t }\n\t // Return early if start > this.length. Done here to prevent potential uint32\n\t // coercion fail below.\n\t if (start > this.length) {\n\t return ''\n\t }\n\n\t if (end === undefined || end > this.length) {\n\t end = this.length;\n\t }\n\n\t if (end <= 0) {\n\t return ''\n\t }\n\n\t // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n\t end >>>= 0;\n\t start >>>= 0;\n\n\t if (end <= start) {\n\t return ''\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t while (true) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexSlice(this, start, end)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Slice(this, start, end)\n\n\t case 'ascii':\n\t return asciiSlice(this, start, end)\n\n\t case 'latin1':\n\t case 'binary':\n\t return latin1Slice(this, start, end)\n\n\t case 'base64':\n\t return base64Slice(this, start, end)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return utf16leSlice(this, start, end)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = (encoding + '').toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t}\n\n\t// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n\t// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n\t// reliably in a browserify context because there could be multiple different\n\t// copies of the 'buffer' package in use. This method works even for Buffer\n\t// instances that were created from another copy of the `buffer` package.\n\t// See: https://github.com/feross/buffer/issues/154\n\tBuffer.prototype._isBuffer = true;\n\n\tfunction swap (b, n, m) {\n\t const i = b[n];\n\t b[n] = b[m];\n\t b[m] = i;\n\t}\n\n\tBuffer.prototype.swap16 = function swap16 () {\n\t const len = this.length;\n\t if (len % 2 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 16-bits')\n\t }\n\t for (let i = 0; i < len; i += 2) {\n\t swap(this, i, i + 1);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap32 = function swap32 () {\n\t const len = this.length;\n\t if (len % 4 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 32-bits')\n\t }\n\t for (let i = 0; i < len; i += 4) {\n\t swap(this, i, i + 3);\n\t swap(this, i + 1, i + 2);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.swap64 = function swap64 () {\n\t const len = this.length;\n\t if (len % 8 !== 0) {\n\t throw new RangeError('Buffer size must be a multiple of 64-bits')\n\t }\n\t for (let i = 0; i < len; i += 8) {\n\t swap(this, i, i + 7);\n\t swap(this, i + 1, i + 6);\n\t swap(this, i + 2, i + 5);\n\t swap(this, i + 3, i + 4);\n\t }\n\t return this\n\t};\n\n\tBuffer.prototype.toString = function toString () {\n\t const length = this.length;\n\t if (length === 0) return ''\n\t if (arguments.length === 0) return utf8Slice(this, 0, length)\n\t return slowToString.apply(this, arguments)\n\t};\n\n\tBuffer.prototype.toLocaleString = Buffer.prototype.toString;\n\n\tBuffer.prototype.equals = function equals (b) {\n\t if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n\t if (this === b) return true\n\t return Buffer.compare(this, b) === 0\n\t};\n\n\tBuffer.prototype.inspect = function inspect () {\n\t let str = '';\n\t const max = exports.INSPECT_MAX_BYTES;\n\t str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim();\n\t if (this.length > max) str += ' ... ';\n\t return '<Buffer ' + str + '>'\n\t};\n\tif (customInspectSymbol) {\n\t Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect;\n\t}\n\n\tBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n\t if (isInstance(target, GlobalUint8Array)) {\n\t target = Buffer.from(target, target.offset, target.byteLength);\n\t }\n\t if (!Buffer.isBuffer(target)) {\n\t throw new TypeError(\n\t 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n\t 'Received type ' + (typeof target)\n\t )\n\t }\n\n\t if (start === undefined) {\n\t start = 0;\n\t }\n\t if (end === undefined) {\n\t end = target ? target.length : 0;\n\t }\n\t if (thisStart === undefined) {\n\t thisStart = 0;\n\t }\n\t if (thisEnd === undefined) {\n\t thisEnd = this.length;\n\t }\n\n\t if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n\t throw new RangeError('out of range index')\n\t }\n\n\t if (thisStart >= thisEnd && start >= end) {\n\t return 0\n\t }\n\t if (thisStart >= thisEnd) {\n\t return -1\n\t }\n\t if (start >= end) {\n\t return 1\n\t }\n\n\t start >>>= 0;\n\t end >>>= 0;\n\t thisStart >>>= 0;\n\t thisEnd >>>= 0;\n\n\t if (this === target) return 0\n\n\t let x = thisEnd - thisStart;\n\t let y = end - start;\n\t const len = Math.min(x, y);\n\n\t const thisCopy = this.slice(thisStart, thisEnd);\n\t const targetCopy = target.slice(start, end);\n\n\t for (let i = 0; i < len; ++i) {\n\t if (thisCopy[i] !== targetCopy[i]) {\n\t x = thisCopy[i];\n\t y = targetCopy[i];\n\t break\n\t }\n\t }\n\n\t if (x < y) return -1\n\t if (y < x) return 1\n\t return 0\n\t};\n\n\t// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n\t// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n\t//\n\t// Arguments:\n\t// - buffer - a Buffer to search\n\t// - val - a string, Buffer, or number\n\t// - byteOffset - an index into `buffer`; will be clamped to an int32\n\t// - encoding - an optional encoding, relevant is val is a string\n\t// - dir - true for indexOf, false for lastIndexOf\n\tfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n\t // Empty buffer means no match\n\t if (buffer.length === 0) return -1\n\n\t // Normalize byteOffset\n\t if (typeof byteOffset === 'string') {\n\t encoding = byteOffset;\n\t byteOffset = 0;\n\t } else if (byteOffset > 0x7fffffff) {\n\t byteOffset = 0x7fffffff;\n\t } else if (byteOffset < -0x80000000) {\n\t byteOffset = -0x80000000;\n\t }\n\t byteOffset = +byteOffset; // Coerce to Number.\n\t if (numberIsNaN(byteOffset)) {\n\t // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n\t byteOffset = dir ? 0 : (buffer.length - 1);\n\t }\n\n\t // Normalize byteOffset: negative offsets start from the end of the buffer\n\t if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\t if (byteOffset >= buffer.length) {\n\t if (dir) return -1\n\t else byteOffset = buffer.length - 1;\n\t } else if (byteOffset < 0) {\n\t if (dir) byteOffset = 0;\n\t else return -1\n\t }\n\n\t // Normalize val\n\t if (typeof val === 'string') {\n\t val = Buffer.from(val, encoding);\n\t }\n\n\t // Finally, search either indexOf (if dir is true) or lastIndexOf\n\t if (Buffer.isBuffer(val)) {\n\t // Special case: looking for empty string/buffer always fails\n\t if (val.length === 0) {\n\t return -1\n\t }\n\t return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n\t } else if (typeof val === 'number') {\n\t val = val & 0xFF; // Search for a byte value [0-255]\n\t if (typeof GlobalUint8Array.prototype.indexOf === 'function') {\n\t if (dir) {\n\t return GlobalUint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n\t } else {\n\t return GlobalUint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n\t }\n\t }\n\t return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n\t }\n\n\t throw new TypeError('val must be string, number or Buffer')\n\t}\n\n\tfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n\t let indexSize = 1;\n\t let arrLength = arr.length;\n\t let valLength = val.length;\n\n\t if (encoding !== undefined) {\n\t encoding = String(encoding).toLowerCase();\n\t if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n\t encoding === 'utf16le' || encoding === 'utf-16le') {\n\t if (arr.length < 2 || val.length < 2) {\n\t return -1\n\t }\n\t indexSize = 2;\n\t arrLength /= 2;\n\t valLength /= 2;\n\t byteOffset /= 2;\n\t }\n\t }\n\n\t function read (buf, i) {\n\t if (indexSize === 1) {\n\t return buf[i]\n\t } else {\n\t return buf.readUInt16BE(i * indexSize)\n\t }\n\t }\n\n\t let i;\n\t if (dir) {\n\t let foundIndex = -1;\n\t for (i = byteOffset; i < arrLength; i++) {\n\t if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n\t if (foundIndex === -1) foundIndex = i;\n\t if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n\t } else {\n\t if (foundIndex !== -1) i -= i - foundIndex;\n\t foundIndex = -1;\n\t }\n\t }\n\t } else {\n\t if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\t for (i = byteOffset; i >= 0; i--) {\n\t let found = true;\n\t for (let j = 0; j < valLength; j++) {\n\t if (read(arr, i + j) !== read(val, j)) {\n\t found = false;\n\t break\n\t }\n\t }\n\t if (found) return i\n\t }\n\t }\n\n\t return -1\n\t}\n\n\tBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n\t return this.indexOf(val, byteOffset, encoding) !== -1\n\t};\n\n\tBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n\t};\n\n\tBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n\t return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n\t};\n\n\tfunction hexWrite (buf, string, offset, length) {\n\t offset = Number(offset) || 0;\n\t const remaining = buf.length - offset;\n\t if (!length) {\n\t length = remaining;\n\t } else {\n\t length = Number(length);\n\t if (length > remaining) {\n\t length = remaining;\n\t }\n\t }\n\n\t const strLen = string.length;\n\n\t if (length > strLen / 2) {\n\t length = strLen / 2;\n\t }\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t const parsed = parseInt(string.substr(i * 2, 2), 16);\n\t if (numberIsNaN(parsed)) return i\n\t buf[offset + i] = parsed;\n\t }\n\t return i\n\t}\n\n\tfunction utf8Write (buf, string, offset, length) {\n\t return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tfunction asciiWrite (buf, string, offset, length) {\n\t return blitBuffer(asciiToBytes(string), buf, offset, length)\n\t}\n\n\tfunction base64Write (buf, string, offset, length) {\n\t return blitBuffer(base64ToBytes(string), buf, offset, length)\n\t}\n\n\tfunction ucs2Write (buf, string, offset, length) {\n\t return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n\t}\n\n\tBuffer.prototype.write = function write (string, offset, length, encoding) {\n\t // Buffer#write(string)\n\t if (offset === undefined) {\n\t encoding = 'utf8';\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, encoding)\n\t } else if (length === undefined && typeof offset === 'string') {\n\t encoding = offset;\n\t length = this.length;\n\t offset = 0;\n\t // Buffer#write(string, offset[, length][, encoding])\n\t } else if (isFinite(offset)) {\n\t offset = offset >>> 0;\n\t if (isFinite(length)) {\n\t length = length >>> 0;\n\t if (encoding === undefined) encoding = 'utf8';\n\t } else {\n\t encoding = length;\n\t length = undefined;\n\t }\n\t } else {\n\t throw new Error(\n\t 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n\t )\n\t }\n\n\t const remaining = this.length - offset;\n\t if (length === undefined || length > remaining) length = remaining;\n\n\t if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n\t throw new RangeError('Attempt to write outside buffer bounds')\n\t }\n\n\t if (!encoding) encoding = 'utf8';\n\n\t let loweredCase = false;\n\t for (;;) {\n\t switch (encoding) {\n\t case 'hex':\n\t return hexWrite(this, string, offset, length)\n\n\t case 'utf8':\n\t case 'utf-8':\n\t return utf8Write(this, string, offset, length)\n\n\t case 'ascii':\n\t case 'latin1':\n\t case 'binary':\n\t return asciiWrite(this, string, offset, length)\n\n\t case 'base64':\n\t // Warning: maxLength not taken into account in base64Write\n\t return base64Write(this, string, offset, length)\n\n\t case 'ucs2':\n\t case 'ucs-2':\n\t case 'utf16le':\n\t case 'utf-16le':\n\t return ucs2Write(this, string, offset, length)\n\n\t default:\n\t if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n\t encoding = ('' + encoding).toLowerCase();\n\t loweredCase = true;\n\t }\n\t }\n\t};\n\n\tBuffer.prototype.toJSON = function toJSON () {\n\t return {\n\t type: 'Buffer',\n\t data: Array.prototype.slice.call(this._arr || this, 0)\n\t }\n\t};\n\n\tfunction base64Slice (buf, start, end) {\n\t if (start === 0 && end === buf.length) {\n\t return base64.fromByteArray(buf)\n\t } else {\n\t return base64.fromByteArray(buf.slice(start, end))\n\t }\n\t}\n\n\tfunction utf8Slice (buf, start, end) {\n\t end = Math.min(buf.length, end);\n\t const res = [];\n\n\t let i = start;\n\t while (i < end) {\n\t const firstByte = buf[i];\n\t let codePoint = null;\n\t let bytesPerSequence = (firstByte > 0xEF)\n\t ? 4\n\t : (firstByte > 0xDF)\n\t ? 3\n\t : (firstByte > 0xBF)\n\t ? 2\n\t : 1;\n\n\t if (i + bytesPerSequence <= end) {\n\t let secondByte, thirdByte, fourthByte, tempCodePoint;\n\n\t switch (bytesPerSequence) {\n\t case 1:\n\t if (firstByte < 0x80) {\n\t codePoint = firstByte;\n\t }\n\t break\n\t case 2:\n\t secondByte = buf[i + 1];\n\t if ((secondByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n\t if (tempCodePoint > 0x7F) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 3:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n\t if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t break\n\t case 4:\n\t secondByte = buf[i + 1];\n\t thirdByte = buf[i + 2];\n\t fourthByte = buf[i + 3];\n\t if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n\t tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n\t if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n\t codePoint = tempCodePoint;\n\t }\n\t }\n\t }\n\t }\n\n\t if (codePoint === null) {\n\t // we did not generate a valid codePoint so insert a\n\t // replacement char (U+FFFD) and advance only 1 byte\n\t codePoint = 0xFFFD;\n\t bytesPerSequence = 1;\n\t } else if (codePoint > 0xFFFF) {\n\t // encode to utf16 (surrogate pair dance)\n\t codePoint -= 0x10000;\n\t res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n\t codePoint = 0xDC00 | codePoint & 0x3FF;\n\t }\n\n\t res.push(codePoint);\n\t i += bytesPerSequence;\n\t }\n\n\t return decodeCodePointsArray(res)\n\t}\n\n\t// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n\t// the lowest limit is Chrome, with 0x10000 args.\n\t// We go 1 magnitude less, for safety\n\tconst MAX_ARGUMENTS_LENGTH = 0x1000;\n\n\tfunction decodeCodePointsArray (codePoints) {\n\t const len = codePoints.length;\n\t if (len <= MAX_ARGUMENTS_LENGTH) {\n\t return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n\t }\n\n\t // Decode in chunks to avoid \"call stack size exceeded\".\n\t let res = '';\n\t let i = 0;\n\t while (i < len) {\n\t res += String.fromCharCode.apply(\n\t String,\n\t codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n\t );\n\t }\n\t return res\n\t}\n\n\tfunction asciiSlice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i] & 0x7F);\n\t }\n\t return ret\n\t}\n\n\tfunction latin1Slice (buf, start, end) {\n\t let ret = '';\n\t end = Math.min(buf.length, end);\n\n\t for (let i = start; i < end; ++i) {\n\t ret += String.fromCharCode(buf[i]);\n\t }\n\t return ret\n\t}\n\n\tfunction hexSlice (buf, start, end) {\n\t const len = buf.length;\n\n\t if (!start || start < 0) start = 0;\n\t if (!end || end < 0 || end > len) end = len;\n\n\t let out = '';\n\t for (let i = start; i < end; ++i) {\n\t out += hexSliceLookupTable[buf[i]];\n\t }\n\t return out\n\t}\n\n\tfunction utf16leSlice (buf, start, end) {\n\t const bytes = buf.slice(start, end);\n\t let res = '';\n\t // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n\t for (let i = 0; i < bytes.length - 1; i += 2) {\n\t res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256));\n\t }\n\t return res\n\t}\n\n\tBuffer.prototype.slice = function slice (start, end) {\n\t const len = this.length;\n\t start = ~~start;\n\t end = end === undefined ? len : ~~end;\n\n\t if (start < 0) {\n\t start += len;\n\t if (start < 0) start = 0;\n\t } else if (start > len) {\n\t start = len;\n\t }\n\n\t if (end < 0) {\n\t end += len;\n\t if (end < 0) end = 0;\n\t } else if (end > len) {\n\t end = len;\n\t }\n\n\t if (end < start) end = start;\n\n\t const newBuf = this.subarray(start, end);\n\t // Return an augmented `Uint8Array` instance\n\t Object.setPrototypeOf(newBuf, Buffer.prototype);\n\n\t return newBuf\n\t};\n\n\t/*\n\t * Need to make sure that buffer isn't trying to write out of bounds.\n\t */\n\tfunction checkOffset (offset, ext, length) {\n\t if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n\t if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n\t}\n\n\tBuffer.prototype.readUintLE =\n\tBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUintBE =\n\tBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t checkOffset(offset, byteLength, this.length);\n\t }\n\n\t let val = this[offset + --byteLength];\n\t let mul = 1;\n\t while (byteLength > 0 && (mul *= 0x100)) {\n\t val += this[offset + --byteLength] * mul;\n\t }\n\n\t return val\n\t};\n\n\tBuffer.prototype.readUint8 =\n\tBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t return this[offset]\n\t};\n\n\tBuffer.prototype.readUint16LE =\n\tBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return this[offset] | (this[offset + 1] << 8)\n\t};\n\n\tBuffer.prototype.readUint16BE =\n\tBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t return (this[offset] << 8) | this[offset + 1]\n\t};\n\n\tBuffer.prototype.readUint32LE =\n\tBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return ((this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16)) +\n\t (this[offset + 3] * 0x1000000)\n\t};\n\n\tBuffer.prototype.readUint32BE =\n\tBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] * 0x1000000) +\n\t ((this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const lo = first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24;\n\n\t const hi = this[++offset] +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t last * 2 ** 24;\n\n\t return BigInt(lo) + (BigInt(hi) << BigInt(32))\n\t});\n\n\tBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const hi = first * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t const lo = this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last;\n\n\t return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n\t});\n\n\tBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let val = this[offset];\n\t let mul = 1;\n\t let i = 0;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t val += this[offset + i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n\t let i = byteLength;\n\t let mul = 1;\n\t let val = this[offset + --i];\n\t while (i > 0 && (mul *= 0x100)) {\n\t val += this[offset + --i] * mul;\n\t }\n\t mul *= 0x80;\n\n\t if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n\t return val\n\t};\n\n\tBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 1, this.length);\n\t if (!(this[offset] & 0x80)) return (this[offset])\n\t return ((0xff - this[offset] + 1) * -1)\n\t};\n\n\tBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset] | (this[offset + 1] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 2, this.length);\n\t const val = this[offset + 1] | (this[offset] << 8);\n\t return (val & 0x8000) ? val | 0xFFFF0000 : val\n\t};\n\n\tBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset]) |\n\t (this[offset + 1] << 8) |\n\t (this[offset + 2] << 16) |\n\t (this[offset + 3] << 24)\n\t};\n\n\tBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\n\t return (this[offset] << 24) |\n\t (this[offset + 1] << 16) |\n\t (this[offset + 2] << 8) |\n\t (this[offset + 3])\n\t};\n\n\tBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = this[offset + 4] +\n\t this[offset + 5] * 2 ** 8 +\n\t this[offset + 6] * 2 ** 16 +\n\t (last << 24); // Overflow\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(first +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 24)\n\t});\n\n\tBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n\t offset = offset >>> 0;\n\t validateNumber(offset, 'offset');\n\t const first = this[offset];\n\t const last = this[offset + 7];\n\t if (first === undefined || last === undefined) {\n\t boundsError(offset, this.length - 8);\n\t }\n\n\t const val = (first << 24) + // Overflow\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t this[++offset];\n\n\t return (BigInt(val) << BigInt(32)) +\n\t BigInt(this[++offset] * 2 ** 24 +\n\t this[++offset] * 2 ** 16 +\n\t this[++offset] * 2 ** 8 +\n\t last)\n\t});\n\n\tBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, true, 23, 4)\n\t};\n\n\tBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 4, this.length);\n\t return ieee754$1.read(this, offset, false, 23, 4)\n\t};\n\n\tBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, true, 52, 8)\n\t};\n\n\tBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n\t offset = offset >>> 0;\n\t if (!noAssert) checkOffset(offset, 8, this.length);\n\t return ieee754$1.read(this, offset, false, 52, 8)\n\t};\n\n\tfunction checkInt (buf, value, offset, ext, max, min) {\n\t if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n\t if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t}\n\n\tBuffer.prototype.writeUintLE =\n\tBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let mul = 1;\n\t let i = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUintBE =\n\tBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t byteLength = byteLength >>> 0;\n\t if (!noAssert) {\n\t const maxBytes = Math.pow(2, 8 * byteLength) - 1;\n\t checkInt(this, value, offset, byteLength, maxBytes, 0);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t this[offset + i] = (value / mul) & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeUint8 =\n\tBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeUint16LE =\n\tBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint16BE =\n\tBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeUint32LE =\n\tBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset + 3] = (value >>> 24);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeUint32BE =\n\tBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t lo = lo >> 8;\n\t buf[offset++] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t hi = hi >> 8;\n\t buf[offset++] = hi;\n\t return offset\n\t}\n\n\tfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n\t checkIntBI(value, min, max, buf, offset, 7);\n\n\t let lo = Number(value & BigInt(0xffffffff));\n\t buf[offset + 7] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 6] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 5] = lo;\n\t lo = lo >> 8;\n\t buf[offset + 4] = lo;\n\t let hi = Number(value >> BigInt(32) & BigInt(0xffffffff));\n\t buf[offset + 3] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 2] = hi;\n\t hi = hi >> 8;\n\t buf[offset + 1] = hi;\n\t hi = hi >> 8;\n\t buf[offset] = hi;\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = 0;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset] = value & 0xFF;\n\t while (++i < byteLength && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t const limit = Math.pow(2, (8 * byteLength) - 1);\n\n\t checkInt(this, value, offset, byteLength, limit - 1, -limit);\n\t }\n\n\t let i = byteLength - 1;\n\t let mul = 1;\n\t let sub = 0;\n\t this[offset + i] = value & 0xFF;\n\t while (--i >= 0 && (mul *= 0x100)) {\n\t if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n\t sub = 1;\n\t }\n\t this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n\t }\n\n\t return offset + byteLength\n\t};\n\n\tBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n\t if (value < 0) value = 0xff + value + 1;\n\t this[offset] = (value & 0xff);\n\t return offset + 1\n\t};\n\n\tBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\t this[offset] = (value >>> 8);\n\t this[offset + 1] = (value & 0xff);\n\t return offset + 2\n\t};\n\n\tBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t this[offset] = (value & 0xff);\n\t this[offset + 1] = (value >>> 8);\n\t this[offset + 2] = (value >>> 16);\n\t this[offset + 3] = (value >>> 24);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\t if (value < 0) value = 0xffffffff + value + 1;\n\t this[offset] = (value >>> 24);\n\t this[offset + 1] = (value >>> 16);\n\t this[offset + 2] = (value >>> 8);\n\t this[offset + 3] = (value & 0xff);\n\t return offset + 4\n\t};\n\n\tBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n\t return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n\t return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n\t});\n\n\tfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n\t if (offset + ext > buf.length) throw new RangeError('Index out of range')\n\t if (offset < 0) throw new RangeError('Index out of range')\n\t}\n\n\tfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 4);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 23, 4);\n\t return offset + 4\n\t}\n\n\tBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n\t return writeFloat(this, value, offset, false, noAssert)\n\t};\n\n\tfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n\t value = +value;\n\t offset = offset >>> 0;\n\t if (!noAssert) {\n\t checkIEEE754(buf, value, offset, 8);\n\t }\n\t ieee754$1.write(buf, value, offset, littleEndian, 52, 8);\n\t return offset + 8\n\t}\n\n\tBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, true, noAssert)\n\t};\n\n\tBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n\t return writeDouble(this, value, offset, false, noAssert)\n\t};\n\n\t// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\tBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n\t if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n\t if (!start) start = 0;\n\t if (!end && end !== 0) end = this.length;\n\t if (targetStart >= target.length) targetStart = target.length;\n\t if (!targetStart) targetStart = 0;\n\t if (end > 0 && end < start) end = start;\n\n\t // Copy 0 bytes; we're done\n\t if (end === start) return 0\n\t if (target.length === 0 || this.length === 0) return 0\n\n\t // Fatal error conditions\n\t if (targetStart < 0) {\n\t throw new RangeError('targetStart out of bounds')\n\t }\n\t if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n\t if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n\t // Are we oob?\n\t if (end > this.length) end = this.length;\n\t if (target.length - targetStart < end - start) {\n\t end = target.length - targetStart + start;\n\t }\n\n\t const len = end - start;\n\n\t if (this === target && typeof GlobalUint8Array.prototype.copyWithin === 'function') {\n\t // Use built-in when available, missing from IE11\n\t this.copyWithin(targetStart, start, end);\n\t } else {\n\t GlobalUint8Array.prototype.set.call(\n\t target,\n\t this.subarray(start, end),\n\t targetStart\n\t );\n\t }\n\n\t return len\n\t};\n\n\t// Usage:\n\t// buffer.fill(number[, offset[, end]])\n\t// buffer.fill(buffer[, offset[, end]])\n\t// buffer.fill(string[, offset[, end]][, encoding])\n\tBuffer.prototype.fill = function fill (val, start, end, encoding) {\n\t // Handle string cases:\n\t if (typeof val === 'string') {\n\t if (typeof start === 'string') {\n\t encoding = start;\n\t start = 0;\n\t end = this.length;\n\t } else if (typeof end === 'string') {\n\t encoding = end;\n\t end = this.length;\n\t }\n\t if (encoding !== undefined && typeof encoding !== 'string') {\n\t throw new TypeError('encoding must be a string')\n\t }\n\t if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n\t throw new TypeError('Unknown encoding: ' + encoding)\n\t }\n\t if (val.length === 1) {\n\t const code = val.charCodeAt(0);\n\t if ((encoding === 'utf8' && code < 128) ||\n\t encoding === 'latin1') {\n\t // Fast path: If `val` fits into a single byte, use that numeric value.\n\t val = code;\n\t }\n\t }\n\t } else if (typeof val === 'number') {\n\t val = val & 255;\n\t } else if (typeof val === 'boolean') {\n\t val = Number(val);\n\t }\n\n\t // Invalid ranges are not set to a default, so can range check early.\n\t if (start < 0 || this.length < start || this.length < end) {\n\t throw new RangeError('Out of range index')\n\t }\n\n\t if (end <= start) {\n\t return this\n\t }\n\n\t start = start >>> 0;\n\t end = end === undefined ? this.length : end >>> 0;\n\n\t if (!val) val = 0;\n\n\t let i;\n\t if (typeof val === 'number') {\n\t for (i = start; i < end; ++i) {\n\t this[i] = val;\n\t }\n\t } else {\n\t const bytes = Buffer.isBuffer(val)\n\t ? val\n\t : Buffer.from(val, encoding);\n\t const len = bytes.length;\n\t if (len === 0) {\n\t throw new TypeError('The value \"' + val +\n\t '\" is invalid for argument \"value\"')\n\t }\n\t for (i = 0; i < end - start; ++i) {\n\t this[i + start] = bytes[i % len];\n\t }\n\t }\n\n\t return this\n\t};\n\n\t// CUSTOM ERRORS\n\t// =============\n\n\t// Simplified versions from Node, changed for Buffer-only usage\n\tconst errors = {};\n\tfunction E (sym, getMessage, Base) {\n\t errors[sym] = class NodeError extends Base {\n\t constructor () {\n\t super();\n\n\t Object.defineProperty(this, 'message', {\n\t value: getMessage.apply(this, arguments),\n\t writable: true,\n\t configurable: true\n\t });\n\n\t // Add the error code to the name to include it in the stack trace.\n\t this.name = `${this.name} [${sym}]`;\n\t // Access the stack to generate the error message including the error code\n\t // from the name.\n\t this.stack; // eslint-disable-line no-unused-expressions\n\t // Reset the name to the actual name.\n\t delete this.name;\n\t }\n\n\t get code () {\n\t return sym\n\t }\n\n\t set code (value) {\n\t Object.defineProperty(this, 'code', {\n\t configurable: true,\n\t enumerable: true,\n\t value,\n\t writable: true\n\t });\n\t }\n\n\t toString () {\n\t return `${this.name} [${sym}]: ${this.message}`\n\t }\n\t };\n\t}\n\n\tE('ERR_BUFFER_OUT_OF_BOUNDS',\n\t function (name) {\n\t if (name) {\n\t return `${name} is outside of buffer bounds`\n\t }\n\n\t return 'Attempt to access memory outside buffer bounds'\n\t }, RangeError);\n\tE('ERR_INVALID_ARG_TYPE',\n\t function (name, actual) {\n\t return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n\t }, TypeError);\n\tE('ERR_OUT_OF_RANGE',\n\t function (str, range, input) {\n\t let msg = `The value of \"${str}\" is out of range.`;\n\t let received = input;\n\t if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n\t received = addNumericalSeparator(String(input));\n\t } else if (typeof input === 'bigint') {\n\t received = String(input);\n\t if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n\t received = addNumericalSeparator(received);\n\t }\n\t received += 'n';\n\t }\n\t msg += ` It must be ${range}. Received ${received}`;\n\t return msg\n\t }, RangeError);\n\n\tfunction addNumericalSeparator (val) {\n\t let res = '';\n\t let i = val.length;\n\t const start = val[0] === '-' ? 1 : 0;\n\t for (; i >= start + 4; i -= 3) {\n\t res = `_${val.slice(i - 3, i)}${res}`;\n\t }\n\t return `${val.slice(0, i)}${res}`\n\t}\n\n\t// CHECK FUNCTIONS\n\t// ===============\n\n\tfunction checkBounds (buf, offset, byteLength) {\n\t validateNumber(offset, 'offset');\n\t if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n\t boundsError(offset, buf.length - (byteLength + 1));\n\t }\n\t}\n\n\tfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n\t if (value > max || value < min) {\n\t const n = typeof min === 'bigint' ? 'n' : '';\n\t let range;\n\t if (byteLength > 3) {\n\t if (min === 0 || min === BigInt(0)) {\n\t range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`;\n\t } else {\n\t range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n\t `${(byteLength + 1) * 8 - 1}${n}`;\n\t }\n\t } else {\n\t range = `>= ${min}${n} and <= ${max}${n}`;\n\t }\n\t throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n\t }\n\t checkBounds(buf, offset, byteLength);\n\t}\n\n\tfunction validateNumber (value, name) {\n\t if (typeof value !== 'number') {\n\t throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n\t }\n\t}\n\n\tfunction boundsError (value, length, type) {\n\t if (Math.floor(value) !== value) {\n\t validateNumber(value, type);\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n\t }\n\n\t if (length < 0) {\n\t throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n\t }\n\n\t throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n\t `>= ${type ? 1 : 0} and <= ${length}`,\n\t value)\n\t}\n\n\t// HELPER FUNCTIONS\n\t// ================\n\n\tconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g;\n\n\tfunction base64clean (str) {\n\t // Node takes equal signs as end of the Base64 encoding\n\t str = str.split('=')[0];\n\t // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n\t str = str.trim().replace(INVALID_BASE64_RE, '');\n\t // Node converts strings with length < 2 to ''\n\t if (str.length < 2) return ''\n\t // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\t while (str.length % 4 !== 0) {\n\t str = str + '=';\n\t }\n\t return str\n\t}\n\n\tfunction utf8ToBytes (string, units) {\n\t units = units || Infinity;\n\t let codePoint;\n\t const length = string.length;\n\t let leadSurrogate = null;\n\t const bytes = [];\n\n\t for (let i = 0; i < length; ++i) {\n\t codePoint = string.charCodeAt(i);\n\n\t // is surrogate component\n\t if (codePoint > 0xD7FF && codePoint < 0xE000) {\n\t // last char was a lead\n\t if (!leadSurrogate) {\n\t // no lead yet\n\t if (codePoint > 0xDBFF) {\n\t // unexpected trail\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t } else if (i + 1 === length) {\n\t // unpaired lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t continue\n\t }\n\n\t // valid lead\n\t leadSurrogate = codePoint;\n\n\t continue\n\t }\n\n\t // 2 leads in a row\n\t if (codePoint < 0xDC00) {\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t leadSurrogate = codePoint;\n\t continue\n\t }\n\n\t // valid surrogate pair\n\t codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n\t } else if (leadSurrogate) {\n\t // valid bmp char, but last char was a lead\n\t if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n\t }\n\n\t leadSurrogate = null;\n\n\t // encode utf8\n\t if (codePoint < 0x80) {\n\t if ((units -= 1) < 0) break\n\t bytes.push(codePoint);\n\t } else if (codePoint < 0x800) {\n\t if ((units -= 2) < 0) break\n\t bytes.push(\n\t codePoint >> 0x6 | 0xC0,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x10000) {\n\t if ((units -= 3) < 0) break\n\t bytes.push(\n\t codePoint >> 0xC | 0xE0,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else if (codePoint < 0x110000) {\n\t if ((units -= 4) < 0) break\n\t bytes.push(\n\t codePoint >> 0x12 | 0xF0,\n\t codePoint >> 0xC & 0x3F | 0x80,\n\t codePoint >> 0x6 & 0x3F | 0x80,\n\t codePoint & 0x3F | 0x80\n\t );\n\t } else {\n\t throw new Error('Invalid code point')\n\t }\n\t }\n\n\t return bytes\n\t}\n\n\tfunction asciiToBytes (str) {\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t // Node's code seems to be doing this and not & 0x7F..\n\t byteArray.push(str.charCodeAt(i) & 0xFF);\n\t }\n\t return byteArray\n\t}\n\n\tfunction utf16leToBytes (str, units) {\n\t let c, hi, lo;\n\t const byteArray = [];\n\t for (let i = 0; i < str.length; ++i) {\n\t if ((units -= 2) < 0) break\n\n\t c = str.charCodeAt(i);\n\t hi = c >> 8;\n\t lo = c % 256;\n\t byteArray.push(lo);\n\t byteArray.push(hi);\n\t }\n\n\t return byteArray\n\t}\n\n\tfunction base64ToBytes (str) {\n\t return base64.toByteArray(base64clean(str))\n\t}\n\n\tfunction blitBuffer (src, dst, offset, length) {\n\t let i;\n\t for (i = 0; i < length; ++i) {\n\t if ((i + offset >= dst.length) || (i >= src.length)) break\n\t dst[i + offset] = src[i];\n\t }\n\t return i\n\t}\n\n\t// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n\t// the `instanceof` check but they should be treated as of that type.\n\t// See: https://github.com/feross/buffer/issues/166\n\tfunction isInstance (obj, type) {\n\t return obj instanceof type ||\n\t (obj != null && obj.constructor != null && obj.constructor.name != null &&\n\t obj.constructor.name === type.name)\n\t}\n\tfunction numberIsNaN (obj) {\n\t // For IE11 support\n\t return obj !== obj // eslint-disable-line no-self-compare\n\t}\n\n\t// Create lookup table for `toString('hex')`\n\t// See: https://github.com/feross/buffer/issues/219\n\tconst hexSliceLookupTable = (function () {\n\t const alphabet = '0123456789abcdef';\n\t const table = new Array(256);\n\t for (let i = 0; i < 16; ++i) {\n\t const i16 = i * 16;\n\t for (let j = 0; j < 16; ++j) {\n\t table[i16 + j] = alphabet[i] + alphabet[j];\n\t }\n\t }\n\t return table\n\t})();\n\n\t// Return not function with Error if BigInt not supported\n\tfunction defineBigIntMethod (fn) {\n\t return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n\t}\n\n\tfunction BufferBigIntNotDefined () {\n\t throw new Error('BigInt not supported')\n\t} \n} (buffer));\n\nconst Buffer = buffer.Buffer;\n\nconst Blob = buffer.Blob;\nconst BlobOptions = buffer.BlobOptions;\nconst Buffer$1 = buffer.Buffer;\nconst File = buffer.File;\nconst FileOptions = buffer.FileOptions;\nconst INSPECT_MAX_BYTES = buffer.INSPECT_MAX_BYTES;\nconst SlowBuffer = buffer.SlowBuffer;\nconst TranscodeEncoding = buffer.TranscodeEncoding;\nconst atob = buffer.atob;\nconst btoa = buffer.btoa;\nconst constants = buffer.constants;\nconst isAscii = buffer.isAscii;\nconst isUtf8 = buffer.isUtf8;\nconst kMaxLength = buffer.kMaxLength;\nconst kStringMaxLength = buffer.kStringMaxLength;\nconst resolveObjectURL = buffer.resolveObjectURL;\nconst transcode = buffer.transcode;\nexport { Blob, BlobOptions, Buffer$1 as Buffer, File, FileOptions, INSPECT_MAX_BYTES, SlowBuffer, TranscodeEncoding, atob, btoa, constants, Buffer as default, isAscii, isUtf8, kMaxLength, kStringMaxLength, resolveObjectURL, transcode };\n//# sourceMappingURL=index.js.map\n","import { getCurrentUser } from \"@nextcloud/auth\";\nvar LogLevel = /* @__PURE__ */ ((LogLevel2) => {\n LogLevel2[LogLevel2[\"Debug\"] = 0] = \"Debug\";\n LogLevel2[LogLevel2[\"Info\"] = 1] = \"Info\";\n LogLevel2[LogLevel2[\"Warn\"] = 2] = \"Warn\";\n LogLevel2[LogLevel2[\"Error\"] = 3] = \"Error\";\n LogLevel2[LogLevel2[\"Fatal\"] = 4] = \"Fatal\";\n return LogLevel2;\n})(LogLevel || {});\nvar __defProp$1 = Object.defineProperty;\nvar __defNormalProp$1 = (obj, key, value) => key in obj ? __defProp$1(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField$1 = (obj, key, value) => {\n __defNormalProp$1(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass ConsoleLogger {\n constructor(context) {\n __publicField$1(this, \"context\");\n this.context = context || {};\n }\n formatMessage(message, level, context) {\n let msg = \"[\" + LogLevel[level].toUpperCase() + \"] \";\n if (context && context.app) {\n msg += context.app + \": \";\n }\n if (typeof message === \"string\")\n return msg + message;\n msg += \"Unexpected \".concat(message.name);\n if (message.message)\n msg += ' \"'.concat(message.message, '\"');\n if (level === LogLevel.Debug && message.stack)\n msg += \"\\n\\nStack trace:\\n\".concat(message.stack);\n return msg;\n }\n log(level, message, context) {\n var _a, _b;\n if (typeof ((_a = this.context) == null ? void 0 : _a.level) === \"number\" && level < ((_b = this.context) == null ? void 0 : _b.level)) {\n return;\n }\n if (typeof message === \"object\" && (context == null ? void 0 : context.error) === void 0) {\n context.error = message;\n }\n switch (level) {\n case LogLevel.Debug:\n console.debug(this.formatMessage(message, LogLevel.Debug, context), context);\n break;\n case LogLevel.Info:\n console.info(this.formatMessage(message, LogLevel.Info, context), context);\n break;\n case LogLevel.Warn:\n console.warn(this.formatMessage(message, LogLevel.Warn, context), context);\n break;\n case LogLevel.Error:\n console.error(this.formatMessage(message, LogLevel.Error, context), context);\n break;\n case LogLevel.Fatal:\n default:\n console.error(this.formatMessage(message, LogLevel.Fatal, context), context);\n break;\n }\n }\n debug(message, context) {\n this.log(LogLevel.Debug, message, Object.assign({}, this.context, context));\n }\n info(message, context) {\n this.log(LogLevel.Info, message, Object.assign({}, this.context, context));\n }\n warn(message, context) {\n this.log(LogLevel.Warn, message, Object.assign({}, this.context, context));\n }\n error(message, context) {\n this.log(LogLevel.Error, message, Object.assign({}, this.context, context));\n }\n fatal(message, context) {\n this.log(LogLevel.Fatal, message, Object.assign({}, this.context, context));\n }\n}\nfunction buildConsoleLogger(context) {\n return new ConsoleLogger(context);\n}\nvar __defProp = Object.defineProperty;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __publicField = (obj, key, value) => {\n __defNormalProp(obj, typeof key !== \"symbol\" ? key + \"\" : key, value);\n return value;\n};\nclass LoggerBuilder {\n constructor(factory) {\n __publicField(this, \"context\");\n __publicField(this, \"factory\");\n this.context = {};\n this.factory = factory;\n }\n /**\n * Set the app name within the logging context\n *\n * @param appId App name\n */\n setApp(appId) {\n this.context.app = appId;\n return this;\n }\n /**\n * Set the logging level within the logging context\n *\n * @param level Logging level\n */\n setLogLevel(level) {\n this.context.level = level;\n return this;\n }\n /* eslint-disable jsdoc/no-undefined-types */\n /**\n * Set the user id within the logging context\n * @param uid User ID\n * @see {@link detectUser}\n */\n /* eslint-enable jsdoc/no-undefined-types */\n setUid(uid) {\n this.context.uid = uid;\n return this;\n }\n /**\n * Detect the currently logged in user and set the user id within the logging context\n */\n detectUser() {\n const user = getCurrentUser();\n if (user !== null) {\n this.context.uid = user.uid;\n }\n return this;\n }\n /**\n * Detect and use logging level configured in nextcloud config\n */\n detectLogLevel() {\n const self = this;\n const onLoaded = () => {\n var _a, _b;\n if (document.readyState === \"complete\" || document.readyState === \"interactive\") {\n self.context.level = (_b = (_a = window._oc_config) == null ? void 0 : _a.loglevel) != null ? _b : LogLevel.Warn;\n if (window._oc_debug) {\n self.context.level = LogLevel.Debug;\n }\n document.removeEventListener(\"readystatechange\", onLoaded);\n } else {\n document.addEventListener(\"readystatechange\", onLoaded);\n }\n };\n onLoaded();\n return this;\n }\n /** Build a logger using the logging context and factory */\n build() {\n if (this.context.level === void 0) {\n this.detectLogLevel();\n }\n return this.factory(this.context);\n }\n}\nfunction getLoggerBuilder() {\n return new LoggerBuilder(buildConsoleLogger);\n}\nfunction getLogger() {\n return getLoggerBuilder().build();\n}\nexport {\n LogLevel,\n getLogger,\n getLoggerBuilder\n};\n"],"names":["global","entries","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","create","apply","construct","x","func","thisArg","_len","args","_key","Func","_len2","_key2","arrayForEach","unapply","arrayLastIndexOf","arrayPop","arrayPush","arraySplice","stringToLowerCase","stringToString","stringMatch","stringReplace","stringIndexOf","stringTrim","objectHasOwnProperty","regExpTest","typeErrorCreate","unconstruct","_len3","_key3","_len4","_key4","addToSet","set","array","transformCaseFunc","l","element","lcElement","cleanArray","index","clone","object","newObject","property","value","lookupGetter","prop","desc","fallbackValue","html$1","svg$1","svgFilters","svgDisallowed","mathMl$1","mathMlDisallowed","text","html","svg","mathMl","xml","MUSTACHE_EXPR","ERB_EXPR","TMPLIT_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","DOCTYPE_NAME","CUSTOM_ELEMENT","EXPRESSIONS","NODE_TYPE","getGlobal","_createTrustedTypesPolicy","trustedTypes","purifyHostElement","suffix","ATTR_NAME","policyName","scriptUrl","_createHooksMap","createDOMPurify","window","DOMPurify","root","document","originalDocument","currentScript","DocumentFragment","HTMLTemplateElement","Node","Element","NodeFilter","NamedNodeMap","HTMLFormElement","DOMParser","ElementPrototype","cloneNode","remove","getNextSibling","getChildNodes","getParentNode","template","trustedTypesPolicy","emptyHTML","implementation","createNodeIterator","createDocumentFragment","getElementsByTagName","importNode","hooks","IS_ALLOWED_URI$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","FORBID_TAGS","FORBID_ATTR","EXTRA_ELEMENT_HANDLING","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","ALLOW_SELF_CLOSE_IN_ATTR","SAFE_FOR_TEMPLATES","SAFE_FOR_XML","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","RETURN_TRUSTED_TYPE","SANITIZE_DOM","SANITIZE_NAMED_PROPS","SANITIZE_NAMED_PROPS_PREFIX","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","ALLOWED_NAMESPACES","DEFAULT_ALLOWED_NAMESPACES","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","COMMON_SVG_AND_HTML_ELEMENTS","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","cfg","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","parent","tagName","parentTagName","_forceRemove","node","_removeAttribute","name","_initDocument","dirty","doc","leadingWhitespace","matches","dirtyPayload","body","_createNodeIterator","_isClobbered","_isNode","_executeHooks","currentNode","data","hook","_sanitizeElements","content","_isBasicCustomElement","parentNode","childNodes","childCount","i","childClone","expr","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","attributes","hookEvent","attr","namespaceURI","attrValue","initValue","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","importedNode","returnNode","nodeIterator","serializedHTML","tag","entryPoint","hookFunction","purify","linkToRemoteBase","service","generateRemoteUrl","options","getBaseUrl","generateOcsUrl","url","params","version","_generateUrlPath","allOptions","_build","vars","a","b","r","generateUrl","baseOrRootURL","getRootUrl","imagePath","app","file","generateFilePath","type","isCore","isPHP","link","getAppRootUrl","webroot","pos","matchHtmlRegExp","escapeHtml_1","escapeHtml","string","str","match","escape","lastIndex","getLocale","getCanonicalLocale","getLanguage","isRTL","language","languageCode","getAppTranslations","appId","number","translate","placeholdersOrNumber","optionsOrNumber","identity","optSanitize","optEscape","escapeHTML","isValidReplacement","text2","vars2","number2","key","replacement","translation","translatePlural","textSingular","textPlural","identifier","bundle","plural","getPlural","getDefaultExportFromCjs","browser","process","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","runClearTimeout","marker","queue","draining","currentQueue","queueIndex","cleanUpNextTick","drainQueue","timeout","len","Item","noop","dir","browserExports","process$1","debug_1","define_process_env_default","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","constants","require$$0","debug","require$$1","exports","module","re","safeRe","src","safeSrc","t","R","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","max","createToken","isGlobal","safe","looseOption","emptyOpts","parseOptions_1","numeric","compareIdentifiers","anum","bnum","identifiers","require$$2","parseOptions","require$$3","require$$4","SemVer","m","id","num","other","release","identifierBase","base","prerelease","semver","major_1","loose","parse_1","throwErrors","er","parse","valid_1","v","ProxyBus","bus2","valid","major","handler","event","SimpleBus","h","e","bus","getBus","subscribe","unsubscribe","emit","ScopedStorage","scope","wrapped","persistent","StorageBuilder","persist","clear","getBuilder","observers","getRequestToken","onRequestTokenUpdate","observer","error","currentUser","getAttribute","el","attribute","getCurrentUser","head","uid","buffer","base64Js","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","code","getLens","b64","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","ieee754","offset","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","d","s","c","rt","base64","ieee754$1","customInspectSymbol","Buffer","SlowBuffer","K_MAX_LENGTH","GlobalUint8Array","GlobalArrayBuffer","GlobalSharedArrayBuffer","typedArraySupport","proto","createBuffer","length","buf","arg","encodingOrOffset","allocUnsafe","from","fromString","fromArrayView","isInstance","fromArrayBuffer","valueOf","fromObject","assertSize","size","alloc","fill","encoding","checked","actual","fromArrayLike","arrayView","copy","byteOffset","obj","numberIsNaN","y","list","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","n","target","thisStart","thisEnd","thisCopy","targetCopy","bidirectionalIndexOf","val","arrayIndexOf","indexSize","arrLength","valLength","read","foundIndex","found","j","hexWrite","remaining","strLen","parsed","utf8Write","blitBuffer","asciiWrite","asciiToBytes","base64Write","ucs2Write","utf16leToBytes","res","firstByte","codePoint","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","MAX_ARGUMENTS_LENGTH","codePoints","ret","out","hexSliceLookupTable","bytes","newBuf","checkOffset","ext","noAssert","mul","defineBigIntMethod","validateNumber","first","last","boundsError","lo","hi","checkInt","min","maxBytes","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","limit","sub","checkIEEE754","writeFloat","littleEndian","writeDouble","targetStart","errors","E","sym","getMessage","Base","range","input","msg","received","addNumericalSeparator","checkBounds","INVALID_BASE64_RE","base64clean","units","leadSurrogate","byteArray","dst","alphabet","table","i16","fn","BufferBigIntNotDefined","LogLevel","LogLevel2","__defProp$1","__defNormalProp$1","__publicField$1","ConsoleLogger","context","message","level","_a","_b","buildConsoleLogger","__defProp","__defNormalProp","__publicField","LoggerBuilder","factory","user","self","onLoaded","getLoggerBuilder"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]}